CS21 Lab 7: Academic Records, Top-Down Design

Design due Friday, March 22, before midnight.

Full Implementation due Saturday, March 30, before midnight.


The primary goals of this lab are to practice using Top-Down Design and to write a complex program from scratch.

Please read through the entire lab before starting!

Make sure all programs are saved to your cs21/labs/07 directory. Files outside this directory will not be graded.

  $ update21
  $ cd ~/cs21/labs/07

Note: This is a two-part lab, split over two weeks. For the first week, you will focus on using top-down design to create the overall structure for the program. Once your proposed structure has been reviewed and approved by your professor or lab instructor, you will use bottom-up implementation to complete the full program.

You have two weeks to complete the full program. The first week is for the design, and the second for the full program. Your initial top-down design is due this Friday (March 22) and the implementation the following week (March 30). It is highly recommended that you submit your top-down design a few days before the due date so that we have time to give you feedback before you begin your full implementation. If you submit your design Friday March 22 at midnight, it might take us a few days to get to it and send you comments on your design.

See below for the design requirements.

Academic Records

Students generate large amounts of official academic information throughout their time at Swarthmore. This can include information on which courses a student has taken, from which departments they've taken courses, and what their grades are. For this lab assignment, you will write a program that helps a user manage this data.

For this lab, here is the information you'll keep track of:

  1. The student ID of the student taking the course.
  2. The department of the course.
  3. The course number of the course.
  4. The semester in which the student took the course.
  5. The grade the student earned in the class.

You will need to support reading this information in from a file. Each line of a file should have information about one course that one student took. The information above should be separated by commas. Here is an example file of student data.

Examples, Requirements, and Tips

Here are a few examples of the running program, to help you see how things should work.

You have some freedom in how you want your application to look and in the functionality you provide. Here are the minimal requirements:

Top-Down Design requirements

You should complete your top-down design (TDD), submit it, and obtain feedback on it before beginning the full implementation. Special procedures for this lab:

Here is a simple example of Top-Down Design.


Answer the Questionnaire

Each lab has a short questionnaire at the end. Please edit the QUESTIONS-07.txt file in your cs21/labs/07 directory and answer the questions in that file.


Turning in Your Labs

Don't forget to run handin21 to turn in your lab files! You may run handin21 as many times as you want. Each time it will turn in any new work. We recommend running handin21 after you complete each program or after you complete significant work on any one program.