ARCHIVED Discrete Math for CS ×  OverviewModel systemsTranslatePropositional and predicate logicProof strategies and valid argumentsRecursion and InductionModular ArithmeticUse language conventions to improve argumentsMathematical definitions and notation

Overview

Modeling and Impact

Description: Understand, guide, shape impact of computing on society/the world. Connect the role of Theory CS classes to other applications (in undergraduate CS curriculum and beyond). Model problems using appropriate mathematical concepts.




Problem Solving

Description: Know, select and apply appropriate computing knowledge and problem-solving techniques. Reason about computation and systems. Use mathematical techniques to solve problems. Determine appropriate conceptual tools to apply to new situations. Know when tools do not apply and try different approaches. Critically analyze and evaluate candidate solutions.


Propositional and predicate logic
Evaluating compound propositions
Judging logical equivalence of compound propositions using symbolic manipulation with known equivalences, including DeMorgan's Law
Judging logical equivalence of compound propositions using truth tables
Rewriting compound propositions using normal forms
Judging whether a collection of propositions is consistent
Writing the converse, contrapositive, and inverse of a given conditional statement
Determining what evidence is required to establish that a quantified statement is true or false
Evaluating quantified statements about finite and infinite domains
Proof strategies and valid arguments
Identifying the proof strategies used in a given proof
Identifying which proof strategies are applicable to prove a given compound proposition based on its logical structure
Carrying out a given proof strategy to prove a given statement
Carrying out a universal generalization argument to prove that a universal statement is true
Tracing and/or modifying a proof by contradiction
Using proofs as knowledge discovery tools to decide whether a statement is true or false
Recursion and Induction
Using a recursive definition to evaluate a function or determine membership in a set
Using mathematical induction to prove mathematical identities, inequalities, and other invariants
Using strong induction to prove mathematical identities, inequalities, and other invariants
Using structural induction to prove statements about recursively defined objects, e.g. strings and trees
Modular Arithmetic
Using the definitions of the div and mod operators on integers
Using divisibility and primality predicates
Applying the definition of congruence modulo n and modular arithmetic


Communication

Description: Clearly and unambiguously communicate computational ideas using appropriate formalism. Translate across levels of abstraction.