ud494 »

Test Driven Development Assignment Part 1


These assignments were originally meant to be completed as a group project, but they are now to be completed individually.

To find the due date and see where this fits in the course overall, see the schedule.


This assignment will come in 3 parts:

Part 1


  • Story/task cards
  • Junit test cases


  • Code that makes the test cases pass

Part 2


  • Story cards
  • Task cards


  • Junit test cases

Part 3


  • Test cases (yours from Part 2)


  • Code that makes the test cases pass

Part 1

Story Card

"The instructor (or the TA) launches the GradesTool application to get information about the students and the class. The application prints the number of students and information about each student: name, GT ID, e-mail, and attendance. It also prints the number of assignments and projects given so far. After that, it asks the user if (s)he wants to continue or exit. In the former case, it prints the latest information again.”

Example "screenshot"

Important note: you don’t have to build this front-end. It is provided just to better clarify the requirements.

Screen Shot 2013-12-30 at 4.16.35 PM.png


  • All data is stored in an Excel file called GradesDatabase6300.xlsx (to access the file, see instructions below).

Task Cards

  • Task 1: Develop a class (Student) that holds the information about a student, such as name and GT ID.
  • Task 2: Develop a class (GradesDB) that encapsulates most of the system functionality and provides an intuitive interface towards the information in the spreadsheet.


  • Keeping in mind the story card and the corresponding tasks, write code that makes the provided test cases pass.
  • To access the spreadsheet use the Apache POI library.
  • All the materials needed for the assignment are available in a zip file available here. Specifically, the file contains:
    • JUnit test cases (src directory)--also available in the Udacity quiz where you will submit your code
    • Apache POI, JUnit, and other necessary libraries (libs directory) — you should not need any other non-standard libraries
    • GradesDatabase6300.xlsx spreadsheet
  • You are welcome to use the Udacity IDE to develop your code, but we believe that Eclipse or another development environment will be more conducive to both coding and debugging. Just make sure to go back to the quiz to submit your code when you are done.

Placement in Course

The Udacity quiz can be found here.