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