This textbook contains the content of a two semester course in discrete structures, which is typically a second-year course for students in computer science or mathematics, but it does not have a calculus prerequisite. The material for the first semester is in chapters 1-10 and includes logic, set theory, functions, relations, recursion, graphs, trees, and elementary combinatorics. The second semester material in chapters 11-16 deals with algebraic structures: binary operations, groups, matrix algebra, Boolean algebra, monoids and automata, rings and fields.