This course introduces students to fundamental concepts and techniques in discrete mathematics.  Topics covered include sets, logic, proofs, functions, relations, combinatorics, graph theory, and counting principles.