Documentation and HandoutsTopLectures and ReadingsProgramming Assignments and Laboratories

Programming Assignments and Laboratories

Labs for this course will be held on Wednesday afternoons from 1:15 p.m to 2:30 p.m. and from 2:45 p.m. to 4 p.m. in 229 Edmunds. Those who are able are encouraged to come to both sessions. The room is equipped with iMac computers.

Attendance at these lab sessions is mandatory. Please arrive well prepared for the lab or you will waste your time and ours.

Unlike in CS 51, lab work will generally be distinct from your weekly programming assignments, though the lab work will generally be relevant to those longer assignments. Instead we will often use lab time to introduce you to new software tools and techniques that require more hands-on experience to understand.

There will be two types of weekly programming assignments: laboratory programs and team programs. All programs assigned during the semester should be completed following the guidelines in the Academic Honesty Policy .

There will be 10 to 12 weekly programs due. All programs will be graded on design, documentation and style, correctness, and efficiency. The elements of a good program are very much like the elements of a good paper. It must be correct, but it should also be written in a style that is clear and elegant. You will receive written comments on all of your programs.

Weekly assignments will generally be due on Tuesday evenings at 11:59 p.m. There will be a penalty assessed of 3n % for a program that is n days late. Programs will not be accepted more than four days late. It is usually better to turn in a correct and well-documented program one or two days late than a non-functioning or non-documented program on time.

All assignments should be submitted electronically. The procedure will be explained in laboratory.

Teaching assistants for the class will be available in the lab on Sunday, Monday, and Tuesday evenings, time to be announced.


Laboratory Title           Weekly Assignment         

Jan. 26

Eclipse & Silver Dollar Graphic Silver Dollar Game

Feb. 2

Timing Vector Additions Word Frequency (Sample output for assignment 2)
Feb. 9 Analysis of Algorithms Disk sort
Feb. 16 Two Towers Compression
Feb. 23 Eclipse debugging Calculator (Calculator demo)
March 2 Parallelism Termites

March 9

JUnit Darwin
March 23 Binary Trees Darwin, cont.
March 30 Binary Search Trees Hex-A-Pawn
April 6 C++ Priority Queue in C++

April 13

Linked Lists in C++ Animals in C++: Part 1
April 20 C++ Memory Management Animals in C++: Part 2
April 27 Dijkstra's algorithm Graph Algorithms in C++: Part 2
May 4 No lab!

Documentation and HandoutsTopLectures and ReadingsProgramming Assignments and Laboratories