I believe it is important to bring my technical research into the classroom and use it to improve my teaching. This has led to educational research contributions in incorporating software testing content in the curriculum and in on-line delivery.
I conduct research on how programming assignments can be designed to include software testing objectives, and how student work can be assessed in a novel way. Instead of having instructors and TAs judge the correctness of student programs, students are given the responsibility of demonstrating the correctness of their own work through testing, and they are then assessed on the quality and thoroughness of their testing efforts.
Practical implementation of this approach relies on students receiving rapid, detailed feedback many times while developing their solutions, something that would not be feasible without automation. Web-CAT is an automated assignment grading system that focuses on this new approach to assignment assessment, but that is also flexible enough to tackle any future automated grading approaches as well. Evaluation results indicate that, under this teaching approach, students produce software containing 28% fewer bugs on average. Students clearly perceive benefits themselves, and report they would choose to continue using the approach in other courses, even if it were not required.
In addition to my work on incorporating testing content and technology in the classroom, I also conduct research in on-line teaching. I designed one of the first on-line graduate courses for the MIT program: CS 5744, Software Design and Quality. I am also developing on-line educational modules that teach students software testing skills. The modules are self-paced and are designed to be added on to existing courses without requiring a significant investment of additional classroom time by the instructor.
Together, my work on Web-CAT and on on-line modules to teach software testing are part of an effort to support teaching software testing across the undergraduate curriculum.
CS Education Wiki (CsEdWiki)
Saturday, 10 December 2005
The Computer Science Education Wiki is a collaborative, user-editable wiki that
contains information about a wide variety of topics, including:
Teaching
Software Testing On-line is an NSF-sponsored project to develop
reusable on-line learning modules to teach software testing skills
across the undergraduate curriculum.
Virginia Tech's CS1
Course has recently been redesigned to be aggressively
objects-first, using pair programming, test-driven development,
labs, and lots of hands-on activities.
A JETT Workshop
was held at Virginia Tech in 2004 for AP CS teachers in the region,
and materials are available through the CS Ed
Wiki.