Recursion. Know my four rules
for doing recursion, and understand why they are important. You will be asked
to write a simple recursive method.
Collections. Know how
the interfaces and classes are related. Know the methods defined in the interfaces.
Stacks. Know the methods defined
for Stacks and Vectors, and how the two are related.
Be familiar with some uses of stacks. Understand the algorithms for parsing
and evaluating arithmetic expressions.
Simple Recursive Algorithms.
Understand the basic idea behind finding all permutations and behind Quicksort,
and understand the algorithm for Towers of Hanoi.
Backtracking. Understand the
relationship between backtracking and tree searching. Be able to write a backtracking
method. Understand the concept of a "virtual tree."
Analysis. Be able to determine
a suitable "characteristic operation" for an algorithm, and be able
to express the running time of an algorithm in terms of its characteristic
operations. Know the relationship between various Big-O running times.
Searching. Understand why binary
searches take logarithmic time, and what that means.
Pointers and References.
Know the difference between pointers and references, and how they are implemented.
Understand the meaning of a "null" reference. Understand how Vectors
(and similar data structures) can "grow" in size as needed.