|
CS 170
|
We do not have everyone's SID. So if the script can't find your SID, please email us at cs170@cory.eecs.berkeley.edu with your name and SID. If you are a concurrent enrollment student, unfortunately you will have to email us for your scores.
Whereas CS 61B was a bare introduction to the theory of computer science, CS 170 is a full exploration of it. The following is a list of lectures and approximately corresponding reading material. There will be changes as the semester progresses, so check here periodically. Midterm dates may also change.
| Topic | Readings | ||
| 1 | August 27 | Overview |
Notes [ps]
[pdf]. CLR Chapters 1, 2, 7; or CLRS Chapters 1, 2, 3, 6. |
| 2 | August 29 | Divide-and-Conquer; Recurrences |
Notes [ps]
[pdf]. CLR Chapters 3 and 4; or CLRS Chapter 4 and Appendix A. Homework [ps] [pdf]. |
| 3 | September 3 | Lower Bounds; Graphs |
Notes [ps]
[pdf]. CLR Sections 5.4--5.5 and 23.1; or CLRS Section 22.1 and Appendix B.4--B.5. |
| 4 | September 5 | Depth-First Search |
Notes [ps]
[pdf]. CLR Sections 23.3-23.4; or CLRS Sections 22.3-22.4. Homework [ps] [pdf]. |
| 5 | September 10 | Strongly Connected Components |
Notes [ps]
[pdf]. CLR Section 23.5; or CLRS Section 22.5. |
| 6 | September 12 | Breadth-First Search |
Notes [ps]
[pdf]. CLR Section 23.2; or CLRS Section 22.2. Homework [ps] [pdf]. |
| 7 | September 17 | Shortest Paths |
Notes [ps]
[pdf]. CLR Sections 25.1-25.4; or CLRS Sections 24.1-24.3 and 24.5. |
| 8 | September 19 | Minimum Spanning Trees |
Notes [ps]
[pdf]. CLR Chapter 24; or CLRS Chapter 23. Homework [ps] [pdf]. |
| 9 | September 24 | Hashing; Randomization |
Notes [ps]
[pdf]. CLR Chapter 6 and Sections 12.1-3; or CLRS Chapter 5 and Sections 11.1-3. |
| 10 | September 26 | Bloom Filters |
Notes [ps]
[pdf]. Homework [ps] [pdf]. |
| 11 | October 1 | Randomized Min-Cut | Notes [ps] [pdf]. |
| 12 | October 3 | Disjoint Sets; Amortization |
Notes [ps]
[pdf]. CLR Chapter 22; or CLRS Chapter 21. Homework [ps] [pdf]. |
| October 8 | Midterm I | ||
| 13 | October 10 | Dynamic Programming I |
Notes [ps]
[pdf]. CLR Chapter 16; or CLRS Chapter 15. |
| 14 | October 15 | Dynamic Programming II |
Notes [ps]
[pdf]. CLR Section 26.2; or CLRS Section 25.2. |
| 15 | October 17 | Huffman Codes |
Notes [ps]
[pdf]. CLR Section 17.3; or CLRS Section 16.3. Homework [ps] [pdf]. |
| 16 | October 22 | Lempel-Ziv Codes; Information Theory | Notes [ps] [pdf]. |
| 17 | October 24 | Optimization; Linear Programming |
Notes [ps]
[pdf]. CLRS Sections 29.1-29.2. Homework [ps] [pdf]. |
| 18 | October 29 | Simplex |
Notes [ps]
[pdf]. CLRS Sections 29.3-29.4. |
| 19 | October 31 | Network Flows |
Notes [ps]
[pdf]. CLR Sections 27.1-27.2; or CLRS Sections 26.1-26.2. Homework [ps] [pdf]. |
| 20 | November 5 | Matching |
Notes [ps]
[pdf]. CLR Section 27.3; or CLRS Section 26.3. |
| November 7 | Midterm II | ||
| 21 | November 12 | NP-Completeness |
Notes [ps]
[pdf]. CLR Sections 36.1-36.2; or CLRS Sections 34.1-34.2. |
| 22 | November 14 | Satisfiability |
Notes [ps]
[pdf]. CLR Sections 36.3-36.4; or CLRS Sections 34.3-34.4. Homework [ps] [pdf]. |
| 23 | November 19 | Reductions |
Notes [ps]
[pdf]. CLR Section 36.5; or CLRS Section 34.5. |
| 24 | November 21 | Approximation Algorithms |
Notes [ps]
[pdf]. CLR Sections 37.1-37.3; or CLRS Sections 35.1-35.3. Homework [ps] [pdf]. |
| 25 | November 26 | Guest Lecture: Public-Key Cryptography |
Notes [ps]
[pdf]. CLR Sections 33.1-33.7; or CLRS Sections 31.1-31.7. |
| 26 | December 3 | Guest Lecture: Google PageRank | Slides [ppt] [pdf]. |
| 27 | December 5 | Review |
| When | Where | Who | |
|---|---|---|---|
| 101 | Tuesdays 2:00-3:00 | 4 Evans | Sourav Chatterji |
| 102 | Tuesdays 3:00-4:00 | CANCELLED | |
| 103 | Tuesdays 4:00-5:00 | 285 Cory | AJ Shankar |
| 104 | Wednesdays 9:00-10:00 | 87 Evans | Irena Nadjakova |
| 105 | Wednesdays 10:00-11:00 | 70 Evans | Arindam Chakrabarti |
| 106 | Wednesdays 11:00-12:00 | 310 Hearst Mining | Arindam Chakrabarti |
| 107 | Wednesdays 2:00-3:00 | 310 Hearst Mining | Irena Nadjakova |
| 108 | Wednesdays 4:00-5:00 | 310 Hearst Mining | AJ Shankar |
|
|
All enrollment is handled by the CS office in 393 Soda. The prerequisites for CS 170 are CS 61B and one of Mathematics 55 or CS 70. If you have not satisfied all prerequisites, but you have taken a course you feel is very similar to CS 61B or Math 55, or if you are on a wait list, fill out an appeal form in 393 Soda Hall. The instructor does not handle appeals, so please do not attempt to lobby him for admission to the course.
If you are something other than a regular Berkeley undergraduate, then you probably need a signature on a form admitting you to the course. We cannot promise to admit those of you who are not regular Berkeley students. In particular, we will not sign any concurrent enrollment or UC Extension forms until after the second week of classes.
You should be comfortable with mathematical induction, big-O notation, sorting algorithms, basic data structures, and binary heaps. In particular, if you are a transfer student and have not obtained a thorough understanding of binary heaps from CS 61B or a similar course, you should read Chapter 7 of CLR (Chapter 6 of CLRS) in preparation for this course.
In addition to the lectures, you should attend a discussion section for one hour each week. The discussions sections are not mandatory, and nothing done in section will directly affect your grade. On the other hand, the discussion sections are your best opportunity to ask questions and learn interactively, and some examples worked out in section will be helpful on the graded assignments. Your section TA will also return and discuss your homeworks and midterms.
Make sure that you are enrolled in a discussion section that has space for you. To find a section that has space, see the online class schedule for discussion section enrollment levels. You may attend a section other than that for which you are registered only if the TA of the section you are attending agrees to it. Outside of your discussion section, you should feel free to attend any of the staff office hours (not just your section TA's) and ask any of us for help.
A problem set is handed out each Thursday and is due at 4 p.m. on the following Thursday. All homeworks require mathematical problem solving (algorithm design and analysis); there won't be any programming assignments. You should turn in your problem sets in 283 Soda; there is a drop box for CS 170 that will be emptied at 4 p.m. every Thursday. Late homeworks are not accepted.
Everything you turn in must be written legibly and contain your name, your discussion section number, the homework number, and "CS 170--Fall 2002". You might receive no credit for assignments that are turned in without this information. We do not attempt to grade messy and unreadable solutions. If a problem can be interpreted in more than one way, clearly state the assumptions under which you solve the problem.
In writing up your homework you are allowed to consult any book, paper, or published material. If you do so, you are required to cite the complete bibliographical data of your source(s). Simply copying a proof is not sufficient; you are expected to write it up in your own words, and you must be able to explain it if you are asked to do so. Your proofs may refer to previous course material and to previous homeworks. Except for this, all results you use must be proved explicitly.
Our goal is to get across a maximum amount of understanding in a minimum amount of time. Since you have other courses, we will try to monitor the time you spend on this course. It is easy, however, to misjudge the time required to solve a problem, so we ask you to indicate with each problem set how much time you spent completing the assignment. This is optional, and will not affect your grade. Roughly, you are expected to spend one hour reading and two hours problem solving for every hour of lecture.
Model solutions to the problem sets are handed out and discussed during the discussion sections in the week after a homework is due. The graded problem sets are returned at the same time. Graded problem sets that are not picked up in the discussion section will be kept by your section TA.
It is extremely important that you continuously stay on top of the material, because every new topic and every new homework builds on previous results. If you don't understand the material at the beginning, it will be difficult to catch up later. If you encounter problems, you are encouraged to talk to the course staff as soon as possible. Please do not wait until the last moment to do your homework--start thinking about the problems on the day they are handed out!
There will be two in-class midterm exams during the normal lecture time. They are tentatively scheduled for October 8 and November 7. The final exam will take place during the regularly scheduled exam period on December 17 from 12:30 to 3:30 p.m. You must be in town for the final exam to receive a grade different from F for the class.
The midterms will be cumulative, but they will concentrate on new material. The final exam will be comprehensive. All exams are closed-book, but you are allowed to bring one letter-size sheet of hand-written notes (you can write on both sides of the sheet). No other material will be allowed.
If you miss a midterm, you will be assigned a percentage score for that exam equal to the percentage score you earn on the final exam. (There will be no make-up midterms.) If you miss the final exam, you will receive a grade of F in the class unless you miss it because of a circumstance beyond your control, documented by a physician or equivalent authority, or if it conflicts with another scheduled University of California exam. If we decide to forgive your missing the final exam, you will receive an Incomplete grade and have the opportunity to make it up when we choose to give you an alternate exam, quite possibly at the end of the following semester. A course grade of Incomplete will be granted only for dire medical or personal emergencies that cause you to miss the final, and only if your work up to that point has been satisfactory.
Your final grade will be based on the sum of your problem set, midterm, and final exam scores.
We will give no credit for written homework turned in after the deadline, so that we can make on-line solutions available promptly and so that you can discuss those solutions in your discussion sections. Please do not ask for extensions for homework, even in case of emergencies; excuses for late or missed homeworks will not be accepted. The two lowest homework grades are dropped, so you can safely miss two. However, the material in this class can only be learned by doing lots of problems, so the homework is very important.
If you believe we have misgraded a homework or midterm exam question, return it to your section TA with a written note on a separate piece of paper explaining the problem. If you're requesting regrade, please staple this paper to the front of the homework or exam. The entire homework or exam will be regraded, so be sure to check the solutions to confirm that your final grade will go up after regrading. All requests for regrades and recording corrections must be made within one week after you receive the graded assignment or exam. By University policy, final exams must not be regraded.
Because of the difficulty of evaluating students in a course where much of the homework is based on proofs, the grading scale (conversion of scores to letter grades) will not be established until the end of the semester.
The work you submit in this course must be the result of your individual effort. Cheating on a homework will earn you the maximum negative grade for that assignment. For example, if you cheat on a homework worth 30 points, your grade on that homework will be -30. Cheating on an exam, or cheating twice in any way, will earn you an F in the class. All incidents of cheating will be reported to the Office of Student Conduct, who will maintain records of your academic misconduct throughout your undergraduate career.
We encourage you to help each other learn the material by discussing the work before you do each assignment. For most assignments, explaining the meaning of a question or a way of approaching a solution is an interaction that we encourage. On the other hand, you should never read another student's solution or partial solution, nor have it in your possession, either electronically or on paper. You should write your homework strictly by yourself. If you receive a significant idea from someone in the class, explicitly acknowledge that person in your solution. Not only is this good scholarly conduct, it also protects you from accusations of theft of your colleagues' ideas.
Presenting another person's work as your own constitutes cheating, whether that person is a friend, an unknown student in this class or a previous semester's class, or an anonymous person on the Web who happens to have solved the problem you've been asked to solve. Everything you turn in must be your own doing, and it is your responsibility to make it clear to the graders that it really is your own work. The following activities are specifically forbidden in all graded course work:
In our experience, nobody begins the semester with the intention of cheating. Students who cheat do so because they fall behind gradually and then panic. Some students get into this situation because they are afraid of an unpleasant conversation with a professor if they admit to not understanding something. We would much rather deal with your misunderstanding early than deal with its consequences later. Even if you are convinced that you are the only person in the class that doesn't understand the material, and that it is entirely your fault for having fallen behind, please overcome your feeling of guilt and ask for help as soon as you need it. Remember that the other students in the class are working under similar constraints--they are taking multiple classes and are often holding down outside employment.
Mail inquiries to
cs170@cory.eecs.berkeley.edu.
Last modified by tah on August 26, 2002.