Data-Driven Tools for Introductory Computer Science Education

Date
2018-08-10
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract

The software industry spends a tremendous amount of effort and resources on software testing and maintenance to improve the quality of software. However, a large portion of the cost may be saved by training high-quality software developers with better Computer Science education. Skilled software developers can not only produce code of fewer bugs and better design but also identify and fix issues more effectively. Therefore, in this thesis, we researched building useful educational tools for facilitating Computer Science education, particularly in introductory programming courses.

Since understanding the code execution is the first step of writing high-quality code and software testing, in the first study, we built a web-based interactive tool to teach students necessary comprehension and analysis skills to understand the program execution. Secondly, we built an automated tool for students to interactively practice writing test cases and debugging programs. The tool gauges the test coverage of students' test sets using a large corpus of buggy programs we collected in our previous course sessions. The tool returns the buggy programs as immediate feedback which students' test sets failed to catch. Students need to study those returned buggy programs to gradually improve the testing coverage of their test sets. In the third project, we built a tool that automatically generates high-quality test cases to construct concise test sets for testing students' coding assignment solutions. The tool utilizes heterogeneous historical student incorrect implementations to guide the test case search process. Its generated test cases are expected to provide better test coverage than instructor built tests cases.

To validate the effectiveness of our tools, we conducted studies in introductory programming courses among students at Rice and online students of our Massive Open Online Courses (MOOC). The studies showed that, compared with studying traditional Computer Science curriculum, students made significant improvements in understanding basic Computer Science concepts and software testing skills by interacting with our educational tools.

Description
Degree
Doctor of Philosophy
Type
Thesis
Keywords
Computer Science Education, Interactive Learning, Software Testing, Visualization, Web-based Tool, Automatic Test Case Generation, Data-Driven, Automated Programming Assessment System,
Citation

Tang, Lei. "Data-Driven Tools for Introductory Computer Science Education." (2018) Diss., Rice University. https://hdl.handle.net/1911/105845.

Has part(s)
Forms part of
Published Version
Rights
Copyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.
Link to license
Citable link to this page