Browsing by Author "Smith, Rebecca"
Now showing 1 - 2 of 2
Results Per Page
Sort Options
Item An Automated System for Interactively Learning Software Testing(Association for Computing Machinery, 2017) Smith, Rebecca; Tang, Terry; Warren, Joe; Rixner, ScottTesting is an important, time-consuming, and often difficult part of the software development process. It is therefore critical to introduce testing early in the computer science curriculum, and to provide students with frequent opportunities for practice and feedback. This paper presents an automated system to help introductory students learn how to test software. Students submit test cases to the system, which uses a large corpus of buggy programs to evaluate these test cases. In addition to gauging the quality of the test cases, the system immediately presents students with feedback in the form of buggy programs that nonetheless pass their tests. This enables students to understand why their test cases are deficient and gives them a starting point for improvement. The system has proven effective in an introductory class: students that trained using the system were later able to write better test cases -- even without any feedback -- than those who were not. Further, students reported additional benefits such as improved ability to read code written by others and to understand multiple approaches to the same problem.Item Computer Science Education at Scale: Providing Personalized and Interactive Learning Experiences Within Large Introductory Courses(2019-12-05) Smith, Rebecca; Rixner, ScottAs 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.