Principles of Computer Science
Assignments/Grading Policies, Fall 1999
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.
keller@cs.hmc.edu) (
dodds@cs.hmc.edu).
You should have a directory ~/cs60 which has group access by group 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:
2 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
The purpose of this directory is to be able to get help on programs without mailing the program. Simply indicate the file name to the instructor or tutor. He or she can connect to the directory and write things there. It is not necessary that you keep all of your work accessible there, just the things on which you are currently working.
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.
Note: If cs60submit is not found, you need to add /cs/cs60/bin to your path (likely in your .cshrc file in the top level of your home directory).
To you have your mail on turing forwarded to another machine, create in your top-level directory file
.forward
which contains the address to which you wish the mail to be forwarded. 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.
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.
| The program should run according to specification. For example, if you are told to give a function a specific name, do so, as the testing program might not run otherwise. You will then lose points for not following the specification. |
| Comments should be included in the code to expose the method, any subtleties, etc. Your code should be readable without extraordinary effort. Use spacing, braces, etc. to improve readability. Layout characters are not at a premium, so use them liberally. |
| The program should not break in unusual ways for minor input aberrations, not contain constructions which are abnormally inefficient, etc. |
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.
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.
|
Here is how the points are approximately divided:
|
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.