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

On This Page

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

Assignments

The weekly assignments will be linked here.

Assignment 1 (Due Fri, Sep 8)
Assignment 2 (Due Fri, Sep 15)
Assignment 3 (Due Fri, Sep 22)
Assignment 4 (Due Fri, Sep 29)         Notes for Week4/AS4
Assignment 5 (Due Fri, Oct 6)            Notes for Week5/AS5
Assignment 6 (Due Fri, Oct 20)         Notes for Week6/AS6
Assignment 7 (Due Fri, Oct 27)         Notes for Week7/AS7
Assignment 8 (Due Fri, Nov 3)         Notes for Week8/AS8
Assignment 9 (Due Fri, Nov 10)         Notes for Week9/AS9
Assignment 10 (Due Fri, Nov 17)         Notes for Week10/AS10
Assignment 11 (Due Fri, Dec 1)         Notes for Week11/AS11
Assignment 12 (Extra Credit) (Due Sat, Dec 16)

Notes on Code Formatting and Commenting

Assignment 1
Assignment 2
Assignment 3
Assignment 4
Assignment 5

Worksheets

Worksheet 1 (Due for MW section in class on Mon., Sep. 18)
Worksheet 2 (Due for MW section in class on Wed., Oct. 11)
Worksheet 3 (Due for MW section in class on Wed., Nov. 15)
Worksheet 4 (Due for MW section in class on Wed., Dec. 6)

Assignment Policy

Each week will have an assignment that "exercises" that week's (and prior) material. Most assignments will be due at the end of the week, i.e., Friday 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.

    What, Friday?!

Acknowledging the demands of other classes, CS60 has an automatic two-day extension available on each assignment. Assignments submitted within the two-day extension (by Sun. midnight) will be graded for full credit; those submitted between midnight and 2:00 pm on the Monday after will lose half credit; later assignments will not receive credit. (We start posting solutions.) That's not to say they're not worth doing, of course!

Where are the machines?

Room 102 Beckman is where the X terminals connected to our server turing are. If you don't wish to use an X terminal, you may use a secure protocol (e.g., ssh, SecureCRT, FSecure) to get to turing.cs.hmc.edu. You may check out a CD from the Computer Science office (Olin 1240, 1-5pm) to copy FSecure onto your computer (both Windows and Mac versions are on the CD; if you run linux, you already have ssh). Getting acquainted with turing is a good idea, since some software we use will not be available on other machines. Because FSecure will be in demand, you can download and use (for free) a trial version of SecureCRT for about a month. It's available from www.vandyke.com/products/securecrt/ .

Getting Help

The instructors and gradors/tutors hold regular office hours. If none of those times works for you, email me to set up an alternative time to meet (dodds@cs.hmc.edu). You're also welcome to stop by my office any time (Olin 1245).

You will get an account on turing. In your home directory you should have a directory named cs60, whose group owner is cs60. If not, the system administrator will create one for you. Access to this directory will thus be by you, the instructor, and the tutors, but preferably no one else. When properly setup, the directory listing is obtained by ls -l and should look like this:

 
    drwxrwx--- 2 yourid cs60  512 Sep 8 20:32 cs60/ 
If the permissions differ (the letters and dashes on the left), you should execute the following command from your home directory:


%  chmod 770 cs60

Your cs60 directory lets us help you on problems with code without your having to mail the code. You will need to change the permissions of the file you'd like the instructor or tutor to read. To do this, type

%  chmod 644 <filename>
in the directory containing your file filename. Then email the instructor or tutor and ask them to take a look. She or he can move to your directory and read and write things there. It is a good idea to write all of your code in that directory or one of its subdirectories (a1 or a01 to a15).

Submitting Assignments

To submit an assignment, run the following on turing from the directory that contains your assignment files.
cs60submit <assignment #> 
       

where <assignment #> is the number of the assignment being submitted. The file should be an text file, that is, it should be source code. It's important that the file be named as specified in the assignment, e.g., hw1.rex.

When you use cs60submit, your submission is partially graded on the spot and will return a score of how you did. This feature is intended to make it easy to catch problems like typos that cause your submission to fail completely. In addition, you know for sure that you will receive those points on the assignment. Keep in mind that there are other tests -- and style guideines -- that your code will be run against.

It is a good idea to keep your files to widths of less than 80 characters (it makes them easier to read and grade). All submissions are kept for archival purposes, but only the latest submission before the time deadline will be graded.

Mail on Turing

To you have your mail on turing forwarded to another machine, create a file named .forward in your top-level directory. (Yes, there's a dot in front of the file name. To see such files, type ls -a.)

In your .forward file, put the address to which you'd like the mail to be forwarded on the first line. If you want it forwarded and also wish to retain a copy on turing, include immediately after that address and on the same line:

    ,\yourUsername
where yourUsername is replaced by (what else?) your turing username. Note that there is a comma there, and a backward slash; a forward 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 may not be equally weighted. Sufficient information about the programming languages you will be using will be provided in class with some reinforcement in the assignment descirptions themselves. There are considerable online resources for those languages, too, on the references page. 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.

Each assignment will be worth 50 points. Partial credit will be given and extra credit (usually 20%) is available. 10 points of each assignment depends on the legibility and commenting of your code --- basically for "good coding style." The following list describes what we expect in terms of coding style. These are worth 2 points each.

Programs which do not compile and run will not receive any points (not even style points!) You will see this when you submit, but keep it in mind. A good idea (in any computer endeavor) is to keep the best working copy of code somewhere safe and alter a different version as you improve things. The best strategy is to progress from a partial, but working, solution toward a final, complete 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

Your overall grade is determined out of 1000 points. If at the end of the semester the assignments, worksheets, and exams turn out to be worth more or less, their sum will be normalized to a scale of 1000. 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
950-1000 A
900-949 A-
850-899 B+
800-849 B
750-799 B-
675-749 C+
600-674 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/Worksheets/Quizzes 700 points: individual assignments are around 50 points
Final exam 200 points
Midterm exam 100 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. Old exams and additional information is available on the exam page.

Collaboration and the Honor Code