Students are provided a jar of a custom implementation of an ArrayList. Students write unit tests to evaluate the ArrayList to 1) learn how to work with a linear data structure and 2) practice writing unit tests. The tests may be refactored for other lab activities to evaluate the quality of student implemented linear data structures (e.g., ArrayList and LinkedList). Students work in groups of two-three. Students are expected to know how to work with Eclipse or other advanced IDE, write JUnit tests, and the basics of the Java Collections Framework.
Dependencies:
1. Eclipse Luna (4.4) or later
2. Java 1.7 or later
3. JUnit
4. Optional, but encouraged: access to a version control system
Students are provided code and have the opportunity to work with small groups on the assignment, which is an example of Collaborative Learning. There is motivation to do a good job writing the tests since students are told they will be using the tests on later in-class labs. Writing tests for an early lab also demonstrates to students the value of test-driven development in later labs.