Pipelining superscalar and out-of-order execution processors
Parallel and distributed architectures
III. THEORY AND MATHEMATICAL BACKGROUND — 40%
A. Algorithms and complexity
Exact and asymptotic analysis of specific algorithms
Algorithmic design techniques (e.g., greedy, dynamic programming, divide and conquer)
Upper and lower bounds on the complexity of specific problems
Computational complexity, including NP-completeness
B. Automata and language theory
Models of computation (finite automata, Turing machines)
Formal languages and grammars (regular and context free)
Decidability
C. Discrete structures
Mathematical logic
Elementary combinatorics and graph theory
Discrete probability, recurrence relations and number theory
IV. OTHER TOPICS — 5%
Example areas include numerical analysis, artificial intelligence, computer graphics, cryptography, security and social issues.
Note: Students are assumed to have a mathematical background in the areas of calculus and linear algebra as applied to computer science.