This course will cover the basics of algorithms and prepare you for the advanced algorithms classes (523 and 529) and life in general (as a computer scientist). We will use the textbook Algorithm Design by Kleinberg and Tardos, covering chapters 4-7, 10-11 and 13. Chapters 1-3 are considered review chapters. See the resource page? for supplementary material. A major goal of this course is to teach you to solve algorithmic problems with a particular emphasis on communicating solutions (oral and written).
Prof. Borradaile has office hours from 11-noon on Mondays. For other times please email for an appointment.
TA Ali Torkamani will hold office hours on Fridays noon-13:30 At Kelley in atrium.
Vagabonders (those wanting to take part in the class without registering to audit) are welcome but are not permitted to take part in the problem solving sessions, due to the class size. Auditors must take part in the problem solving sessions but will not have graded tests or exams.
Instructions For Accessing the Homework Solutions Repository: Login using your eecs (or engr) account, and then go to one of the following paths based on your OS:
The path in unix/mac is: /nfs/stak/a2/classes/eecs/fall2010/cs515
The path in windows is: \\stak.engr.oregonstate.edu\classes\eecs\fall2010\cs515
If you had any problem or questions, please contact the TA, [torkammo@eecs.oregonstate.edu Ali Torkamani].
Schedule
This schedule is tentative and subject to change.
Week | Plan |
---|---|
1 | Review, Chapters 1-3 of KT. Chapter 3 of this book would be a good idea too. '''(This chapter details the DFS based algorithms I mentioned today: topological sort and decomposing into strongly connected components. It would be a good idea to know this for Tuesday.) To help you review: Asymptotic Notation Cheat Sheet? and other resources? |
2 | Tuesday: Am-I-ready-for-this? quiz+solutions? If you cannot ace this quiz, then you should take CS 325 now and take CS 515 next year. The quiz will cover topics you should know from undergraduate algorithms and that we partially review in week 1. Informal feedback will be instantaneous. Topics covered: BFS, DFS, asymptotic notation, solving recurrence relations, sorting. Thursday: Greedy algorithms, Ch. 4 of KT and MST notes (Jeff Erickson, UIUC), exchange argument (Cornell), greedy-stays-ahead argument (Cornell) Friday: Seminar at 3PM in KEC 1003 on Linear-Space Static Data Structures for Range Mode Query in Arrays by Stephane Durocher; attendance is mandatory unless you have a conflict with another class. This seminar does count toward your CS507 Seminar participation. |
3 | Tuesday: Problem solving session 1 on greedy algorithms? Thursday: Divide and conquer, Ch. 5 of KT and/or these notes (Jeff Erickson, UIUC) and/or Ch. 2 of DPV In asking you to read ahead, I don't expect you to know the material inside out, but come to the class warmed up. |
4 | Tuesday: Problem solving session 2 on divide and conquer? Thursday: Dynamic programming, Ch. 6 and 10.2 of KT Friday: bonus office hours with Dr. Borradaile 3-4PM |
5 | Tuesday: Midterm (Dr. B out of town Monday and Tuesday.), Solutions? Thursday: Dynamic programming, cont. Advanced: dynamic programming over graphs of bounded treewidth also here. Friday: seminar (by me) on A guide to polynomial-time approximation schemes for connectivity problems in planar graphs in Gilkey 113 at noon. Come find out what algorithms research is like! |
6 | Tuesday:Problem solving session 3 on dynamic programming? Thursday: Network flow, Ch. 7.1-7.3 of KT |
7 | Tuesday: Problem solving session 4 on network flow? Thursday: Network flow, Ch. 7.5-7.13 and more notes from Jeff Erickson and three max flow algorithms? |
8 | Monday: Seminar by Christian Wulff-Nilsen on min cuts in planar graphs Tuesday: Problem solving session 5 on network flow? Thursday: Linear programming, Ch. 7.1, 7.2, 7.4 and 7.6 of this book and more notes from Jeff Erickson. |
9 | Tuesday: Approximation Algorithms, Ch 11.1, 11.3, 11.6 Thursday: No class (Thanksgiving) |
10 | Tuesday: Randomized algorithms, Ch 13.1-13.3, 13.5, 13.12 and randomized global min cut notes (Jeff Erickson) Thursday: Problem solving session 6 on remaining topics |
11 | Office hours: Monday 11-12 and Tuesday 10-11.30 with Dr. B. (KEC 3079) and Wednesday 9-11 with Ali (KEC Atrium) Final exam: Thursday 9.30-11.30 AM in Milam 234. Final exams will not be returned to the student, but may be discussed with Dr. B. after grades have been posted. |
Evaluation
Your grade will be determined as follows:
Problem solving sessions (homework) | 20% | - | Quizz(es) and midterm(s) | 30% |
Final exam | 50% |
Please refer to the collaboration and academic honesty? and grading and late policies?.
Problem solving sessions
There will be no assignments in the traditional sense. Rather, you will be working much harder. Roughly every week, there will be a problem solving session, organized as follows:
- Students are broken up in to groups of 2-3 (assigned randomly for each problem solving session).
- Each group will prepare solutions to 2-4 assigned questions before the problem solving session.
- At the problem solving session I will flag one problem for each group and groups will be paired up to teach and challenge:
- Suppose groups A and B are paired. Group A will teach the solution to their flagged problem to Group B. Group B will challenge A to make sure that the answer is correct, going over the details and make sure they understand the solution completely. Group B will not take any written material from Group A, but may make their own notes. Groups A and B swap roles and repeat the process with B's flagged problem. It is the challenger's responsibility to make sure that the solution is correct. The challenger, in discussing the problem, may see a simpler solution. The best solution is what should be taken to the next phase.
- Each group presents the solution that they were taught to the me, the TA and/or the class (depending on time). They will be graded on this presented solution. Group A's grade is determined by both their presentation and the presentation of their flagged problem by Group B.
- Each group, using any feedback from the challenge or the presentation, must hand in a typeset solution to their flagged problem before the start of the next class. See the guidelines for written assignments?. These solutions will be posted online to act as a study repository for the midterm and final - perhaps with a round of editing by the TA(s). Email this solution to the TA, [torkammo@eecs.oregonstate.edu Ali Torkamani].
Frequently asked questions
What if Group A couldn't get a solution to our problem before class?
- Try to work out the solution with Group B. Partial solutions will garner partial marks. Group B may be able to help turn your partial solution into a full solution.
What if Group A didn't even get a partial solution to the problem selected for the teaching round?
- Too bad! Group A will not participate as a teacher. Group A can still participate as a challenger but can earn at most 50% for this round. Group B's grade will be determined solely by Group A's presentation and can still earn full points. Your lowest problem solving session grade will be dropped.? You should still attend the session. Seeing the solutions to all the problems will (hopefully) be very useful for the midterm and exam.
What if member X of Group A cannot (or does not) help prepare solutions?
- Member X may still participate as a challenger to Group B and earn up to 50% for the session. The rest of Group A can still earn full points.
What if member X cannot attend the problem solving session?
- Member X will get 0 for this session. Your lowest problem solving session grade will be dropped.?
resources
courses
- CS523, Spring 2020
- CS515, Fall 2018
- CS325, Fall 2018
- CS523, Winter 2017
- CS523, Spring 2016
- CS325H, Winter 2016
- CS325, Fall 2015
- CS507, ECE507, Fall 2015
- CS523, Spring 2015
- CS325, Winter 2015
- CS325, Fall 2014
- CS523, Spring 2014
- CS325, Fall 2013
- CS515, Fall 2013
- CS523, Spring 2013
- CS325, Fall 2012
- CS523, Spring 2012
- CS515, Fall 2011
- CS523, Spring 2011
- CS325, Winter 2011
- CS515, Fall 2010
- CS521, Spring 2010
- CS325, Winter 2010