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. 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 at Pomona, lab work will generally be distinct from the 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. You will usually need to submit your results from the lab by end of the lab period.
There will be two types of weekly programming assignments: individual 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 Sunday 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 Wednesday, Thursday, and Sunday evenings, as well as Sunday afternoons.
Wednesday | Laboratory Title | Weekly Assignment |
Jan. 30 | Eclipse & Silver Dollar | Graphic Silver Dollar Game |
Feb 6 | Timing Vector Additions | Word Frequency (Sample output for assignment 2) |
Feb. 13 | Analysis of Algorithms | Disk sort |
Feb. 20 | Two Towers | Compression |
Feb. 27 | Eclipse debugging | Calculator (Calculator demo) |
March 6 | JUnit | Darwin |
March 13 | Binary Trees | Darwin, cont. |
March 27 | Binary Search Trees | Hex-A-Pawn |
April 3 | Parallelism | Census Data |
April 10 | C++ | Priority Queue in C++ |
April 17 | Linked Lists in C++ | Animals in C++: Part 1 |
April 24 | C++ Memory Management | Animals in C++: Part 2 |
May 1 | Dijkstra's algorithm | Graph Algorithms in C++: Part 2 |
May 8 | No lab! | |
Programming Assignments and Laboratories |