CS 70, Spring 2005
Discrete Mathematics for Computer Science
TuTh, 3:30-5:00, 247 Cory
101. M 9:00-10:00, 105 Latimer
102. M 10:00-11:00, 105 Latimer
Clancy: Mon 1:15-2pm, Tue 5:15-6:30pm, Wed 1:15-3pm in 779 Soda.
Wagner: Mon 3:15-4:30pm in 629 Soda.
Kuo: Wed 10am-noon in 511 Soda, Fri 2-3pm in 711 Soda.
- Final exam solutions: [ps], [pdf].
- Final exam: Friday, 5/20, 12:30-3:30pm, 141 McCone.
- Final exam review: Thursday, May 19 from 5-7 pm in 310 Soda Hall.
- Office hours exam week:
Clancy: Tue 5/17 3:30-6:30pm in 779 Soda. Wed 5/18 10-12,1-4pm and Thu 5/17 10-12,1-4pm in Self-Paced Center (room C10 Hearst Field Annex).
Wagner: Mon 5/16 4-6pm, 629 Soda.
Kuo: Wed 5/18 4-6pm, 711 Soda.
- Please check the course newsgroup, ucb.class.cs70, for announcements and many clarifications about potentially confusing subjects.
Course OverviewThe goal of this course is to introduce students to ideas and techniques from discrete mathematics that are widely used in Computer Science. The course aims to present these ideas "in action"; each one will be geared towards a specific significant application. Thus, students will see the purpose of the techniques at the same time as learning about them.
Broadly speaking the material is similar to that in Math 55; however, Math 55 covers a wider range of topics in less depth and with fewer applications, and is less closely tailored to Computer Science. You should take this course as an alternative to Math 55 if you are intending to major in Computer Science and if you found the more conceptual parts of CS 61A enjoyable and relatively straightforward.
List of course topics:
- Propositions and Proofs
- Mathematical Induction and Recursion
- Propositional Logic: automated proof and problem-solving
- Arithmetic Algorithms: gcd, primality testing, the RSA cryptosystem
- Polynomials and their Applications: error-correcting codes, secret sharing
- Probability and Probabilistic Algorithms: load balancing, probabilistic constructions, conditional probability, Bayesian inference
- Diagonalization and Uncomputability
Assignments, Quizzes, and ExamsAll homeworks, except the first one, are due on Thursday at 3:30pm. The deadlines will be enforced strictly. Late homework will be accepted only in extraordinary circumstances, and may in any case be penalized. The lowest homework grade will be dropped.
Homeworks will be submitted online (no paper submissions accepted). We require PDF or text submissions. We recommend using LaTeX to compose your homeworks. (We do not accept raw Microsoft Word .doc files; if you must use Word, please convert to PDF and then submit the PDF file.)
- Homework 1 [ps] [pdf] (due Tuesday January 25, 3:30pm); latex template [tex]; solutions [ps] [pdf].
- Homework 2 [ps] [pdf] (due Thursday February 3, 3:30pm); latex template [tex]; solutions [ps] [pdf].
- Homework 3 [ps] [pdf] (due Thursday February 10, 3:30pm); latex template [tex]; solutions [ps] [pdf].
- Homework 4 [ps] [pdf] (due 2/17, 3:30pm); latex template [tex]; solutions [ps] [pdf].
- Homework 5 [ps] [pdf] (due 2/24); latex template [tex]; solutions [ps] [pdf].
- Homework 6 [ps] [pdf] (due 3/10); latex template [tex]; solutions [ps] [pdf].
- Homework 7 [ps] [pdf] (due 3/19); latex template [tex]; solutions [ps] [pdf].
Sample solns to Q1: [Java code], [Scheme code].
- Homework 8 [ps] [pdf] (due 3/31); latex template [tex]; solutions [ps] [pdf].
- Homework 9 [ps] [pdf] (due 4/7); latex template [tex]; solutions [ps] [pdf].
- Homework 10 [ps] [pdf] (due 4/14); latex template [tex]; solutions [ps] [pdf].
- Homework 11 [ps] [pdf] (due 4/21); latex template [tex]; solutions [ps] [pdf].
- Homework 12 [ps] [pdf] (due 4/28); latex template [tex]; solutions [ps] [pdf].
- Homework 13 [ps] [pdf] (due Tuesday, 5/10); latex template [tex]; solutions [ps] [pdf].
See also: normal tables/calculators.
Quizzes must be completed online twice a week: before 1pm on each Thursday where we have in-class lecture, and before midnight on the Sunday before each section. The quizzes will check your progress so far, so you should be doing the reading for the Tuesday lecture in advance of the Thursday quiz, and the reading for the Thursday lecture in advance of the Sunday quiz. Quizzes must be done on your own (no collaboration, and no discussion of the questions or your answers with others).
- Quiz #1 (due Thu 1/20 1:00pm), solution.
- Quiz #2 (due Sun 1/23 11:59pm), solution.
- Quiz #3 (due Thu 1/27 1:00pm), solution.
- Quiz #4 (due Sun 1/30 11:59pm), solution.
- Quiz #5 (due Thu 2/3 1:00pm), solution.
- Quiz #6 (due Sun 2/6 11:59pm), solution.
- Quiz #7 (due Thu 2/10 1:00pm), solution.
- Quiz #8 (due Sun 2/13 11:59pm), solution.
- Quiz #9 (due Thu 2/17 1:00pm), solution.
- Quiz #10 (due Sun 2/20 11:59pm), solution.
- Quiz #11 (due Thu 2/24 1:00pm), solution.
- Quiz #12 (due Sun 2/27 11:59pm), solution.
- No Quiz for Thu 3/3.
- No quiz due 3/6, due to problems with the instructional server.
- Quiz #13 (due Thu 3/10 1:00pm), solution.
- Quiz #14 (due Sun 3/13 11:59pm), solution.
- Quiz #15 (due Thu 3/17 1:00pm), solution.
- Quiz #16 (due Thu 3/31 1:00pm), solution.
- Quiz #17 (due Thu 4/7 1:00pm), solution.
- Quiz #18 (due Sun 4/10 11:59pm), solution.
- Quiz #19 (due Thu 4/14 1:00pm), solution.
- Quiz #20 (due Sun 4/17 11:59pm), solution.
- Quiz #21 (due Thu 4/21 1:00pm), solution.
- Quiz #22 (due Sun 4/24 11:59pm), solution.
- Quiz #23 (due Thu 4/28 1:00pm), solution.
- Quiz #24 (due Sun 5/1 11:59pm), solution.
- Quiz #25 (due Thu 5/4 1:00pm), solution.
- Midterm 1 [ps] [pdf]; solutions [ps] [pdf].
- Midterm 2 [ps] [pdf]; solutions [ps] [pdf].
- Final [ps] [pdf], solutions [ps] [pdf].
Old exams from previous semesters are available.
The following schedule is tentative and subject to change. Readings in Rosen are optional, in case you want extra background on the subject or a different presentation from a second point of view.
|1||Jan 18||Overview; intro to logic|| Notes [ps] [pdf]. |
[Rosen 1.1, 1.2]
|2||Jan 20||Propositional logic; quantifiers||[Rosen 1.3-1.5]|
|3||Jan 25||Induction|| Notes [ps] [pdf]. |
|4||Jan 27||Strong induction|| Notes [ps] [pdf]. |
|5||Feb 1||Structural induction|| Notes [ps] [pdf]. |
|6||Feb 3||Proofs about algorithms|| Notes [ps] [pdf]. |
|7||Feb 8||Minesweeper I|| Notes [ps] [pdf]. |
|8||Feb 10||Minesweeper II|| Notes [ps] [pdf]. |
More notes [ps] [pdf].
|9||Feb 15||Stable marriages||External notes|
|10||Feb 17||Cake cutting||Notes [txt] [ps] [pdf].|
|11||Feb 22||Algebraic algorithms|| Notes [ps] [pdf]. |
|12||Feb 24||Number theory|| (continuing from same notes as last time). |
|13||Mar 1||Primality testing|| Notes [ps] [pdf]. |
|Mar 3||Midterm 1|
|14||Mar 8||RSA|| Notes [ps] [pdf]. Also [ps] [pdf]. |
|15||Mar 10||RSA, Fingerprints||Notes [pdf] (updated 3/13).|
|16||Mar 15||Number theory applications|| |
|17||Mar 17||Basics of counting|| Notes [txt] [ps] [pdf]. |
|Mar 22||No class! Enjoy Spring break.|
|Mar 24||No class! Enjoy Spring break.|
|18||Mar 29||Basic probability|| Notes [ps] [pdf]. |
[Rosen 5.1, 5.2]
|19||Mar 31||Conditional probability|| Notes [ps] [pdf]. |
[Rosen 5.1, 5.2]
|Apr 5||Midterm 2|
|20||Apr 7||How to lie with statisics|
|21||Apr 12||Hashing, Load balancing|| Notes [ps] [pdf]. |
|22||Apr 14||Random variables, expected values|| Notes [ps] [pdf]. |
|23||Apr 19||Linearity of expectation, variance|| Notes [ps] [pdf]. |
|24||Apr 21||Variance, tail bounds||(Continuing from same notes as last time)|
|25||Apr 26||Polling|| Notes [ps] [pdf]. |
|26||Apr 28||Minesweeper III|| Notes [ps] [pdf]. |
|27||May 2||Countability, diagonalization, computability||Notes [txt].|
|28||May 4||Halting problem, Godel's theorem|| Optional: A relevant essay [ps] [pdf] |
Optional: Connections to Scheme eval, Abelman & Sussman, Section 4.1.5, [html]
Optional: Time Magazine on Goedel [html]
|29||May 9||P vs. NP|
Extra optional reading:
- Notes on distributions [ps] [pdf]
- Lenstra's notes on probability [ps] [pdf].
- For fun: The Infinite Hotel.
TextbooksUnfortunately, there is no book that adequately covers all the material in this course at the right level. We will provide lecture notes for most of the lectures. The book Discrete Mathematics and its Applications, 5th Edition (Kenneth H. Rosen, McGraw-Hill, Inc., New York, 2003) is recommended but not required.
Note that you should not view the availability of lecture notes as a substitute for attending class: our discussion in class may deviate somewhat from the written material, and you should take your own notes as well.
Course readers are available at the Northside Copy Central as of approximately Thursday, Jan 20.
PrerequisitesYou must have taken CS 61A, Math 1A and Math 1B (or equivalents). If you struggled with any of these courses, you should probably take Math 55 instead of CS 70 as CS 70 is likely to be more conceptual in nature. If you are in any doubt about your preparation for the class, please come and talk to any one of us as soon as possible.
Grading SummaryGrading will be on an absolute scale. Your final grade will be in the range 0-200 and will be computed as the sum from five categories:
- 50 points: Homeworks (average of all but your lowest hw score, with the average capped at 50 pts).
- 10 points: Quizzes (average of your quiz scores, times 1.666, capped at 10 pts).
- 40 points: Midterm I (March 3, held in class).
- 40 points: Midterm II (April 5, held in class).
- 60 points: Final Exam (May 20, 12:30-3:30pm, 141 McCone).
The grading standard is available and has been fixed at the beginning of the course:
A+: [*] A: 160-200 A-: 150-159 B+: 140-149 B: 130-139 B-: 120-129 C+: 110-119 C: 100-109 C-: 90-99 D: 70-89 F: 0-69 [*] A+ awarded at instructors' discretionThe instructors reserve the right to add extra points to your grade at the end of the class (for instance, if the final exam was unexpectedly harder than intended).
The homeworks will be graded by the course reader; depending on the time available, we reserve the right to grade some of the problems in more detail than others, and to award correspondingly more credit for them. Thus, if you turn in incomplete homeworks you are gambling on your grade.
Collaboration on homeworks is welcome and warmly encouraged. You may work in groups of at most three people; however, you must always write up the solutions on your own. Similarly, you may use references to help solve homework problems, but you must write up the solution on your own and cite your sources. You may not share written work or programs with anyone else. You may not receive help on homework assignments from students who have taken the course in previous years, and you may not review homework solutions from previous years.
You will be asked to acknowledge all help you received from others. This will not be used to penalize you, nor will it affect your grade in any way. Rather, this is intended only for your own protection.
If you work in a group, you'll be required to change group partners after the first midterm.
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 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 course material and to homeworks from earlier in the semester. Except for this, all results you use must be proved explicitly.
Copying solutions or code, in whole or in part, from other students or any other source without acknowledgment constitutes cheating. Any student found to be cheating in this class will automatically receive an F grade and will also be referred to the Office of Student Conduct.
We believe that most students can distinguish between helping other students and cheating. Explaining the meaning of a question, discussing a way of approaching a solution, or collaboratively exploring how to solve a problem within your group 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 solution strictly by yourself. You must explicitly acknowledge everyone who you have worked with or who has given you any significant ideas about the homework. 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, a solution set from a previous semester of this course, 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:
- Possession (or theft) of another student's solution or partial solution in any form (electronic, handwritten, or printed).
- Giving a solution or partial solution to another student, even with the explicit understanding that it will not be copied.
- Working together with anyone outside your homework group to develop a solution that is subsequently turned in (either by you or by the other person).
- Looking up solution sets from previous semesters and presenting that solution, or any part of it, as your own.
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. Don't hesitate to ask us for help--helping you learn the material is what we're paid to do, after all!
If you have a question, your best option is to post a message to the ucb.class.cs70 newsgroup. The staff (instructor and TAs) will check the newsgroup regularly, and if you use the newsgroup, other students will be able to help you too. When using the newsgroup, please do not post answers to homework questions before the homework is due.
If your question is personal or not of interest to other students, you may send email to email@example.com. Email to cs70@cory is forwarded to the instructor and all TAs. We prefer that you use the cs70@cory address, rather than emailing directly the instructor and/or your TA. If you wish to talk with one of us individually, you are welcome to come to our office hours. If the office hours are not convenient, you may make an appointment with any of us by email.
The instructor and TAs will post announcements, clarifications, hints, etc. to this website and to the class newsgroup. Hence you should read the newsgroup regularly whether you post questions to it or not. If you've never done this before, there is online information about how to access UCB newsgroups (see also here for more).
We always welcome any feedback on what we could be doing better. If you would like to send anonymous comments or criticisms, please feel free to use an anonymous remailer to send us email without revealing your identity, like this one.
Accounts and grading software
We will use 'class' accounts this semester. We will account forms in class. Lab machines may be found in 2nd floor Soda. Further information is here.
After you have obtained your account, you will need to register with our grading software. See these instructions.
MiscellaneousIn addition to office hours for the class instructors, HKN (the Eta Kappa Nu honor society) offers free drop-in tutoring. Contact them for more information.
Mail inquiries to firstname.lastname@example.org.