Test-Driven Development is a design strategy where a set of tests over a class is defined prior to the implementation of that class. The goal is to use the tests to exercise the class being developed, to provide immediate feedback of the overall quality of the code, and to identify and correct bugs as they are written. Testing is usually performed with automated testing tools, such as JUnit, which give clear feedback about the status of the tests1. The test-first approach requires students to think about the problem, identify corner cases, analyze ways their code may fail, and evaluate the goodness of their design. This paper presents a tool for teaching CS1 using a Test-First approach that will allow students to construct their tests using a simple GUI interface. The goal is to give CS1 students the ability to do test-driven development independently.
Studies show that active learning promotes improved long-term retention of course material in students. Research suggests that CS students tend to have learning styles that make an active environment almost critical to their successful mastery of material. This paper demonstrates the effects of a novel lab experience in an objects-first Computer Science 2 course. Our lab is a novel departure from traditional lab based courses, in that it promotes student self-learning and interleaved into the class lectures. We show through assessment comparison that an active learning improves student grades, comprehension, and satisfaction with the course.
Abstract: IntroductionActive and collaborative learning allows students to work in teams to accomplish somespecific goal, such as solving a problem or writing a piece of code. Active learning is acommon technique used to improve students comprehension and retention of material [1],[6]. The most common application of active learning described in the CS education literatureis in introductory programming courses [3], [9].In these introductory courses, techniques such code review, debugging sessions, ...