CS 312: Algorithms


Students are expected to know how to program, be familiar with common data structures, and to have a certain level of mathematical maturity, which includes knowledge of common proof techniques. These prerequisites are satisfied by Computer Science 211 (Data Structures) and Mathematics 232 (Discrete Math).


The course has a required textbook, which will be used for readings and homework problems: It is an outstanding book. I highly encourage you to read it.


Students will complete: All exams will be take-home exams. Assignments are due at the beginning of class on the due date. The lowest homework assignment will be dropped when computing the final grade.


I encourage collaboration on the homework assignments. These will be difficult, and students will benefit from developing ideas and solutions in small groups. However, each student must write their own solutions. This will cement and demonstrate understanding of the problem and solution. Copying of solutions will be considered a violation of the honor code.

Also, I highly encourage you to attempt problems on your own before meeting as a group, especially the easier problems that are designed to exercise skills. If you don't, you risk not learning one of the crucial elements of algorithm design, which is translating from high-level problem descriptions to solution approaches.

No collaboration of any kind is allowed on the exams.

Late Policy

Each student will have five free late days to be used on homework assignments. Each late day buys exactly 24 hours from the original due date at the beginning of class (so 24.5 hours = 2 late days). If you use up your late days, you will be penalized 33% of the assignment's value for each day or fraction thereof that it is late (0–24 hours = 33% penalty; 24–48 hours = 66% penalty; 48+ hours = no credit). Since I will not generally be at Mt. Holyoke on non-class days, late work should be submitted electronically via ella. It is your responsibility to scan any written work and submit it in pdf form.

Late days may not be used on the exams.

Fourth Hour

The fourth hour will be used every week, primarily to practice solving problems both as a class and in small groups. We will also use this time to answer questions from students (about homework problems or lecture topics), and, periodically, to cover additional topics that spill over from lecture.

Attendance at fourth hour is required and will be included in the class participation portion of your grade (i.e., you can lose up to 5% of the course grade by not attending).


This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com.

Find our class page at: https://piazza.com/mtholyoke/spring2013/cs312/home

Students are encouraged to help answer each other's questions on Piazza. Course staff will also monitor the discussion and answer questions. So, you are likely to get an answer very quickly. Our official policy is that course staff will read and respond (as necessary) to new posts within 24 hours on weekdays, and 48 hours on the weekend.

Email Policy

Email is a very good way to get hold of me for administrative items. I will typically respond within 24 hours (48 hours on weekends), if not much sooner, to emails about administrative items. I also expect you to check email on a regular basis to receive updates about course administration and assignments.

Office hours are the best venue for asking questions about homework and course content. Piazza is also a good for content questions, because other students may have similar questions and be able to help or benefit from the answer. Email is not nearly as efficient as face-to-face communication or group discussion on Piazza. So, please come see me or a TA, and make the most out of Piazza! I encourage you to make an appointment if the office hours listed above don't work for you.