Programming Assignments and Laboratories |
Labs for this course will be held on Tuesday 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 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 Monday 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 Thursday, Sunday, and Monday evenings, time to be announced.
Tuesday | Laboratory Title | Weekly Assignment |
Jan. 24 | Eclipse & Silver Dollar | Graphic Silver Dollar Game |
Jan. 31 | Timing Vector Additions | Word Frequency (Sample output for assignment 2) |
Feb. 7 | Analysis of Algorithms | Disk Sort |
Feb. 14 | Two Towers | Compression |
Feb. 21 | Eclipse Debugging | Calculator (Calculator demo) |
Feb. 28 | JUnit | Darwin |
Mar. 6 | Binary Trees | Darwin, cont. |
Mar. 20 | Binary Search Trees | Hex-A-Pawn |
Mar. 27 | Parallelism | Census Data |
Apr. 3 | C++ | Priority Queue in C++ |
Apr. 10 | Linked Lists in C++ | Animals in C++: Part 1 |
Apr. 17 | C++ Memory Management | Animals in C++: Part 2 |
Apr. 24 | Dijkstra's Algorithm | Graph Algorithms in C++ |
Programming Assignments and Laboratories |