Computational Discrete Math

Description

In a nutshell, the main idea behind this course is that the
development of the digital computer, together with the theory of
computation, is one of the most important development in mathematics
in the 20th century. Consequently, this course takes a fresh look at
some of the standard concepts of discrete mathematics (relations,
functions, logic, graphs, algebra, automata), with strong and
consistent emphasis on computation and algorithms. Another key concern
is knowledge transfer: we need to realign traditional mathematical
concepts with our new computational universe and find ways to apply
ideas from one realm to the other. We begin with a brief introduction
to computability and computational complexity. Other topics include:
iteration, orbits and fixed points; order and equivalence relations;
actions and enumeration; finite state machines and cellular automata;
finite fields, shift register sequences and pseudo-random numbers;
propositional logic and satisfiability testing.

To get a better impression, take a look at some of the homework problems
that were used in previous versions of this course:
CDM Assignments.
A few pictures can be found here:
CDM Gallery (challenge: figure out what these
pictures mean, for as many as you can manage).
A slightly dated paper outlining the course philosophy can be found at
Jeric.