What to expect on the final exam:
In particular, in recent days we discussed the Binary Search and Selection Sort algorithms. Given code that implements one of these, plus an array on which it is to operate, you should be able to give a precise account of what happens during execution. For example, identify those locations of the array that are probed during a binary search or which pairs of array elements get swapped during a selection sort.
Near the end of the semester, we discussed recursion. Given a recursive method (i.e., one that calls itself) and value(s) provided to it via its parameter(s), be able to mimic its execution (so as to tell what it prints or what value it returns) and perhaps even apprehend its purpose.
One of the keys to designing such a class is to choose a set of instance variables that, when utilized in tandem, support all the desired capabilities of objects of that class. (Such capabilities are those manifested in the public methods of the class). A key, then, to understanding how such objects are able to exhibit their capabilities is to understand how the instance variables are used.
Expect at least one test problem that gauges your understanding of how instance variables are utilized in a Java class that you have encountered in lecture or lab, or one that is similar. For example, you should understand how each of the instance variables of a TossableCoin or CalendarDate object contributes to that object's ability to carry out its various operations, and how the values of those variables change as a result of one or more calls to the class's mutator methods.