| name | description | date due | notes |
|---|---|---|---|
| lab1 | Getting Started | June 23 | 6/22 lists.java has been changed to better match what's covered in lecture. Please recopy the file over to your home directory. |
| hw1 | Iteration, Arrays, Strings in Java | June 28 | 6/23 fixed some typos in hw1.pdf 6/24 changed due date because of key card problems 6/27 Changed the specification of question 5, so that it's now doable in about 7 lines. A series of delimiters at the front or end of the input String should now be ignored. |
| lab2 | makefiles, inheritance, starting proj1 | June 30 | |
| hw2 | Inheritance, Lists, Numbers | July 5 | 6/29 Fixed some bugs and overlooked issues. Please check the source files for new comments, which enforce some additional rules for your implementations. In particular, DList has significantly changed to work with a "sentinel", TranslateFile should NOT crash with a stack trace and you cannot add a b times, b a times or similar tricks for problem 4. 7/2 The remove method of the Iterator for DList should throw an IllegalStateException (not UnsupportedOperationException) if remove is called before next or more than once without another call to next. The skeleton has been fixed and solutions using UnsupportedOperationException instead won't be penalized, but the new exception is what the Java spec calls for. |
| lab3 | Trees, Asymptotic Analysis | July 7 | |
| proj1 | Polynomial Calculator | July 9 | 6/29 Fixed comment in polycalc.java, so that it now says to get the StreamTokenizer (not the StringTokenizer) working. 6/30 A file ROADMAP has been added to the proj1 directory, that gives some tips about how to attack the project. |
| hw3 | Trees, Heaps | July 11 | 7/7 Fixed the signatures for getMin and getMax in BinaryTree.java. |
| lab4 | Hash tables, Sorting | July 14 | |
| hw4 | Hash functions, sorting | July 18 | |
| lab5 | Threads, Mailboxes | July 21 | |
| proj2 | Smush | July 23 | 7/16 A sample archive and input files can be found in the sample-archive subdirectory. 7/19 If there is more than 1 code that can be used (like when the dictionary is not full), you should use the smaller one. This will have the effect of the first code being 1, the second 2, etc. until the dictionary is full. After that point, the next code will be whatever the number of the LRU one (that's thrown away) is. 7/20 You must change the return type of ZivLempel.decode from void to boolean. The method should return true iff the InputStream could be successfully decoded. |
| hw5 | 2-3-4 Trees, Quad Trees | July 25 | |
| lab6 | Graphs, proj3 | July 28 | |
| hw6 | Topological Sort, Disjoint Sets | August 1 | |
| lab7 | proj3 checkpoints | August 2 | |
| proj3 | Sliding Blocks | August 6 | |
| hw7 | Meshes, Splay Trees, Knuth-Morris-Pratt | August 8 |