CS 201: Mathematics for Computer Science

Announcements:

Notes

Topic Link
Introduction to discrete mathematics, proofs Introduction
Basic counting, recurrence relations and generating functions Counting
Inclusion-exclusion, pigeonhole and linear algebra in combinatorics Misc. techniques
Equivalence relations, partial order. Posets
Graphs, connectivity, paths and cycles Graphs
Coloring and matching Graph properties
Basics of number theory, Modular arithmetic and Chinese remainder theorem Number theory
Basic cryptography, Public key encryption and RSA Cryptography
Fields, finite fields and applications Finite fields
Groups, properties and Burnside's Lemma Groups

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.

References

Discrete Mathematics

Combinatorics

Number Theory

Abstract algebra

Administrivia