## Data Structures: Midterm Exam

The mid-term exam will be given during the class period on Thursday
October 13. It will be closed book and closed notes. No electronic
devices are allowed. Please have nothing on your desk except pen or pencil
and the test materials.
The test will cover all the material of the course up through and including
hash tables (notes on lectures 1-7). I will * only* ask about
material that I have covered
in class. I will *not* ask about anything that is in the textbook
that I did not cover in class.

The students in the honors section take the same exam as those in the
non-honors section.

In problems that ask you to write Java code, I will not deduct points for
trivial syntactic errors.
I will not ask about the Java library classes.
I will not ask about access control and visibility (public, private, and
protected). You are, of course, expected to know the basic features of
Java statements and methods.

Specifically, the topics on the test include:

- Object oriented features of Java:
- Classes and subclasses.
- Objects and references.
- Overriding
- Overloading
- Dynamic dispatching
- Abstract methods
- Interfaces
- Generics
- Wrapper classes for primitive types

- Recursion.
- Lists
- Array implementation of lists
- Singly linked lists
- Doubly linked lists
- Ordered lists
- Binary search in ordered arrays.
- Distinction between constant time and linear time operations.

- Hash tables.

If for any reason it is *impossible* for you to take the exam on the
13th, * please* if at all possible let me know about this in advance.

It is important to use good test-taking strategy. Spend a couple of minutes
looking over the exam, decide which problems you find easy, and do those first.
For instance, in the sample example, problem 1 is almost certainly one of
the most time-consuming, so you probably don't want to do it first.
The answers do not have to be in order in your answer booklet.

Be sure to put your name on the exam booklet. You may keep the exam sheet,
if you wish.