This document provides an overview of a course on discrete mathematics. The course objectives are to develop mathematical reasoning skills, learn how to analyze counting problems, and learn how to specify and analyze algorithms. Topics covered include formal logic, proofs, sets and combinatorics, algorithms and complexity, induction, counting, discrete probability, relations, graphs and trees, Boolean algebra, and finite-state and Turing machines. The primary textbook is Discrete Mathematics and Its Applications by Rosen. Chapter 1 covers propositional logic, including logical connectives like negation, conjunction, disjunction, implication, equivalence, and truth tables. Propositional equivalences like De Morgan's laws are also discussed. Bit operations on strings of Boolean values are introduced.