Each week's material on the web site (other than week 01) includes a quiz. You must hand in this quiz to your instructor at, or before, the start of your recitation. The purpose of this quiz is to help encourage you to make a careful reading of the lecture notes. It is open book/notes, and can be taken at your leisure. You can print it out and fill it in by hand, or fill it in on the computer and then print it out, whichever you prefer. (It cannot be submitted electronically.)
The quiz is not graded, but they must be submitted. You can fail to turn in at most two quizzes. If, for some good reason, you cannot attend recitation, take appropriate steps to ensure that we get your quiz.
There will be weekly homework assignments, due at 8:00 AM Monday morning in the week after the material is covered in lab and recitation. These assignments are intended to test your comprehension of the material from the week's notes, and your ability to integrate it with material from prior weeks. In the first few weeks, assignments will consist of a collection of small problems. In later weeks they will tend to involve writing a single, larger, program.
Directions for submitting homeworks will be posted when they become available.
Late assignment submissions are not accepted. Please plan ahead to get your assignments done on time. Allow for contingencies such as the problem being harder than you thought, no one being available for help when you need it, the compiler suffering from brain-damage, and the machine crashing at inopportune times. A tutor will be available in the lab on Saturday and Sunday evenings (hours to be determined).
You may submit your solution ahead of the due date if you like. If you submit early and then realize you have made a mistake in an assignment that has not yet been graded, you may submit a new solution. The new submission will overwrite the original solution and will not be counted as a regrade submission.
Each problem will be graded on a scale of 0 to 10 points. Grades from 0 through 4 are non-passing (NC) grades. Along with the grade, you will receive comments from the graders.
If you receive a non-passing grade the grader's comments should make clear what is unacceptable about your submission. If your original submission was submitted on time and compiled, you will be allowed to submit a new solution. You must resubmit within 1 week of the day your graded program was returned. An acceptable resubmission will be given a grade of 5.
Exception: if the only major problem with your homework was an incorrect file or class name, your resubmission can receive a grade as high as 8. We require a resubmit, rather than just deducting two points, to strongly discourage you from submitting wrongly-named assignments. Wrong names create serious inconvenience for the graders.
If you do not submit a good-faith attempt to solve a problem, by the due date, you will receive a 0 for that problem. If your submission will not compile on orion, you will receive a non-passing grade. In these two cases, you will not be allowed to resubmit. It is your responsibility to seek out help from one of the professors or grader/tutors if you can't get your program running.
To pass the course, you must obtain a passing grade on all but 3 of the homeworks. No more than two non-passing grades can be in the second half of the course.
Some of the later homeworks will require that you turn in a pseudo-code design for your program. These designs will be due at noon on Saturdays, i.e. about two days before the actual code is due. The quality of your design will be used in determining your grade for that homework. Designs cannot be resubmitted.
The point of these designs is to force you to think about the assignment before the last minute, to give you practice in describing your code at a high-level, to help you identify when you are having major problems with the homework and seek advice, and to allow us to post design advice about the homework over the weekend.
We don't expect your designs to be perfect. It's almost impossible to produce perfect designs before the code is finished. However, we expect a good faith effort. You may find that it helps to have started working on your code, even if it isn't close to done, by the time you write the design.
Failure to turn in a good faith attempt at a design will count as an NC for that fraction of the homework.
Understand that homework assignments are being graded by student grader/tutors. While we try to get all the graders on the same wavelength before they grade an assignment, perfect consistency is very unlikely. If you feel you have been graded unfairly, or just don't understand a grader's comments, please go see the grader or your professor to discuss it.
The graders should return all submitted assignments within approximately one week. If you find significant delays in returning homeworks, please contact your professor.
The course will have a total of three exams. Two are hour-length midterms given during the term, the last is the final exam. Exams are to be taken closed-book (any necessary reference materials will be distributed with the exam) and will be scored on a scale of zero to one hundred.
The two midterm exams will be given at 8am on Fridays. If you cannot make the normal exam period due to a course conflict (or similar reason beyond your control), you must inform the instructors promptly so that we can arrange a make-up time.
In this course we focus on individual learning rather than group efforts. Therefore, you may discuss an assignment with other students, but you may not share written work of any kind, inside or outside the course.
We consider computer files, fragments of files, and printed output to be written work. In developing code for a programming assignment, you can discuss ideas with others. Once you have an idea, it is up to you to develop it yourself. You can get hints from others, but discussion of ideas must not involve transcription of the actual working code of others, with the exception that you may use (with attribution) any code explicitly provided by one of the professors or grader/tutors. Do not share your code with others.
Definitely forbidden is any form of collaboration wherein two or more students split up an assignment, then transcribe each others' contributions, sometimes changing names of variables, comments, formatting, etc. If the help you get from another is significant, you should acknowledge it on your submission. If you have any doubts about whether a form of interaction constitutes a violation of this standard, please consult with us before continuing.
If we detect unacceptable collaboration involving Harvey Mudd students, we will persue the matter with the Judicial Board. If you are an off-campus student, we will take the matter to the analogous authorities at your home institution. Don't. Just don't.
The comments about the honor code not withstanding, it is important that you try to overcome any inhibitions that you may have and actively seek out help when you are having trouble in the course. Ask questions in recitation and the lab about things in the notes you don't understand. Go to the tutors or the professor with more questions. Don't be afraid to go back again and again if something doesn't make sense.
Too many times a student will bang his head against a wall for hours trying to figure out why a program isn't working, when a few minutes with the professor is enough to make it clear.
Your fellow students are also a good source of help, with two caveats: you must be careful not to overstep the bounds of acceptable collaboration, and you should realize that even senior CS majors may not have all the insights a professor does on a problem. We're not necessarily smarter, but we have lots more experience, and, besides, we wrote the problems!
If you are prevented from finishing your work by circumstances beyond your control (e.g. sickness, machine failure, death in the family), speak to us promptly. We will make appropriate arrangements for those with legitimate excuses. However, we will be unsympathetic if you have simply failed to organize your time, e.g. you didn't start your work until the last minute.
If the situation is at all serious, also speak to the Dean of Students. She can help you make arrangements beyond the power of individual instructors. If you aren't sure whether it's serious, be cautious: speak to her.
The course has been structured so that you may work ahead of the prescribed pace and complete the course early. With the exception of exams, all work can be completed ahead of time. We encourage those of you with the skill and inclination to work as quickly as you'd like. You will gain both release time in the latter part of the term (by completing the course early), and free time during the week (by being excused from lab).
However, notice that we may still be modifying the labs, quizzes, and homeworks until most of the class needs to start using them. You can tell where we are by examining the version numbers at the top of the files. If you are working far enough ahead that you need to use a file which is still in unstable draft form (version number below 1), please speak to the instructors so we can make appropriate arrangements.
We are not planning major changes to the on-line lecture notes, merely fixing bugs. So you should have no problems reading ahead in the notes.
This page is maintained by Margaret Fleck.