Work in this class will include readings from the textbook and from additional sources I provide, weekly programming assignments, three one-hour exams, and in-class activities including collaborative exercises and written quizzes.
The total course load is intended to be 12 hours per week (including class time); the load should be spread evenly across the semester.
Grading: Final grades are primarily determined by the three exam scores, although unusually good (or bad) homeworks, quizzes and participation can affect the final grade by up to a full letter.
Exams: The three exams are scheduled for February 27, April 1 and May 8. There will be no makeup exams for any reason. If you miss one exam for an extremely legitimate reason, your final grade will be based on the other two exams. If you miss an exam without a legitimate reason, you will receive a zero. If you miss two exams for any reason, you cannot pass the class.
Assignments: The weekly programming assignments are designed to give you an opportunity to apply and practice the material we cover in lecture. You will derive the greatest benefit from these assignments if you work on them alone and resist the temptation to get complete answers from other students, the TAs, or me.
Consulting with other students and even working in groups is acceptable, with the following strong warnings:
In some ways, this class is like a cruise ship. If you stay on board, it can be quite pleasant. But if you fall overboard, you have to yell for help immediately, while we can still send back a lifeboat. Once the ship is out of earshot, we can't come back to get you.