MATH 309 explains methods of discrete mathematics that are useful in computer science. The course covers set theory, propositional calculus, predicate calculus, relations, functions, Boolean algebra, divisibility, combinatorics, automata, and formal languages.