A detailed calendar is provided on the main course website. In the first half of the quarter we will learn about dynamic programming, asymptotic analysis and the importance of proving the correctness of algorithms. In the second half of the quarter we will study divide-and-conquer algorithms and analyze their running times using recurrence relations. We will finish by learning about P, NP, NP-completeness and how to achieve theoretical computer science fame.

Learning resources

All learning materials will be made freely available on the course website.
All the materials for the eCampus version of this class are available online. This includes videos, interactive questions, practice questions and readings and are (reportedly) a great way to prepare for the midterm and final exams.
There is no required textbook for this class. However, if you insist on participating in the market economy for everything you do, I recommend Algorithms by Dasgupta, Papadimitriou and Vazirani.

Evaluation of student performance

Grades will be posted to the course website via an anonymizing identifier. Please verify the posted grade with that on your paper and report any discrepancies. Assignment reports/solutions will be uploaded to TEACH.

Group Assignments - 30% of your grade
There will be 4 assignments that you may (and are encouraged to) work on in groups of up to 3 students. You do not need to work in the same groups for each assignment, but you will only get credit for an assignment if your name is listed on exactly one assignment. Group assignments submitted within 24 hours of the deadline will not be penalized, but those handed in more than 24 hours late will not be graded without prior arrangements.
Practice Assignments - 10% of your grade
There will be at least 5 practice assignments. These assignments must be completed individually and may not be submitted after the due date as solutions may be discussed during lecture on the submission date. These assignments will be graded on effort alone and will not be returned. Solutions will be posted.
Exams - 60% of your grade
There are two tests (midterm and final), each worth 30% of your final grade. These tests are non-cumulative. For example, the second test will only explicitly ask questions on topics covered after the first test; however, mastery of those topics covered by the first test will be implicitly tested by these questions.

The grade cut-offs for this class are roughly (if they change they do so in your favor):
A >= 90; A- 85-89; B+ 80-84; B 75-79; B- 70-74; C+ 65-69; C 60-64
Additionally in order to get a 'C' in this class you must get at least 50% on both the midterm and final exams.

Course Staff & Expectations

Your lecturer is Prof. Borradaile and your TA is Farzad Zafarani. Office hours will be posted by on the course website by end of week 1 at the latest. Prof. Borradaile will stay after class to answer questions.

Please allow up to a full week day for response to email. We can be reached at glencora@eecs.orst.edu and zafaranf@eecs.orst.edu

Measurable Student Learning Outcomes

At the completion of the course, students will be able to ...

  1. Use O, Omega, Theta and simple recurrences to analyze the time complexity of iterative and recursive algorithms.
  2. Prove the correctness of algorithms.
  3. Implement recursive, iterative and heuristic algorithms.
  4. Prove that a problem is NP-complete using reductions.

Electronic device limitation

Several studies and anecdotal experience shows that laptops are a distraction in the class room - they disrupt learning, lower the performance of students who use them, and, more worryingly, distract surrounding students. If you insist on using an electronic device with a screen in this class room (including, but not limited to, cell phones and laptops) please sit in the back row. You may use a tablet for note-taking if the tablet remains flat on the desk during class. If you expect this will pose an undue hardship for your learning, please speak with Prof. Borradaile about an exception.

Students with Disabilities

Accommodations are collaborative efforts between students, faculty and Disability Access Services (DAS). Students with accommodations approved through DAS are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through DAS should contact DAS immediately at 737-4098. Note: there has been a change to this policy -- DAS will contact the faculty directly. This paragraph will be updated when the appropriate language has been provided by DAS.