CMPS 144 Fall 2023
Oct. 16 test preview
The kinds of problems you can expect on the test include the following:
- Given some relatively simple computational problem (e.g., involving
an array) and a loop invariant to guide you, develop code to solve
the problem in a manner consistent with the given loop invariant.
(Recall Red/White/Blue Partitioning in Lab #3.)
- Given some computational problem (as in Quiz #1) similar to one
that you would have solved in developing the UnboundedNatural
class for Prog. Assg. #1, develop code to solve it.
- Given a relatively simple abstraction (e.g., a pair of dice or a
line segment), develop a Java class to implement it.
If other classes are provided as potential building blocks
(e.g., SixSidedDie, PointOnPlane),
use them in that implementation.
(Recall the Temperature class in Lab #1.)
- Given a relatively simple Java class that lacks some desired
functionality, develop a child class that provides that functionality.
(Recall the Counter class and its child
ResetableCounter, the latter of which added functionality by
which a client program could reset a counter to its initial value.)
- Given an abstract Java class that "expects" its children to
supply the implementation of one or more of its abstract
method(s) (i.e., methods whose bodies are omitted), develop
such a child class. (Recall BoundedCounter and its
children from Lab #5, StringSorter and its children
from Lab #4, as well as the classes pertaining to Red/Blue
partitioning in Lab #4.)
- Given a class hierarchy (e.g., Counter and its descendants in
Lab #5) and a program that makes use of objects from classes in that
hierarchy, be able to trace execution of that program and report its
results. (In particular, that would involve understanding, with respect
to a method call obj.doSomething(), which version of the
doSomething)() method actually gets called (among the
possibly multiple versions found in classes in the hierarchy).
- Show the history of a pair of stacks used in evaluating a
fully-parenthesized expression. (Recall Lab #6.)