# Welcome!

Welcome to CSCI 0200: Math Foundations of Computer Science! In this course, we’ll learn to the fundamentals of mathematical reasoning about data structures and algorithms. We’ll learn how to address questions like:

• How many possibilities does a search algorithm need to weed through in order to find the best solution to a problem?
• How do we know that a certain algorithm works? How do we know how fast it is?
• What role do uncertainty and randomness play in computation?
```mindmap
root((CSCI 0200))
)**Module 1**(
(Logic)
(Propositional logic)
(Boolean algebra)
(Circuit design)
(Sets)
(Set Operations)
(Logical quantifiers)
)**Module 2**(
(Relations)
(Functions)
(Equivalence Relations)
(Proof Techniques)
(Direct)
(Indirect)
(Induction)
(Weak)
(Strong)
)**Module 3**(
(Counting)
(Sum and product principles)
(Permutations and combinations)
(Combinatorial proofs)
(Recurrence Relations)
(Asymptotics)
(Divide and combine)
)**Module 4**(
(Probability)
(Distributions)
(Conditioning)
(Random variables)
(Expectation)
(Graphs)
(Special graphs)
(Trees )
(Cycles)
(Algorithms)
```