This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: CS 70 Discrete Mathematics and Probability Theory Spring 2012 Alistair Sinclair Note 1 Course Outline CS70 is a course on ”Discrete Mathematics and Probability for Computer Scientists.” The purpose of the course is to teach you about: • Fundamental ideas in computer science: Boolean logic Modular arithmetic, publickey cryptography, errorcorrecting codes, secret sharing protocols Graphs: paths, cuts, hypercubes The power of randomization (“flipping coins”) in computation: load balancing, hashing, inference, overcoming noise in communication channels Uncomputability and the halting problem Many of these concepts underlie the more advanced courses in computer science. • Precise, reliable, powerful thinking: Proofs of correctness. These are essential to analyzing algorithms and programs Induction and recursion Probability theory • Problem solving skills: These are emphasized in the discussion sections and homeworks. Course outline (abbreviated) • Propositions, propositional logic and proofs • Mathematical induction, recursion • The stable marriage problem • Modular arithmetic, the RSA cryptosystem • Polynomials over finite fields and their applications: errorcorrecting codes, secret sharing • Graphs: Eulerian paths, hypercubes. • Probability and probabilistic algorithms: load balancing, hashing, expectation, variance, Chebyshev and Chernoff bounds, conditional probability, Bayesian inference, law of large numbers. • Diagonalization, selfreference, and uncomputability CS 70, Spring 2012, Note 1 1 Getting Started In order to be fluent in mathematical statements, you need to understand the basic framework of the language of mathematics. This first week, we will start by learning about what logical forms mathematical theorems may take, and how to manipulate those forms to make them easier to prove. In the next few lectures, we will learn several different methods of proving things. Propositions A proposition is a statement which is either true or false. These statements are all propositions: (1) √ 3 is irrational. (2) 1 + 1 = 5. (3) Julius Caesar had 2 eggs for breakfast on his 10 th birthday. These statements are clearly not propositions: (4) 2 + 2. (5) x 2 + 3 x = 5. These statements aren’t propositions either (although some books say they are). Propositions should not include fuzzy terms. (6) Arnold Schwarzenegger often eats broccoli. (What is “often?”) (7) Barack Obama is popular. (What is “popular?”) Propositions may be joined together to form more complex statements. Let P , Q , and R be variables rep resenting propositions (for example, P could stand for “3 is odd”). The simplest way of joining these propositions together is to use the connectives “and”, “or” and “not.” (1) Conjunction : P ∧ Q (“ P and Q ”). True only when both P and Q are true....
View
Full
Document
This note was uploaded on 03/18/2012 for the course CS 70 taught by Professor Papadimitrou during the Spring '08 term at Berkeley.
 Spring '08
 PAPADIMITROU

Click to edit the document details