Programming Assignments

Advanced Programming/Practicum
15-200: Sections A,B,C
Fall 2006

Programming assignments are typically due one week after they are assigned, at 11:30pm, on a Wednesday night (a few run 2 weeks). To turn in programs, and verify the submission, use the Homework Dropoff (which is also available on the standard frame index). You receive no points for late programs, unless you have discussed the matter with me and gotten my official permission (typically, granted prior to the due date). You must drop off (on time) whatever part of the program you have written, if you are to receive any partial credit; if you drop off nothing, I assum you have done no work. Early programs receive extra points (1 if submitted 24 hours early, 2 if submitted 48 hours early).

We will use pair programming on selected assignments (either required or optional, although it is sometimes prohibited); it is only on these assignments that students can closely collaborate with their partners, turning in a single, joint program. Only one student from the pair should drop off the program -which one doesn't matter- but the names of both students must appear inside the code file(s). See Pair Programming for details about pair programming, and the right and wrong ways to do it. There is a tremendous amount to be gained by both group members, if they pair program in the right way.

If you are having problems finding a student to pair with, or believe that you your schedule disallows the ability to work in a pair, contact me immediately. Without making prior arrangments with me, individual students submitting a program when pairing is mandatory can have their grade reduced by 25%.

Please read each assignment completely and carefully. I suggest that you print and then read it, marking relevant material with a highlighter. We typically discuss these assignments in class on Friday (two days after they are distributed). In the intervening time, read the assignment and run its exectuable.

A quick overview: programs 2-3 are very simple; program 4 starts cranking up the complexity; programs 5-6 are probably the "hardest" given what you know and what you must program (in both, figuring out the specification of the problem is a major component); program 7 is a suite: the use of collections gets easier the more of these problems you solve; programs 8-10 are easily described and straight-forward, although they involve many technical details; program 11 is "special" because it concentrates on graphics classes.

#1 8/299/6 Computing Infrastructure Prohibited
#2 9/69/13 Programming Basics (Expressions and Statements) Mandatory
#3 9/139/20 Programming using Classes Mandatory
#4 9/209/27 Writing Classes Mandatory
#5 9/2710/4 Photomosiacs via Arrays Mandatory
#6 10/410/11 Simulation using Inheritance Optional
#7a 10/1110/18 Suite using Collections: Pre-Practice Exam, Programs 1-2
Write UNgeneric and generic versions of each.
#7b 10/1810/25 Suite using Collections: Programs 3-5 Prohibited
#8 10/2511/8(2x) Collections using Linked Lists
Recursion on Linked Lists
#9 11/811/15 Tree Processing Optional
#10 11/1511/29(2x) Graph Class Implemented with Collections/Graph Searching Optional
#11 11/2912/8(Friday) Writing View/Controller Classes for an MVC Application
Note: Optional/Pure Extra Credit (worth 10, not 30, points)