Assignments


Assignment 1

Assignment 2

Assignment 3

Assignment 4

Final Project

Basic requirements for each assignment

For each assignment, you will need to submit three separate pieces:
  1. a design document that lays out the purpose of the software written, a rough image of what it is supposed to look like and what behaviours and functionality it is supposed to support. This document is IMPORTANT because if you intend to get something working but dont quite manage, we will at least have an idea of what you are trying to do. This is often called aHigh-Level Design Documentor aSoftware Requirements Specificationin development teams.
    • See the section below on pair programming as to how you report who did what in your assignment.
  2. A copy of the code and comments.
  3. A working implementation. IF you have written the assignment using Eclipse, you may zip up and submit the Eclipse project file. This will include the code as well as the runnable implementation. BE CAREFUL! Don't make assumptions about file paths. Test it on different machines.

Pair Programming Standards and Requirements


In this class you will do your programming assignments with a partner. This is a great tool to help learn how to program and solve problems. But it is not like other team-based approaches that you may have already experienced.
Pair programming does not mean taking an assignment and partitioning into two pieces and then having each person complete a piece.

Pair programming means working on an assignment together, sitting at the same computer. One person drives (types at the keyboard) while the other person sits next to the driver while observing, commenting, and making suggestions to the driver. This form of programming can speed up the programming process by having a helper immediately available. It also tends to reduce errors in the code because there are two sets of eyes examining the code. It also reduces errors because if the driver try a questionable solution to a problem the watcher will hopefully question the faulty logic and a better thought out solution will be found.

If you want to use pair programming, certain requirements must be met.

1. Maintain a log of when you worked on the assignment. Record the day and time either person worked on the assignment. At least 90% of your time must be spent working together at one computer. Record the total amount of time spent on the assignment. Example:
6/2, 7:30 - 8:30 Mike, 1 hour
6/2, 7:30 - 8:30, Kelly, 1 hour
6/3, 7:00 - 9:00, Mike and Kelly, 4 hours
6/4, 8:00 - 9:30, Mike and Kelly, 3 hours
6/5, 8;00 - 10:00, Mike and Kelly, 4 hours
total time 13 hours, 11 hours of pair programming

2. When working as a pair have the driver and watcher swap about every 30 minutes.

3. Within the code place comments stating who was driving when the code was written. Example:

//Mike driving now
public static void main(String[] args)
{
int x = 0;
int y = 0;
// more code

} // end of Mike driving, Kelly driving now


4. Record the problems and challenges you encountered on the assignment. What was particularly difficult? What parts of the assignment did you need outside help on?

5. Record the things you learned about programming and algorithms while doing the assignment.

All of the log requirements should be kept in a simple text file and added to the design document you turn in for the assignment.