Princeton University |
Computer Science 226
|
Computer Science Dept. |
Contents of this page:
There will also be ten weekly problem sets. These will be handed out on Wednesdays and due at precept the following week. These will consist of short questions on the material in the lectures, notes, and programs. These are a very important part of the course and should be taken seriously. Not only do they contribute a substantial percentage to your grade, but also you can be sure that many of the questions will reappear on the midterm and final, but with different input data.
There will be a midterm exam on the Wednesday before break, which will cover all material up to and including the lecture on the previous Wednesday. The final exam will cover all material in the course.
Do not refer in the readme file to any programming done after the electronic submission. We will be checking what you have said in your writeup by running your code. Discrepencies will lower your grade dramatically.
Grades on the programming assignments will be: 10(perfect in every way), 9(outstanding), 8(excellent), 7(very good), 6(good), 5(not bad), 4(poor), 3(minimal effort), 2(bad), 1(hopeless), or 0(not handed in). Grades on the problem set questions will be: 4(correct), 3(minor mistake), 2(major mistake), 1(poor try) or 0(all wrong).
The programming assignments, problem sets, and exams all contribute significantly to your grade. Specifically, your final course grade will be calculated as follows:
Assignments submitted more than a week late, or after the Dean's date, will receive no credit.
There will no extensions due to scheduling conflicts, computer downtime, or other such factors, except under truly extraordinary circumstances. Extensions will be granted 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.
Unless prior arrangements are made, a grade of zero will be recorded for missed exams.
Students taking several courses using CIT facilities will have one account and their disk quota will be the sum of the disk quotas for all courses.
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.
Problem sets should reflect your own work. Collaboration is inapproriate for the specific problems in the problem sets, though working with course assistants and other students in the class on similar problems is encouraged.
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 C, 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.
/u/cs226/bin/submit number filesnumber is the assignment number and files is the list of files for that assignment. For example,
/u/cs226/bin/submit 31 readme makefile main.c strings.csubmits the files readme, makefile, main.c, and strings.c for a fictitious assignment 31.
The submit command copies your files to the directory /u/cs226/submit/login/number and lists all the files that you have submitted for assignment number. login is your user account name. If you execute submit after the assignment deadline, your files are placed in directory number-late. You can run submit more than once, and you can submit partial lists of files.
There's also unsubmit, which allows you to `unsubmit' one or more files. For example,
/u/cs226/bin/unsubmit 31 main.cwould remove your main.c from the submission directory.
You can omit the /u/cs226/bin/ prefix if you add /u/cs226/bin/ to your PATH variable. You must execute submit on one of the SparcServers.
When appropriate, submissions may also include a file named makefile, written so that the command `make' builds your program, and the command `make clobber' removes all `derived' files, e.g., object files, executable files, and libraries. For details about make, see its man page.
1. | Shellsorting a linked list | due 2/11 | checklist |
2. | Sorting and merging networks | due 2/18 | checklist |
3. | Bin packing | due 2/25 | checklist |
4. | Word searching | due 3/4 | checklist |
5. | Repeat searching | due 3/28 | checklist |
6. | Language modeling | due 4/4 | checklist |
7. | Point location | due 4/8 | checklist |
8. | Factoring | due 4/18 | checklist |
9. | Shortest paths | due 4/29 | checklist |
10. | Subset sums | due 5/10 | checklist |