The Essentials

Course:CS 252 (Algorithms), Fall 2014, Carleton College.
Meetings:5a (MW 1:50pm–3pm, F 12:20pm–3:20pm) in CMC 206.
Instructor:Jadrian Miles; CMC 327, x4976, jadrian
Office Hours:M 3pm–4pm; W 12:30pm–1:30pm; Th 11am–12pm; F 9:30am–10:30am
Grader:Kathy Yu, yuk
Textbook:Algorithm Design by Kleinberg & Tardos, 1st ed., 2005.

Course Content

This course is about solving, and about writing about solving, computational problems. By studying some selected applied problems and their distilled classical formulations, we will learn:

We are going to cover much of the book. This includes (not necessarily in this order):

For more details, please see the schedule page, which will be kept up-to-date as I adjust the schedule throughout the course.

Course Requirements

Who (and How) to Ask for Help

If you need help with an assignment or studying, you can consult with other students, ask a teddy bear (really! It works!), consult the book, search online, post to Piazza, ask a lab assistant, or come to me. We'll talk some in class about good strategies for working through assignments.

I also want to help you if you need it, so please come see me! Though I'll do what I can via Piazza, I can generally give much better answers in person. My office hours are posted on my faculty page; please either stop by then or email me several hours in advance to arrange to meet. I am rarely available on Tuesdays and weekends, as I reserve those for research, other work, and being a person. I try to respond to electronic communication promptly, but I can't promise any faster turnaround than the afternoon of our next class meeting after the day that you contact me.

There are also a number of college-wide resources available through the Academic Support Center: the wonderful Math Skills Center, the Write Place, an Academic Skills Coach, a tutoring program, and others. The library and Student Health and Counseling are also there to support you. Finally, the CS department has a smattering of online resources.


Your grade will be computed according to the table to the right. I reserve (and often exercise) the right to rebalance these percentages to increase your final grade; I will never change these weights in a way that lowers your grade. Using the above weights, a total of 90% and up will earn you some level of A, 80% and up at least some level of B, 70% and up at least some level of C, 60% and up at least some level of D.

The assignments are generally composed of two or (rarely) three algorithm-design problems, with a very occasional abstract problem thrown in. Generally speaking, there is one (multi-part) problem due each day that way have class. The requirements for these types of problems are somewhat involved, so please refer to the Homework Guidelines page for details about the homework.

This scheme is designed to eliminate the distinction between “legitimate” and “illegitimate” late submissions. Unless something truly extraordinary happens, there will be no extensions given. If you turn something in late, no explanation is necessary or desired. Note that turning in five problems each a day early balances out turning one in half a day late. Note also that there are about 20 problems over the course of the term, comprising 22% of your total grade, so it's not the end of the world if you get low grades on a couple of them.

Each problem in a problem set functions as its own independent assignment; they are generally assigned in weekly batches in order to give you plenty of time to think and work on them. Grades, bonuses, and penalties are all assessed separately on each problem, and the bonuses and penalties are only figured into your grade at the very end of the term. If you ever have a question about how your grade is computed, please ask.

Academic Honesty and Collaboration Policy

Great work (and great learning) often happens in groups, and you should collaborate with your classmates a lot in this course. There is a big difference, though, between thinking about and solving a problem as a group (which is good), and copying an answer from someone else or letting someone else copy your answer (which is bad). The formal policy below lays this out explicitly, and supplements the College's academic integrity policy and the Dean of the College's detailed guide to academic integrity.

Collaboration policy: You may collaborate on the homework assignments to the extent of formulating ideas as a group, but you may not collaborate in the actual writing of solutions (unless that's explicitly allowed in the instructions). In particular, you may not work from notes taken during collaborative sessions. You must cite all sources, including websites and classmates from whom you obtained ideas. You may not consult any materials from any previous offerings of this course or from any other similar course offered elsewhere.

You are required to completely understand any solution that you submit, and, in case of any doubt, you must be prepared to orally explain your solution to me. If you have submitted a solution that you cannot verbally explain to me, then you have violated this policy.

Of course, there is to be no collaboration whatsoever on any quizzes or exams, unless otherwise specified. Policies for what constitutes acceptable reference material, if any, will be specified in detail when the exam is distributed.

I am obligated by Carleton policy to report any suspected violations to the Dean’s office. The Dean, in turn, brings it to the Academic Standing Committee. The academic penalty for a finding of responsibility can range from a grade of zero on the specific assignment to an F for the course.

If you have any doubt about any aspect of this policy, ask beforehand!

* With few exceptions, “in advance” means “before the beginning of the term”. I am willing to be flexible about attendance in truly exceptional cases involving serious illnesses, serious injuries, or other unforeseeable, truly disruptive circumstances. Job interviews, extended vacations, political protests, etc. don't count, even as much as I support all those things.