Computer Science 226
Algorithms and Data Structures
Spring 2004

Course Information | Assignments | Exercises | Lectures


Below are links to the programming assignments. The checklist link associated with each assignment points to any corrections, test data, and specific information that you need to complete your submission.

 #  Assignment Due Checklist
1 Pattern recogniton 2/13 checklist
2 Bin packing 2/20 checklist
3 Language modeling 2/27 checklist
4 Word searching 3/5 checklist
5 Burrows-Wheeler 3/26 checklist
6 Point location 4/2 checklist
7 Rogue 4/9 checklist
8 Map routing 4/16 checklist
9 Baseball elimination 4/23 checklist

Grading policy: You will write some programs for the programming assignments, run them, and submit the code electronically. Your code will be graded on correctness, efficiency, clarity, and elegance. It is your responsibility to describe how you have completed the assignment in the submission, not ours to glean this information from your code. You will submit a separate text file named readme.txt that describes what you did. This is also the place where you will answer any questions posed in the assignment or checklist.

Lateness policy: Assignments are due on Friday at 11:59pm. If you submit an assignment late (more than a few hours), you risk losing a substantial number of points. Assignments submitted more than a week late, or after the Dean's date, will receive no credit. Extensions will be granted automatically only for university-sanctioned excuses such as illness, and then only with the proper documentation. You are responsible for planning ahead and managing your time so that you can complete the assignments on time. You must either finish on time or accept the consequences of doing otherwise. Preceptors can also grant extensions on an individual basis at their discretion.

Collaboration policy: Programming, like composition, is an individual creative process. Individuals must reach their own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write the code that solves the problem, such discussions are no longer appropriate -- the program must be your own work (although you may ask teaching assistants or lab assistants for help in debugging). If you have a question about how to use some feature of Java, UNIX, etc., then you can certainly ask your friends or the lab assistants or teaching assistants.

Do not, under any circumstances, copy another person's program. Writing code for use by another or using another's code in any form violates the University's academic regulations and will be dealt with harshly.

Do not allow anyone else to use your accounts for any purpose. They are for your use alone, and you are responsible for any misuse. Your passwords control access to your accounts and should be kept secret.

What to submit.  Submit all of your source code for each assignment. Your code should conform to reasonable style guidelines. Include your name and precept number in every file you submit. Use consistent indentation and white space as needed. (All tabs will be converted to three spaces, so be careful about mixing spaces and tabs.) Comment every function and the purpose of important variables. No line should have more than 80 characters.

You must also submit a text file named readme.txt with each assignment. Besides any problem specific information which is listed in each week's assignment or checklist, you should use this file to give the reader a high-level explanation of your source code and point to anything unusual or notable about your program (such as extra credit or known bugs).

How to submit.  Submit your solutions to the programming assignments electronically via the web submission system on the course home page. You will receive an email receipt after each successful submission. You will need an arizona login and password to submit files. If you do not have one (or do not remember your password), go to OIT at 87 Prospect.

Be sure to submit all of the required files, and use exactly the (case-sensitive) filenames provided. Once you submit all of the required files, click the Run Script button to make sure that it compiles cleanly. If you do not follow these directions, you risk losing a substantial number of points. You can resubmit and unsubmit files as needed up until the submission deadline.