I am on the waitlist. What can I do to get in? What are my chances of getting in?
There is a cap on the number of students that can be enrolled, usually dictated by the size of the lecture room, and the number and size of the recitation sections. In past years, the waitlists usually clear a couple of weeks into the course as undecided students slowly make their choices. So our best recommendation is: sit tight, come to lectures and recitations and wait for the waitlists to be cleared (or for more information from the course staff).
Other common reasons why you cannot get into the course: you have a scheduling conflict, or you are enrolled for too many units. In this case we cannot help, you will have to resolve these issues yourself.
Can I go to a recitation section other than the one I've registered for?
Ideally, you should be registered for the section you attend. This makes sure no one section is overloaded, and the TAs can keep track of attendance and other logistical issues (like how many handouts to bring along). However, we are happy to make exceptions if needed. If you need to attend another recitation for a scheduling reason some week, please email your usual section TAs and the TAs of the section you plan to attend.
I am struggling in the course: what can I do to catch up?
We're sorry to hear that. A little struggle is natural while you learn new ideas, of course, and students usually get better as the course progresses and you get more used to the ideas and to the problem-solving process. Here are some approaches that students have found useful. (Several of these are the obvious solutions, but still worth repeating.)
I am enjoying the course: what can I do to learn more?
That's great! You may enjoy solving problems from the books we've recommended, or from other sources on the Internet. You may want to check out Professor Sleator's Competition Programming and Problem Solving course. Or take graduate courses like A Theorist's Toolkit, Advanced Algorithms, or Professor Woodruff's Algorithms for Big Data. You may also want to try your hand at research, maybe over the summer break!
Is there a required textbook?
Several of the topics we teach, particularly the more advanced ones, are not covered in the standard Algorithms textbooks. Hence we will provide lecture notes covering all the material in this course and not mandate a textbook. Of course you are welcome to use a textbook as supplementary reading (note however that if a problem from the homework appears in a textbook, you are not allowed to look up the solution to the problem just because it is in the book! That would be cheating).Is there a recommended textbook?
If you prefer learning from a textbook, we recommend you try one or more of the following. Note that none of them cover every single topic in this course.