Computer Science 60
Principles of Computer Science
Assignments/Grading Policies, Fall 2001

On This Page

Assignments
Assignment Policy
Where are the machines?
Getting Help
Submitting Assignments
Assignment grading
Course grading
Exams
Collaboration and the Honor Code

Assignments

Assignment 1: SOLUTION
Assignment 2: SOLUTION
Assignment 3: SOLUTION
Assignment 4: SOLUTION
Assignment 5: SOLUTION
Assignment 6: SOLUTION
Assignment 7: See Assignment 6: Samples (pdf): SOLUTION
Assignment 8: SOLUTION
Assignment 9: SOLUTION (Karnaugh maps)
Assignment 10 (database, hint, bonusTest.pl) (SOLUTION)
Assignment 11: SOLUTION
Assignment 12 (OPTIONAL, BONUS)

Assignment Policy

There will be an assignment every week (with exceptions for holidays). Most assignments will be due on Wednesday at midnight. Since we use an automated procedure to determine submission time, if you submit even slightly after midnight, it will be recorded as being submitted the next day. However, there is a built-in one day extension available on each assignment. Work on an assignment after that point will not receive credit (but will reinforce the material... ).

Where are the machines?

Room 102 Beckman is where the X terminals connected to our machine turing are. If you don't wish to use an X terminal, you may telnet to turing.cs.hmc.edu to use it. Getting acquainted with turing is a good idea, since some software we use will not be available on other machines.

Getting Help

You can e-mail questions at any time. The best method is to send your message to cs60help@cs.hmc.edu, which will forward your message to the entire course staff and hence is likely to yield the quickest response.

If you prefer more personal contact, the instructors and gradors/tutors also hold regular office hours. If none of those times works for you, e-mail your instructor to set up an alternative time to meet, or stop by the instructor's office.

Submitting Assignments

To submit an assignment, runthe following on turing.cs.hmc.edu (and not some other machine)
cs60submit filename 

where filename is the file containing the assignment to be submitted. The file should be an non-encoded ascii file with at most 80 characters per line. The program will ask what assignment this is (a number), and then submit the assignment properly. Shortly thereafter (usually a few seconds), you will receive on turing by e-mail an exact copy of what was submitted. You must either read mail on turing or have your mail forwarded in order to get this response. You will notice that some headers are attached, containing certain essential information. These headers are commented out so that compilation of the program is not affected. If what you receive is not acceptable (e.g. becomes MIME encoded because it is more than 80 columns or contains control characters), you are responsible for noticing this immediately, correcting the file, and re-submitting it. All submissions will be kept for archival purposes, but only the latest submission before the time deadline will be graded.

Your account may or may not already be forwarding mail sent to your turing account to another machine. You can tell by seing whether there is a file called

.forward

in your home directory (note that the ls command does not display names beginning with a dot by default, so use ls -a to see all files.) If it exists, your mail will be forwarded to the address given in this file. If you want it forwarded and also wish to retain a copy on turing, include immediately after that address and on the same line:

, \your-login-id-on-turing

where your-login-id-on-turing is to be replaced with your login. Note that there is a comma there, and a backward-slanting slash; a forward slanting slash will not work. Do not create mail-loops by having another machine forward to turing when turing is forwarding to that machine. This eats up system resources and may cause the loss of your account.

Assignment Grading

The assignments will stress programming, though there may also be some paper-and-pencil exercises. Programming assignments help drive home key working concepts and principles. Assignments vary in difficulty and will not be equally weighted. The programming languages in which the assignments are to be written include Java, Rex, ISCAL (an assembly-type language), and prolog. Sufficient information about the languages will be provided to enable you to complete the assignments; you do not have to know these languages when you enter the class. You should, however, have some background in an imperative language such as Java, C++, or Pascal.

Here is the nominal point breakdown we use on assignments. This may vary somewhat, depending on the emphasis of the assignment.

We're sorry, but programs which do not compile will not receive any points.Thus it is always better to submit a compilable partially-correct solution than an ostensibly fully-done solution which does not compile. You are advised to work from a compiling solution toward a final solution by gradually adding features.

Remember, you can always ask about things before you submit your actual product. There is no reason to lose points on most of the above. You also lose no points or esteem for asking.

Course Grading

Here is how your overall grade is determined: The target isis a total of 1000 points, so each point is 0.1% of your grade. If it turns out that 1000 points are not available, each point is multiplied by the scale factor (1000/pts. available). This is for reference only. If you base your strategy on understanding rather than point acquisition, the points will follow.

If your final total is in the range of points your grade is
900-1000 A
850-899 A-
800-849 B+
750-799 B
700-749 B-
650-699 C+
600-649 C
550-599 C-
500-549 D+
450-499 D
400-449 D-
0-399 F
Here is how the points are approximately divided:
Assignments 500 points: individual assignments are around 50 points
Final exam 250 points
Midterm exam 100 points
Participation, which includes worksheets, quizzes, and presence in class 150 points

Exams

The two exams are closed-book except that you are allowed one sheet of paper (double sided) containing your own notes. The exam emphasizes conceptual understanding, rather than memorization of fine details.

Past courses' exams are available for review here.

Last term's list of final exam topics is also available.