# SP19:Prelim 2 guide

From CS2800 wiki

Prelim 2 will cover all material covered in lecture and homework between 3/1 and 4/1. Material covered on prelim 1 will not be directly tested, although you will still need to know how to write proofs and work with the basic mathematical objects necessary for those topics. Material that you have had homework problems on will be tested more heavily. The exam will be closed book, closed notes, and will be 90 minutes long.

Here are some sample questions from past prelims: File:Sp19-prelim2-sample.pdf (solutions coming soon: File:Sp19-prelim2-sample-sol.pdf).

The slides from the review sessions:

Here is a brief summary of what we've covered; for an exhaustive list see the Main Page:

- Induction
- Be able to do proofs by weak induction, strong induction, and structural induction.
- Understand inductively defined sets and inductively defined functions, including BNF notation
- Be able to apply the algorithms contained in inductive proofs

- Number theory
- Key definitions:
- Some of this material was in scope for the first prelim: quotient, remainder, base b representation, divisibility
- greatest common divisor
- Bézout coefficient,
- equivalence mod m,
- well-defined function,
- modular number,
- ,
- unit,
- inverse,
- ,
- ,

- Key algorithms:
- finding the base b representation,
- Euclid's GCD algorithm,
- finding Bézout coefficients,
- finding modular inverses,
- fast exponentiation
- computing φ(p) where is prime
- computing φ(pq) where and are distinct primes,

- Key results:

- Key definitions:
- Automata theory
- Be able to build DFAs for simple problems
- Understand how to prove that a DFA is correct
- Key definitions:
- Key results
- Know and be able to apply the pumping lemma
- Know how to prove that an automaton is correct (by giving and proving a specification for Lecture 23 Automata constructions) , see
- Know and be able to apply the different parts of Kleene's theorem (converting DFA to NFA to RE, etc.)
- Turing machines are not in scope.