Computer Science 70, Fall 2004
Discrete Mathematics and Probability Theory for Computer Science

Professor Satish Rao


[Scores] [Announcements] [Lectures] [Assignments] [Midterm Study Questions] [Course Overview] [Policy on Collaboration] [Contact Information]


Practice for Midterm

Instructors, Office Hours, and Meeting Times

  Prof. Satish Rao
  SATISHR the at sign
  Office Hours: Mon, Thu 11:00-12:00PM.
  681 Soda Hall

  Elitza Maneva
  ELITZA the at sign
  Office Hours: Wed 3:30-5:30PM,
  551 Soda Hall (alcove)

  Tue,Thu 3:30-5:00PM, 150 GSPP

  101. Fri 9:00-10:00AM, 425 Latimer
  102. Fri 10:00-11:00AM, 81 Evans

Course Overview

The 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 while 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:


Deadlines will be enforced strictly. Late homework will be accepted only in when discussed with staff and may in any case be penalized.

Supplementary Notes

Tentative Course Schedule

    Topic Readings
1 August 31 Logic and proofs Notes: [ps] [pdf] [dvi]
[Rosen 1.1-1.5]
2 September 2 Induction I: Simple Induction Notes: [ps] [pdf] [dvi]
[Rosen 3.3]
3 September 7 Induction II: Strong and Structural Induction Notes: [ps] [pdf] [dvi]
[Rosen 3.3,3.4]
4 September 9 Stable Marriage Notes: [pdf] [ppt]

5 September 14 Number Theory I: GCD, Congruences, Modular Exponentiation Notes: [ps] [pdf] [dvi]
[Rosen 2.4,2.5]
6 September 16 Number Theory II: Primality and Factoring Notes: [ps] [pdf] [dvi]
[Rosen 2.6]
7 September 21 Number Theory III: Cryptography Notes: [ps] [pdf]
[Rosen 2.6]
8 September 23 Algebra I: Polynomials, Finite Fields, Secret Sharing Notes: [ps] [pdf] [dvi]

9 September 28 Algebra II: Error Correcting Codes Notes: [ps] [pdf] [dvi]

10 September 30 Graph Theory I: Introduction to Graphs, Eulerian and Hamiltonian circuits Notes: [ps] [pdf] [dvi]
[Rosen 8.1,8.2,8.5]
11 October 5 Graph Theory II: Hypercubes Notes: [ps] [pdf] [dvi]

12 October 7 Midterm I Solutions: [ps] [pdf] [dvi]

13 October 12 Basic Combinatorics Notes:
[Rosen 4.1,4.3-4.5]
14 October 14 Probability I: Sample Spaces and Events Notes: [ps] [pdf] [dvi]
[Rosen 5.1,5.2]
15 October 19 Probability III: "Two Killer Apps," Union Bound, Bose-Einstein and Fermi-Dirac Statistics Notes: [ps] [pdf] [dvi]

16 October 21 Probability II: Conditional Probability Notes: [ps] [pdf] [dvi]
[Rosen 5.2]
17 October 26 Probability IV: Random Variables and Expectation Notes: [ps] [pdf] [dvi]
[Rosen 5.2,5.3]
18 October 28 Probability V: Some Probability Distributions Notes: [ps] [pdf] [dvi]

19 November 2 Probability VI: Variance, Markov and Chebyshev inequalities Notes: [ps] [pdf] [dvi]

20 November 4 Probability VII: Independent and Identically Distributed Random Variables Notes: [ps] [pdf] [dvi]

21 November 9 How to Lie with Statistics. Plus Normal distribution. Notes: [pdf]

[page1.pdf] [page2.pdf]

  November 11 Veteran's Day
22 November 16 Infinity and Diagonalization Notes: [scan.pdf] [gif]

23 November 18 Midterm II Solutions: [ps] [pdf] [dvi]

24 November 23 Turing Notes: [CMU course] Look at lectures on Cantor and Turing.

  November 25 Thanksgiving Holiday
25 November 30 Logic Notes: [jpg]

26 December 2
27 December 7 Digital Cash Notes:".ps"
28 December 9 Quantum Computing


Unfortunately, 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.

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.


You 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, for 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 Summary

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 three to four 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, is intended only for your own protection.

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 with whom you have worked 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:

Academic dishonesty has no place in a university; it wastes our time and yours, and it is unfair to the majority of students.

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!

Contact information

If you have a question, your best option is to post a message to the ucb.class.cs70 newsgroup. The staff (instructors and TA) 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 cs70[@]cory[.]eecs[.]berkeley[.]edu. Email to cs70@cory is forwarded to the instructors and the TA. We prefer that you use the cs70@cory address, rather than emailing directly the instructors and/or the 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. There are about 20 of you to every one of us, so please reserve email for the questions you can't get answered in office hours, in discussion sections, or through the newsgroup.

The instructors and TA 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 this as well).


In addition to office hours for the class instructors, HKN (the Eta Kappa Nu honor society) offers free drop-in tutoring every weekday. Contact them for more information.
CS70 Spring 2004: Homeworks | Notes | Exams