Discrete mathematics is the mathematical study of structures and entities that come in 'chunks'. For instance, boolean functions, logical statements, sets and functions, natural and integer numbers, and graphs. Typical questions that discrete mathematics answers are: how many ways are there to arrange 10 people on a bench? and at a round table? How to find optimal spanning trees for a graph, and how to analyze logical expressions. 

This course will address all of the topics listed above, developing basic techniques for the various structures encountered. Discrete mathematics touches on many areas of both pure and applied mathematics, with applications in numerous areas of study. The choice of topics for this course is stressing applications in computer science, in particular to the design and  analysis of algorithms.