CS222, Section 1, Spring 2015: Assignments

General Instructions

Each assignment is due by the end of the day on Sunday of the week it is assigned. Assignments are to be completed by individuals, but you are encouraged to discuss your work with your classmates. In keeping with scholarly tradition, all that you claim as yours must be authentically your own, and you must cite your sources for anything that is not.

The components of each assignment will be evaluated as either unsatisfactory or satisfactory. If any part of an assignment is unsatisfactory, then the entire assignment is considered unsatisfactory. Once per week, you may request re-evaluation of an assignment you have revised; to be clear, this is one request per week, not one request per assignment per week. Revisions must clearly indicate how the changes address the feedback that was received.

Assignment artifacts must be included in documents on our shared folder in Google Drive. For your first assignment, create a document with your name as the title and put your submission there; turn in the document by URL using the form linked on Blackboard. For each subsequent assignment, add a new section called "Assignment 2" or "Assignment 3", set a bookmark on the heading, and submit the bookmark URL.

As always, your work should represent best practices of college-level composition.

Assignment 1

Read:

Choose a project to evaluate, which may be one of your own projects from your data structures course (CS121 at Ball State) or an open source project of your choice. The selection should be around 50 to 200 lines of code. Evaluate it with respect to Robert C. Martin's rules for naming and functions, corresponding to chapters 2 and 3 of Clean Code. Propose changes as necessary.

Additionally, remember to complete the rest of your first week obligations, including registering your Google Account and setting up your laptop for development.

Assignment 2

Read:

Choose a project following the criteria established in Assignment 1. Evaluate it with respect to the Clean Code rules for comments and formatting. Explain the changes that would bring the project into compliance.

Write an essay response to the Extreme Programming Episode.

Assignment 3

Read:

Choose a project follwing the criteria established in Assignment 1. Evaluate it with respect to the Single Responsibility Principle; this evaluation should include the identification of the responsibilities of each class. Explain the changes that would bring the project into compliance.

Write an essay responding to the excerpt from Allen Holub's book. Be sure to contrast your understanding of object orientation before and after having read the piece.