The midterm will take place on February 25, 2015.
Because CMSI 282 is a continutation of CMSI 281, topics from last
semester are fair game. Within reason. These are the topics that the
test questions will be drawn from:
- The basic data structure kinds (sets, sequences, hierachies, networks).
- How data structures are implemented (arrays, nodes, and references).
- Basics of queues, priority queues, trees, and hashing.
- Algorithm analysis.
- Memoization and tail recursion.
- Divide and conquer approaches to searching, majority element, polynomials.
- Numeric algorithms (multiplication, division, exponentiation, gcd, lcm,
factoring, discrete logarithm, other modular stuff).
- Cryptology.
- Enumerating combinations in an array (e.g., three parition solving)
- Sorting.
The kinds of things you might be asked to do on the quiz will include:
- Simplify an expression with logarithms.
- Give the time complexity of a code fragment.
- Answer a question that somehow deals with the relationship between
certain complexity classes.
- Answer a "what if I had a faster computer?" or "what if I needed to
process a larger input set?" question.
- Figure out something about a sorting algorithm... perhaps find
a bug in an attempted implementation, or compare two algorithms,
or identify best and worst cases.
- Answer questions about mods, logs, multiplication, etc.
of really big numbers.
- Apply a classic cipher by hand.
- Answer questions about the effectiveness or weakness of
certain ciphers, or maybe compare two different ciphers.
- Determine RSA keys, given large primes.