This course is an introduction to the fundamental mathematical concepts and structures used in computer science. Topics include propositional and predicate logic; sets, functions and relations; mathematical induction, counting principles and recurrences; trees and graphs. Topics implemented in Java.