Assignments are due at class time (8:30 AM) on the due date unless otherwise indicated. Assignments handed in after 8:30 AM on the due date will have 25% deducted from their scores. Assignments handed in the day after the due date will lose 50%. Assignments handed in after that may or may not be graded, depending on the grader's schedule, but will receive no credit in any case.
All programming assignments should be submitted using the Homework Submission Program
Assigned 1/7/04, due 9:50 AM Monday, 1/12/04. The files CharNode.java and CharList.java contain the beginning of a linked-list-based string class (CharList). Complete the CharList class as described in the comments at the top of CharList.java.
Assigned 1/14/04, due 9:50 AM Monday, 1/19/04. Shapes.
Assigned 1/16/04, due on paper at 9:40 AM Friday, 1/23/04. Do problems 2a, 3d, 8, 10, 11 on pages 67-69.
Assigned 1/19/04, due 9:50 AM Monday, 1/26/04. Mazes.
Assigned 1/28/04, due 9:50 AM Monday, 2/2/04. Recursion.
Assigned 2/10/04, due 9:50 AM Monday, 2/5/04. Take a look at Sorter.java. Compile it, run it ("java Sorter 10" will sort ten integers for you), and read the code to figure out what it's doing. Then, implement the bstSort method. Unlike what I said in class, you may implement this method either using a linked implementation or an array implementation for your BST, but you must adhere to the implementation requirements in the program comments, and you may not change the interface for bstSort. You may, however, write support classes or private methods if appropriate.
Assigned 2/16/04, due 9:40 AM Friday, 2/20/04. Sorting.
Assigned 2/23/04, due 9:40AM Friday, 2/27/04. Write a program that takes a text file name as a command-line argument, reads the words from the file, and prints two lists of words. The first list should be an alphabetized list of the words in the file along with the number of times each word occurs. The second list should be the same data (words with their frequencies), sorted in decreasing order by frequency.
For this exercise, I want you to implement a hash table to store the words and their frequencies. Select a hash function that can deal with large numbers of distinct words, because we'll test your code with both small and large text files.
Consider a "word" to consist of any block of letters, hyphens, and apostrophes surrounded by other characters. Also, compare words in a case-insensitive manner. For example, "moose" and "Moose" and "MOoSe" should be considered three occurrences of the same word.
Assigned 3/1/04, due 5:00PM Monday, 3/15/04. Final Project.
1/5/04. Read chapters 1 and 3 of Drozdek.
1/15/04. Read sections 2.1-2.8.
1/19/04. Read chater 4.
1/26/04. Read sections 5.1-5.10 and 6.1-6.2.
1/28/04. Read sections 6.3-6.7.
2/10/04. Read sections 6.9 and 9.1-9.3.
2/20/04. Read sections 10.1-10.2, 10.6.
2/23/04. Read sections 8.1-8.5, 8.7.