# Computer Science 111. Foundations of Computing Theory

Discrete mathematics represents the core mathematical and problem-solving principles in computer science education. It is not possible to make creative and effective use of computers without involving oneself in mathematical considerations. This course introduces many of the mathematical concepts that appear later in the computer science major. Everyday scenarios are related to discrete topics including algorithms, networks and data communication, parity and error, finite state machines, regular expressions, matrices, propositional logic, Boolean algebra, sets and relations in databases, graphs and trees. Students use these techniques to solve real-world problems, such as forming SQL queries, designing shortest-path communications between cell towers and pattern matching across entire genomes and volumes of English text.