## CS 201: Mathematics for Computer Science

### Course description:

The aim of this course is to learn discrete mathematics . Discrete mathematics is the study of mathematical structures which are discrete (elements have distinct, separate values as opposed to continuous structures). It is very difficult to find a branch in computer science which does not use discrete mathematics.

We will be covering four main topics: proofs, combinaotrics, graph theory and probability. The emphasis will be to learn different concepts and techniques used to prove theorems in computer science. The course will be full of puzzles and examples.

## CS 201: Notes

### Course notes:

 Topic Link Introduction to discrete mathematics Introduction Proofs and techniques for proofs Proofs Counting, Recurrence and Pigeonhole principle Counting Number Theory, Modular arithmetic Number Theory Graphs, paths, cycles, adjacency matrix. Graphs Coloring, matching and planarity Graph Properties Discrete probability, conditional probability Probability Random variables, expectations. Random variables Probability application Probabilistic methods Quadratic residues and non-residues Quadractic reciprocity

## CS 201: References

### Discrete Mathematics

• Discrete Mathematics and its Applications, K H Rosen.
• Discrete Mathematics, N L Biggs.

### Combinatorics

• Combinatorics: Topics, Techniques, Algorithms, Peter Cameron.
• A Course in Combinatorics, J H van Lint and R M Wilson.

### Number Theory

• Discrete Mathematics, N L Biggs.
• Introduction to Theory of Numbers, I Niven and H Zuckerman.
• An Introduction to the Theory of Numbers, G H Hardy and E M Wright.

### Probability

• A first course in Probability, S Ross.
• Elementary Probability, D Stirzaker.
• Understanding Probability, H Tijms.
• The Probabilistic Method, N Alon and J Spencer.

### Others

• Concrete Mathematics: A Foundation for Computer Science, R Graham, D Knuth and O Patashnik.