Computer Science Education at Scale: Providing Personalized and Interactive Learning Experiences Within Large Introductory Courses
Doctor of Philosophy
As a result, enrollment in undergraduate computer science programs has expanded rapidly. While the influx of talent into the field will undoubtedly lead to countless technological developments, this growth also brings new pedagogical challenges. Educational resources, ranging from instructional time to classroom space, are limited. In the face of these resource constraints, it is difficult to scale courses in a manner that still retains the personalization and interaction that are characteristic of a high-quality education. The challenges of scale are particularly pronounced in introductory courses, which typically attract large numbers of majors and non-majors alike. This thesis aims to explore and tackle the pedagogical challenges within large introductory courses using three orthogonal means: data analysis, pedagogical tools, and structural innovations. First, this thesis presents a series of analyses on student-written code in order to characterize the mistakes that novice programmers make, and subsequently to inform the pedagogical choices that instructors make. Second, this thesis describes the design and implementation of two automated pedagogical tools, VizQuiz and Compigorithm. These tools provide interactive learning experiences that can scale to meet the demands of the growing numbers of students that are pursuing computer science without increasing the burden on the instructor. Last, this thesis examines the viability of structural innovations — in particular, collaborative online learning experiences — to scale an introductory computational thinking course, ultimately finding minimal statistically significant differences between the online and in-person sections of the course. Together, these three complementary lines of work advance the field of computer science education by empowering instructors of large computer science courses to provide learning experiences that are personalized, interactive, and scalable.
Computer science education; interactive learning