This course focuses on the fundamentals of discrete mathematics applicable to computer science. The main goals are to learn the mathematical representation of collections of items and their relationships, selection and ordering of items, mathematical reasoning for proofs, model modeling, concepts about probability and computation theory. Topics include: Sets, Relations and Functions, Inductive and Deductive reasoning, Permutations and Combinations, Graphs, Probability, FSMs, PDAs, LBAs (or Regular, Context-Free, Context-Sensitive Grammars) and Turing machines. Prerequisites: MATH-110