Mathematical Maturity "Pattern Recognition" Abstract Thinking, Abstractions Generalize and Particularize Deductive Reasoning - Debugging Semantics vs. Syntax Data Representation Number Systems - Computer Architecture Decimal Binary Signed Floating Point Limitations - cumulated error Hexadecimal Digital Logic & Boolean Algebra Relations Equivalence Relations and Partitions Functions Partial Orders Graphs Trees Functional Notation Prefix, Infix, and Postfix Operators Summations Sequences Asymptotic Notation Growth of Functions - Complexity of Algorithms Logarithms Polynomials Exponentials Recursion - Lisp, Prolog Recursively Defined Structures Logical Reasoning Propositional Logic DeMorgan's Laws - Rephrase (eg negate) selection and loop conditions Digital Logic Resolving Logic Expressions - Prolog Sequential Thinking Case Structure Iteration Instead of Hacking Sets Functional Dependencies - Databases Proof Techniques Formal Proofs - Complexity and Correctness of Algorithms Mathematical Induction (Strong) - P(1) ... P(N) => P(N+1) Mathematical Induction (Weak) - P(1), P(N) => P(N+1) Combinatorics Finite Probability Expected Performance Recurrence/Difference Equations - Complexity of algorithms (Tn=2Tn-1 + n) Finite Differences Discrete Structures Arrays Linked Lists - Stacks, Queues, Trees, Graphs Matrices Problem Modeling Problem Solving Strategies - Divide and Conquer, Backtracking Formal Systems - Grammars, Automata Number Theory - Encryption Modular Arithmetic - Perpetual Calendar Problem Counting Enumeration Assignment - Temporal effects Cellular Automata - Life Petrie Nets