* From first test - modular arithmetic, mod exp, inverses, gcd, prime testing, RSA, Karatsuba. - know all those algorithms, be able to give code for the easier ones - know why the algorithms work, if the explanation in the book is at most one paragraph. - solving recurrence relations. - memorize document. + 20 + 30 + 40 + ... + 1010 = ... + 5 + 5/3 + 5/9 + 5/27 + .... + 5/3^20 + simplify expressions of logs, exponentials, powers + bits, bytes, giga- etc. + on your gigahertz computer, how long does ___ algorithm take (O(n^3) algorithm, 1024 bits) * Since the first test... + Given an optimization problem, explain why it's NP, NP-complete, NP-hard - note: things in P are also in NP. + Know those definitions, also P, PSPACE, EXP, ___-complete, ___-hard + back tracking algorithm to solve NP-hard problems - sudoku, coloring - explain pseudocode, worst-case and best-case running time - run through an example. + Whatever your project is... - Explain your project in the space given... (worth 20% of the test) n log(n) is not an answer. * For your own good, you ought to be able to (but we won't do it on our test, but if you wanted to you could focus on something like this for your project because it is good for you...) - Given an undecidable sounding problem, prove it is by reducing to the halting problem + Problem name: "even accepting C programs" + Input: a C program that takes as input some (arbitrarily large) integer + Output: yes if the C program accepts all even integers, no otherwise * For the final.. + Linear programming, including for approximation, example of ___ + What is an approximation algorithm, example of max-3sat and ___ + What is a randomized algorithm, example of prime test (Fermat, Miller-Rabin)