CMPSCI 611: Theory of Algorithms
David Mix Barrington
This is the home page for CMPSCI 611.
CMPSCI 611 is the graduate core course in
the theory of algorithms and will deal with analysis techniques, algorithmic
paradigms, and NP-completeness in a mathematically sophisticated way.
Instructor Contact Info:
David Mix Barrington, 210 CMPSCI
building, 545-4329, office hours Wed 11-12, Fri 2-3 or by appointment.
(Dropping in to my office is usually ok as well.)
TA Contact Info: Piyanuch Silapachote,
better known as "Pla", email@example.com,
office hours Tue 11-1 in the CMPSCI lounge.
Also Shaolei Feng, firstname.lastname@example.org,
office hours Mon 11-1 in the CMPSCI lounge.
Important Course Information:
The course is primarily intended for graduate students in computer science,
and forms one of the core courses for the Master's and Ph.D. programs. Other qualified
students, such as undergraduate, non-degree, and engineering graduates students,
will be admitted if space allows. The minimal prerequisite is a good undergraduate
discrete mathematics course (such as our CMPSCI 250) and the mathematical sophistication
expected of a computer science graduate student (e.g., a good background in linear algebra
and statistics). Most students will have taken an undergraduate course in algorithms
comparable to our CMPSCI 311 -- those who haven't will have to acquire some of this
background on the fly.
The course will meet for two lecture meetings a week, Tuesday and Thursday 1:00-2:15.
Lectures will be videotaped for off-campus students in the PEEAS program, and on-campus
stduents will be able to borrow these tapes from the CMPSCI main office.
The required textbook will be lecture notes from previous versions of this course
given by Prof. Micah Adler, who is on
sabbatical leave. These will be available by hardcopy only, through
in downtown Amherst. Most but not
all of the material of the course is covered in published books, which you may or may not
want to buy. The most popular text for a course like this is Introduction to Algorithms
by Cormen, Leiserson, Rivest, and Stein. Another good recent text is Algorithm Design,
by Kleinberg and Tardos.
The grade for the course will be based on a midterm (to be held Wed 26
October, 6:30-9:00 p.m., in Herter 231),
a final exam, and five or six problem sets. I have a somewhat nuanced
acedemic honesty policy for problem sets, which even some graduate students have had
difficulty following, so I set it out here:
Solutions to homework problems must be entirely the student's own work in
presentation. You may get the idea of how to solve a problem from a variety of
sources, such as the instructor, the TA, fellow students, books, or the web. In your
writeup of the solution, you must indicate if and where you got such help and
present the writeup in your own words. A good way to ensure your own presentation
is to write up your solution without other written material in front of you. Handing in
work that is substantially identical to another student's work or to your reference is
plagiarism and will lead to sanctions. These may include failure for the course
and a report to the Graduate School, even on a first offense. (Any discplinary
action by me is subject to appeal to the Graduate School according to the established
The most common violation of these procedures comes when two or more
students hand in solutions
that are substantially identical to each other. Please don't do this. It is usually
a matter of excessively close collaboration rather than deliberate copying, but if I can't
distinguish it from the latter I have to treat it as the latter. With reasonable care on
your part to write up your own solutions, this shouldn't happen.
The primary avenue for course announcements will be the list/blog below:
Announcements (23 December 2005):
- (23 Dec) I have graded the final exams and computed grades for the course.
I emailed grades for both the exam and the course to each of you. The scale
for the final was 88 = A, 52 = B. The mean score was five points higher than
on the midterm -- the high was 97, second-best 91, first quartile 83,median 66,
third quartile 57, low 33. Of the 39 people who took the final, the course
grades were as follows: one (unofficial) A+, 12 other A's, 6 A-'s, 15 B+'s,
and 5 B's. You may pick up your final from me (I don't want to put them in the
public pickup box). Happy holidays!
- (20 Dec) The graded HW#5 papers are now available in the main office.
The mean was 88, the scale (as on HW#4) is A = 95, A- = 85, B+ = 75, etc.,
so that the overall scale for the five homeworks comes out to A = 90, A- = 80,
etc., the same scale that is probably for the final. (Since the midterm was
harder than I intended, it is scaled as A = 80, A- = 70, etc.)
- (20 Dec) A student has pointed out an error in the
practice final solution, in the last
problem -- this has now been corrected.
- (19 Dec) Solutions to HW#5 are now available in the main office. The
graded HW#5 will probably be available tomorrow. Also, Shaolei is moving his
office hours today to 1:30-2:30.
- (16 Dec) The current estimate from the TA's is that graded HW#5 and
HW#5 solutions will be ready on Monday. I'll let you know when they're
available in the main office.
- (16 Dec) In the last lecture we were under the impression that our
final exam was to be in the new engineering building near the computer
science building. This is not true -- the correct site, as listed
on the registrar's web site, is "AEBN 119", a room in the
Agricultural Engineering building, in grid square B3 on
campus map. Room 119 is most easily accessed by entering the building
on the north side, at the bottom of a staircase between Holdsworth and
Chenoweth. It is the first room on the left if you enter that way.
- (15 Dec) The practice final solution
is now available. The real final is written and has been field-tested by one
of the TA's with no evident problems. I will be around my office a lot until
the real final on Wednesday, except that I may or may not be in tomorrow if
the weather is as bad as predicted.
- (13 Dec) Ok, the practice final
is done. I'll post answers in a few days.
- (13 Dec) Most of the practice
final is ready, I need one more 10-point question which I'll add later
- (13 Dec) I've just posted today's slides --
sorry I forgot to post them before the lecture. I hope to post the practice
final exam tonight.
- (12 Dec) I've posted a few more questions and answers
on HW#5. One of them necessitated a correction to the
HW#5 assignment: in Problem 5.3(c) your correction
to the random coloring should be performed in linear time.
- (8 Dec) Here are today's slides, sorry they
are so late. There are also some corrections to the
HW#5 assignment, and some new questions and answers on
- (6 Dec) I've posted a revised copy of today's
slides, correcting the typos that we found during the lecture. Let me
also take the chance to advertise the seminar tomorrow by David Liben-Nowell
on social network theory. (For example, he will probably talk about the
Erdos graph, where vertices are mathematicians, edges represent collaboration
on a paper and a low distance to Paul Erdos is a status symbol,
or the Bacon graph where vertices are actors, edges represent
appearing in the same movie, and nearly every actor is within distance six of
Kevin Bacon. There is at least one person in both graphs, actress and UCLA
math major Danica
- (6 Dec) Here are today's slides.
- (1 Dec) I've posted today's slides and
corrrected a bad link on the HW#5 assignment.
- (30 Nov) I've posted HW#5, due on 13 Dec at
3:00 to the main office. Only the last question deals with linear programming,
so it is 90% on Chapter 8 of Adler. Some of these problems probably have
solutions out there on the web, so be careful to document your sources if you
use any and make the presentation your own.
- (29 Nov) At the end of today's lecture I added some material on on-line
algorithms, that will be relevant to one of the problems on HW#5. I've revised
the lecture notes
to add four more slides on this material, and to correct some
- (29 Nov) Here are today's slides. I have
mostly figured out problems for the last HW assignment and will probably post
them today or tomorrow.
- (22 Nov) I've posted today's lecture slides.
The last homework assignment, HW#5, will be due for on-campus students on the
last day of classes, Wednesday 14 December 2005, at 3:00 p.m. to the main
office. I'll post the HW#5 assignment early next week. I'm leaving town
shortly after today's classes, so I will miss office hours tomorrow. I will
be back sometime over the weekend, and will have some email access when I am
- (21 Nov) I've added several questions and answers on HW#4 to the
Q&A page. None of them required corrections to the
assignment text. The HW#3 papers are now graded -- I will put the folder
in the pickup box in the main office soon and also bring it to class tomorrow.
These were much better than previous homeworks -- the mean was 85 and the low
only 47. The scale will thus be A=90, B=60.
- (15 Nov) I've just corrected a serious mistake on Question 4.3 of HW#4 --
all the references to "reducible to B" should (and now do) read "reducible to
A". Thanks to the student that caught this. Today's
slides are now up. I have also started a Q&A page
- (10 Nov) OK, the HW#4 assignment is posted, due
a week from Tuesday. It would be good to look at it in the early part of
next week, before I go away. I do apologize for the number of edits that have
been necessary in the HW's -- I know this is annoying. There should be fewer
(or even none) with this one, I hope.
- (10 Nov) A reminder -- I will be away from Wednesday afternoon through
Saturday. There will be no lecture on Thursday 17 November. We will
have a lecture on 22 November, the Tuesday of Thanksgiving week.
- (10 Nov) Today's slides are ready. The
HW#4 assignment will probably be ready before class.
- (10 Nov) Now that the off-campus students have all taken the exam, here
are the statistics for the on-campus exam:
- Grade scale: 80=A, 70=A-, 60=B+, 50=B, 40=B-, 30=C+
- Overall order statistics: high 90, first quartile 77, median 60, third
quartile 45, low 27
- Question 1: high 37, 1Q 28, median 22, 3Q 19, low 11
- Question 2: high 15, 1Q 15, median 12, 3Q 6, low 0
- Question 3: high 20, 1Q 15, median 14, 3Q 10, low 2
- Question 4: high 25, 1Q 22, median 13, 3Q 10, low 1
The scale is lower because Question 1 was really harder than I intended.
I am mindful of the fact that you will have only two hours for the final, so I
will actually make the final shorter than the midterm.
- (8 Nov) I've just posted today's lecture
notes, a full half-hour before the lecture. They are long -- I may wind
up moving the last few slides to Lecture 18, depending on how things go.
I owe you a new homework assignment -- this isn't ready yet but will be by
Thursday at the latest.
- (7 Nov) I've answered several more questions on the
Q&A page. In particular, in Problem 3.3c you are
not required to factor n completely, just to find two nontrivial
factors of n.
- (4 Nov) I've gotten a number of good questions on HW#3 today. I'll post
them on the Q&A page this afternoon, but I wanted to
call your attention immediately to some edits in the
assignment text. In Problem 3.1, I no longer ask you to show that your
algorithm uses polynomial time, just that it uses a polynomial number of
regular expression operations. The time needed for a regular epxression
operation will depend on the answer to the last question I ask in the problem.
The other edits are mostly there to rule out some unintended possible readings
of the question, which I'll refer to specifically in the Q&A.
- (4 Nov) A purely self-serving announcement -- I'm singing in the
Valley Light Opera production of Lehar's
The Merry Widow, opening tonight and continuing on 5, 6, 11, and 12
November. For tonight's show only, students (even graduate students) can
get general admission seats for $5 at the door.
- (3 Nov) Today's lecture slides are posted.
- (2 Nov) I've made the updates to the Q&A page.
They are minor -- basically they just explain the minor edits in green and
purple on the HW#3 assignment.
- (1 Nov) Here are the slides for today, sorry
they are so late. I am almost finished with the grading, and may or may not
have the exams to give back in lecture. I will also update the Q&A page this
- (28 Oct) I have posted the first question and
answer on HW#3. There are significant revisions to
Problem 3.3 to correct a mistake that the questioner pointed out. I'm grading
the midterms, and hope to get them back to you by Tuesday.
- (27 Oct) Today's slides are now up. I will
make up paper solutions to the midterm -- I may get them done in time to hand
out in class today but otherwise I will make them available in the main office.
I'll have more to say here about the midterm next week, when I've graded it and
when the off-campus students have taken it.
- (26 Oct) I've just posted HW #3, due a week from
next Tuesday, 8 November, for in-class students. I'm planning two more
HW assignments, #4 to be due on 22 November and #5 to be due at the end of
- (24 Oct) I've just posted the solutions to
the practice midterm and the slides for
- (21 Oct) If you would like an emailed PDF or postscript version of
the Adler notes with the original diagram captions, please email me. Remember
that after the mistake was noted, Collective Copies started selling the
correct version, but we can't refund the original copying costs. Sorry it
took me so long to deal with this.
- (21 Oct) I'll post solutions to the practice exam on Monday.
- (19 Oct) The practice midterm
is up, along with a preliminary version of
- (17 Oct) Paper copies of the HW#2 solutions are avialable in the main
office. I've posted a preliminary version of
tomorrow's slides -- I still have to proofread them.
- (11 Oct) Today's slides are now up. I've
decided that since we have a midterm exam two weeks from tomorrow, I'm going to
have HW#3 come after the exam. By the middle of next week I will post a
practice midterm, of about the same length and difficulty as the real one.
- (8 Oct) There's a mistake in Problem 2.3(d) on the homework -- what I asked you
to prove is not necessarily true. I've revised the question, and half of it is
now extra credit (so it's a 90-point homework with 10 extra credit points).
- (7 Oct) I've just added several more HW#2 questions to the
Q&A page. By the way, since Monday is a holiday
I don't expect the TA's to have office hours. But I will be reading email.
- (6 Oct) Graded HW#1 was returned in lecture today. Those papers not picked up
are available in the CMPSCI main office, in a box in the gray metal cabinet to the
left of Pauline as you come in. I will email off-campus students individually with grades
and comments. Hig score was 99, mean about 79, low 44. The scale is 90=A, 80=A-,
70=B+, and so on.
- (6 Oct) I will not be around or on email tomorrow morning, but I expect to be
there for my office hours 2-3.
- (6 Oct) Today's lecture slides are now
posted. In general I will post these as soon as I have them ready, which may
be only an hour or two before I deliver the lecture or (if I have my act
- (5 Oct) By the way, remember that if you consult a text or a web page
to get the idea of how to solve a homework problem, you must indicate your
source on your submission. The graders report some answers that look like
they came off the web but weren't so acknowledged. This is in addition
to your responsibility for submitting an answer that is your own in
- (5 Oct) I've got another correction on Problem 2.3 on HW#2. The text
defines a "subset system" to have the downward closure property, that if
X ⊆ Y and Y ∈ I, then X ∈ I. But for 2.3 I do not
want this assumption -- a greedoid need not have this property and I am not
asserting that the given (E,I) has it. I will correct the assignment now.
- (4 Oct) Sorry for the delay in posting here. The
notes for today's lecture are posted. Pauline has the HW#1 solutions. I made
some corrections in the HW#2 assignment, and I will post some questions later
- (27 Sept) Paper solutions to HW#1 will be made available in the CMPSCI
main office, probably on Thursday.
- (27 Sept) Interested off-campus students may join an email discussion
group for the course set up by PEEAS -- go to
and look for "Semester Information".
- (27 Sept) Remember that there is no lecture this Thursday, 29
September. I will be in Denver Thursday through Sunday and will have little
or no access to email.
- (27 Sept) The new homework assignment is posted,
due 11 Oct for on-campus students, 18 Oct for off-campus students.
- (20 Sept) Welcome to the off-campus students! Could each of you please
send me an email, so I will be able to communicate with you easily? In answer
to a question I got: Your HW due date will be a week after the regular one, and
you should fax your answers to 413-545-1249, attention "Prof. Barrington". Your
exams will be scheduled individually, about a week after the in-class exam,
depending on when you can get a proctor.
- (20 Sept) The discussion at the end of today's lecture has inspired
the first problem of HW#2:
Problem 2.1 (10): Give an example of a subset system that is not
a matroid and has a few elements as possible. That is, prove that any subset
system whose $E$ has fewer elements than yours is a matroid. Also, give
an example of a weight function for your subset system where the greedy
algorithm does not find a maximum element of $I$.
- (20 Sept) The slides for today's lecture are
up. I'll make corrections after the lecture if I find any mistakes. We may
be over in ELAB rather than CMPSCI 142 today due to a technical problem with
the videa people. If you come to CMPSCI 142 you'll be directed where to go.
- (20 Sept) We've finally set office hours. Mine are Wed 11-12 and Fri 2-3
in my office, 210 CMPSCI building. I'm also usually willing to have people drop in --
I will send you away if I need to. The TA's will hold office hours in the CMPSCI
"multi-purpose room" ("lounge") on the first floor: Pla Tuesdays 11-1 and Shaolei Mondays
11-1. Notes for today's lecture will be posted later this morning.
- (19 Sept) A clever student has found a mistake in Problem 1 of HW#1.
I asked you to prove that f = Θ(g) from the given conditions, but this
may not be true. The revised problem is to prove that if f is one of the
functions arising from the Master Theorem, that is,
Θ(nα log n), then f = Θ(g).
In fact it is true if the
ratio log(f(x))/(log x) reaches a limit as x goes to infinity.
I'll also correct this on the
- (15 Sept) I've started the question and answer page
for HW#1 and answered two questions, including the one asked in lecture
- (15 Sept) The first homework assignment is
now posted, due Tuesday 27 September in class.
- (13 Sept) I'm bringing new originals of the lecture notes to Collective
Copies. If you haven't bought a copy yet, or you don't mind paying again for
the second one, you may get a copy with good diagrams from them. (Since you
are paying for copying, and the copying has been done, we can't do a refund for
the copies with bad diagrams.) By my count there are bad diagrams on 32
different pages: 16, 18, 19, 23, 24, 27, 35, 37, 38, 49, 50, 53, 54, 67, 76,
79, 103, 104, 106, 109, 110, 112, 116, 117, 119, 138, 143, 145, 146, 147, 148,
and 149. I plan to work out some arrangement to make the correct diagrams
available to anyone who doesn't buy another copy.
- (13 Sept) I expect to post HW#1 tomorrow or Thursday, to be due for
on-campus students on Tue 27 September.
- (13 Sept) The slides for today's lecture
are now posted. Off-campus students will probably want to print these out
before viewing the DVD, since while I had the correct page available on the
table in the lecture hall, the camera operator was not always able to focus on
it. I also corrected a few typos from the lecture version before I posted them.
- (12 Sept) Whoops, never mind about the Chaitin seminar -- it has
- (11 Sept) I wanted to call the attention of the on-campus students
to the department colloquium tomorrow, by Gregory Chaitin of IBM. He is
one of the most original and interesting thinkers in computer science and
will be talking about the philosophy of computing and how it relates
to the real universe. He speaks at 4:00 in CMPSCI 151, with refreshments at
- (9 Sept) There's a problem with the lecture notes -- some of the captions
on the figures, starting with Figure 2.8 on page 16, have been translated in
some unknown way. This is my fault, it seems -- the figures were ok on the
last version I proofread, they look fine on the Preview version of the file
I printed, and I didn't check through the originals I gave to
the copy shop because I knew I hadn't changed any of the figures.
Unfortunately there's not a lot to be done about it, because the copies
are printed and the copy shop needs to be paid for printing them.
What I can do is clarify each of the bad figures in lecture and in the slides.
Figure 2.8 on page 16 is relevant to Tuesday's lecture -- the double
arrows should all be labeled "δ" ("delta") and the points should be
labeled "1, 2, 3, 4" in the top row and "p, 6, 7, 5" on tne bottom row.
- (8 Sept) The slides for today's lecture
are now avaiable in the lecture notes section of this
site. I apologize to the off-campus students for making you read these off
of the projection screen on the DVD -- I can keep a paper copy available for
the camera in future lectures but I didn't manage to do this today. You can
always print out the PDF slides before you watch the lecture.
I believe I have now talked to everyone who has asked to join the course,
and given permission to add to all qualified students. If you are still
interested in adding the course, email me soon.
- (7 Sept) We now have a second half-TA for the course, Shaolei Feng,
and a firm date for the midterm exam. The course capacity change has
gone through, so please register if you can and come to the first lecture if
- (6 Sept) The textbook is now available at Collective Copies and costs
$13.00. There are now 40 people registered for the course, including
several new graduate students. I have asked to have the course capacity
raised to 50, which I hope will take care of the rest of the new CMPSCI
grad students. Others should come to the first lecture and I will see about
overriding you in.
- (31 Aug) The "textbook" (lecture notes) will be available from
Collective Copies in downtown Amherst starting on Wed 7 September.
I've just put up a preliminary syllabus.
- (22 Aug)
I've just put up the preliminary web page. I will be out of town for the latter
part of this week, but back on Monday 29 August. If you would like to add the course
but are not eligible because you are not a CMPSCI graduate student, please email me
and come to the first lecture. I expect to admit most or all such students if they are
qualified, but I cannot make a final decision on this until the new CMPSCI graduate students
Last modified 23 December 2005