2016
3:11 hours
Introduction
Welcome
What you should know
Using the exercise files
1. Discrete Math Uses
Basics of discrete mathematics
Discrete math for programming
Real-world discrete math
Abstract discrete math
2. Sets
Objects as sets
Set notation
Set operations
Power sets
Sequences and sums
Recursion
Cardinality, disjointness, and partitions
Sets from Cartesian products
Challenge: Practice with sets
Solution: Practice with sets
3. Setting Up SML
Functional programming
Datatypes
Characters and strings
Recursive functions
Challenge: Learn SML
Solution: Create new data types
4. Analyzing Data Sequences
Use SML to create lists
Perform functions on lists
Create datatypes that use lists
Challenge: Model a lunch order
Solution: Model a lunch order
5. Effective Arguments and Defensible Decisions
Valid reasoning and inference
Truth tables
Identify and evaluate predicates
Conditional propositions
Valid arguments
Rules of inference
Prove logical equivalence
Challenge: Write truth tables
Solution: Write truth tables
6. Proofs Made Easy
Write a general outline for a proof
Write subset proofs
Evaluate conditional proofs
Understand biconditional proofs
Prove with mathematical induction
Challenge: Write a proof
Solution: Write a proof
7. Advanced Discrete Math Topics
Visualize data with graph theory
Network optimization with trees
Event probability
Cryptography
Challenge: Advanced techniques
Solution: Advanced techniques
Conclusion
Next steps