This course introduces the foundations of discrete mathematics as they apply to computing focusing on providing a solid theoretical foundation for further work. Topics include sets, functions, relations, proofs and theorems, Boolean algebra, propositional logic, digital logic, fundamentals of counting, and graphs and trees.