Topic 1 - Variables and Data Types
Topic 2 - Conditionals and Strings
Topic 3 - Loops
Topic 4 - Arrays
Topic 5 - File Handling
Semester 1 Projects
Topic 6 - Classes/Objects and Methods
Topic 7 - ArrayLists
Semester Projects

Part 0: Program Design

Since you’re working with a bigger code base that what you’ve seen so far, it’ll be important to look over the existing code and understand it well. In this section you are asked to look through all of the files included in the folders below.

The .java files corresponding to those classes are under 3 folders(also called packages in java).

  • Controller: Holds any files and classes that include the logic for the program. The controller serves as the brains to the eyes.
  • Model: Contains classes that represent possible physical or conceptual objects. This gives the program concrete objects to use in the Controller and View.
  • View: The eyes of the program it receives information from the user and passes it to the controller for processing. The objects in the view are also in charge of displaying models as visual/graphical representations. If there is a cell model object, the view needs to understand how that object will be presented to the user.

You must submit the program design with your Criterion B. Include the following:

  • What each class in the program does. For each class include:
    • Overall Purpose
    • The purpose for each of its instance variable
    • Explain what its constructor(s) do.
  • Explain what enums are and how they are used in this program
  • Submit a flowchart of how the program works. You can use any format that you would like, but it should include steps from 1 to N which the program follows. Each step can be explained in plain English with its corresponding method(s) mentioned.

This design should be done first! If you wait until the end of the assignment to make the reference sheet, it will just be a waste of your time. It will likely be very helpful to you if you make it BEFORE starting the rest of the assignment and keep updating it as needed. The more you have the “big picture” of the assignment before you get started, the easier it will be for you to write individual methods

It should be organized clearly enough that other people would be able to use it to remind themselves what a class does or in which class some functionality exists. Feel free to use pen, pencil, or a computer to make this, but we encourage you to have it on at hand while you work!

Using Ctrl+F within a single file is helpful.

Use Ctrl+Shift+F to search for something across all files in the project.