PPIG 2020 - 31st Annual Workshop
Developing Testing-First Labs For a Less Intimidating Introductory CS Experience
Angela Zavaleta Bernuy, Brian Harrington
Abstract: When introducing non-majors to programming in an introductory computer science course, the simple mechanics of code writing can be intimidating. Many students report feeling overwhelmed by the requirements of user interfaces and syntax guides before even writing their first line of code. In an attempt to combat this anxiety, we have developed a tool called Code Detective, which allows students to learn fundamental skills of computer science: testing, program description, debugging and tracing before ever having to write any code. Code Detective starts by completely hiding the code, asking students to reverse engineer the specifications of each module from only the inputs and outputs. Over several weekly laboratory sessions, students are then introduced to program definition, documentation and testing, as more elements of the code are revealed. Students then learn tracing and debugging, all before actually being required to directly write or edit any code. In this experience report, we discuss the development and deployment of Code Detective in an Introduction to Programming course for non-majors course at a large North American research university.