This is an introductory course about algorithms. Our goal is to introduce the basic concepts used to design and analyze algorithm. It is assumed that you are comfortable with mathematical proofs before you take this class. We will often use ideas like proofs by contradiction, and proofs by induction. Visit the schedule tab for a list of topics and course resources.
There will be weekly homework (40%), a midterm (25%), and a final (35%). All of the exams will be take-home exams. You may discuss solutions to the homework problems with your classmates, but you should write all solutions by yourself.