Information about the final exam
Format
Three hours; no aids allowed.
Content
You are responsible for all material covered in:
- lectures and tutorials.
- assignments and online homework
- assigned readings
Particular types of question
Types of questions will be along the lines of recent midterms and
finals. Examples (not necessarily a complete list):
- write code
(perhaps with pointers, or recursion, or interesting OOP features)
- trace code
- write specs for iterative or recursive code
- do parts of a proof of correctness for iterative code
- do a complete proof of correctness for recursive code
- do big-oh analysis of code
- talk about pros and cons of various implementations for an ADT
- derive a recurrence relation to express something about some
given recursive code
- solve a given recurrence relation
- do some class design
- implement a class
- use a given class
- talk about any of the above things
- correct mistakes in examples of any of the above things
Advice about how to study for the exam
- Go back over anything you never felt good about; ask us about it.
- Practise! Do the sample exams in the handbook.
Many questions are quite easy to convert into Java.
- Go to office hours.
The office hours often turn into great small-group discussions, and
you will be welcome to just listen, or to contribute if you wish.
You are welcome to attend anyone's hours, regardless of whose
section you are in.
Advice about how to write the exam
- Read over the whole exam before you start.
- Budget your time. It's not intended to be a speed test, but you
could run out of time if you loose track of time.
- Read questions with care, and be sure to do what we asked for!
- If you are at all unsure about what we mean, feel free to ask a
question.
- Please, when asking questions, whisper!