Anshul Shah
I'm a PhD student studying computer science education and software engineering education under Gerald Soosairaj, Bill Griswold, and Leo Porter. My work centers around the theory of Cognitive Apprenticeship, which aims to use a variety of teaching methods to promote the development of expert-like skills in students. My research is motivated by prior work related to the the academia-industry gap, specifically work that illustrates student struggles in working with a large code base and adhering to programming processes such as debugging, testing, and incremental development. As a result, my research centers around two main areas:
- 1. Working with Large Code Bases. I have co-developed and co-taught a course that uses Cognitive Apprenticeship techniques--modeling, scaffolding, coaching, reflection, articulation, and exploration--to teach students implicit processes of working on a large code base. My research goal is to understand how instructors can impart the necessary technical and communication skills to students before they enter the workforce. Preliminary results indicate that our Cognitive Apprenticeship approach to providing an authentic experience of contributing to a large code basehas improved students' confidence in comprehending and navigating a large code base.
- 2. Live Coding. My early work centers around live coding--a pedagogical technique in which an instructor demonstrates the programming process for students in the hopes that students adopt similar processes. I use learning analytics to understand the impact of live coding on students' incremental development, debugging, and testing practices in a CS1 course. Ultimately, we found that compared to a traditional, static-code approach to teaching programming, live coding did not improve students' adherence to incremental development, debugging, or testing practices.