CS 222 Spring 2016

Course Query System

Due: First commit: July 24 23:55 pm, Second commit: August 01, 23:55.

  • First commit will include: Course Query System, Part I and TDD of Course Query System, Part II
  • Second commit will include: Course Query System, Part II (what is remaining of Part II)

Language: Java

Submission:

  • DO NOT include package names
  • Check your file encoding. It should be UTF-8
  • Commit your code to SVN

Context: You are given the courses offered for one semester in CodeHero Academy. Your task is to write a program to query these courses accordign to some criteria.

For this assignment you’re expected to implement all the functionality of

Task 2

Refactor your code. In addition to appropriate naming, clean and short and well-defined functions, apply what you have learnt from formatting lecture. Make sure that you don’t have any code smells in your code.

Hints

Watch this video.

Demo

Watch this video. This is the demo of a similar assignment assigned on previous semesters (CSAir).

TDD

Think about how to write the Student class. Write test cases for this class and add it to your source folder with the name StudentTest.java. After writing your test cases, please commit to SVN (before first commit deadline). If you don’t commit the TDD part before the deadline you will not get any points for it. You can start working on Course Query System Part II before the first commit deadline of course, but DO NO COMMIT your files (Part II) that are not related to TDD before the first deadline.

Grading

  • Functionality (45)
    • Parsing JSON data, construction of the objects: 18
    • User-interaction queries: 10
    • Writing Student class: 7
    • Making necessary connections between Student and Course classes: 5
    • Erorr checks: 5
  • Clean code (35)
    • Names: 8
    • Comments: 5
    • Functions: 10
    • Formatting: 12
  • TDD (10)

Penalties: * Parsing JSON data each time user queries: -20 * Bad CLI design: -10 * Keeping only the student IDs in courses: - 10 * Failing to meet the requirements for deadlines: -50