UP ONE LEVEL:
ENEL 315 Home Page
Winter 1996 Final Exam Review
Class Handout for ENEL 315, Winter 1996
Author:
Steve Norman
Last modified:
Last modified: Fri Apr 12 11:52:39 MDT 1996
Date of first publication: 12 April 1996
Contents
Revision History
- Added a sentence to make it clear that the
`delete'
operation for a BST is the same as the operation
called `remove' in lectures and Lab[9].
- Fixed a minor typo.
[back to top of document]
Reminder
This is from the official course outline:
Regardless of your assignment and midterm marks,
if you score less than 40 percent on the final exam you
will fail the course,
and if you score between 40 and 50 percent on the final
exam your grade will be D+ or lower.
This is a somewhat tough rule, but unfortunately I have no other
way of judging
whether you have grasped the essential concepts from the second
half of the course.
If you have a good understanding of basic concepts from the second
half of the course,
it should be easy to score 50 per cent or higher on the exam.
[back to top of document]
A couple of points about terminology
This is NOT exam material but it's very useful to know.
Class or object?
To avoid confusion, remember that a class is a type,
and an object is a region of memory used to store data.
Often an object is of a class type.
For example:
class Thing {
// ...
};
int main()
{
Thing fred;
// ...
}
Thing is a class, not an object;
fred is an object, not a class.
What is
lexicographical ordering of strings?
Lexicographical ordering means, roughly,
`dictionary ordering' or `alphabetical ordering'.
This definition is imprecise, as there are several
reasonable sets of rules for ordering strings.
For example, the ordering provided by strcmp
and by the comparison operators for string objects
is not the same as the ordering used in printed dictionaries
and phone books.
(Dictionaries and phone books ignore the difference between upper case and
lower case.)
[back to top of document]
The Exam
The exam is closed-book.
You must not have any books or notes at your seat.
You are not allowed to use a calculator or computer
during the exam.
Do not bring a calculator or a computer to the exam.
The format will be very similar to that of the midterm test.
You will write your answers on the
question paper
and hand in all
of the question paper at the end of the exam.
[The previous sentence corrects a typo on the paper version of this handout.]
You may find it helpful to remove the staple from the question paper
in order to avoid flipping back and forth between pages;
if you do so, be very careful to write your name on every
page and hand in all of the pages.
[back to top of document]
Study advice
General advice:
(This repeats advice given on the midterm review handout.)
The most important topics are the ones that were
heavily emphasized in lectures and lab assignments.
More specific advice:
-
The exam will concentrate on material covered after the midterm,
but you must know basic material from the first half of the course;
in particular, if you have forgotten the basic operations for
List and Stack ADTs, you should re-learn them.
-
Review the lab assignments.
Re-read the ``Read This First'' sections on the lab handouts.
On paper, repeat as many exercises as you have time to cover.
Concentrate on those areas you found difficult the first time
through.
Concepts are more important than syntax - if your exam answers
show correct algorithms, minor C++ syntax mistakes will cost
you very few marks.
Being able to draw correct memory diagrams is important.
(But you will not have to draw really complicated diagrams
on the exam.)
-
Review your lecture notes.
Once again, remember that concepts are more important than syntax.
-
Read the textbook selectively;
look for passages that deal with concepts you find difficult.
-
Last year's exam is useless as a study aid.
The course has changed too much.
[back to top of document]
Exam topics from the textbook
Here is a summary of topics from Carrano covered in the second
half of the course.
You will not be tested on
topics from Carrano that were not covered in any serious way
in lectures or labs.
- Chapter 7
- Chapter 8
- Chapter 9
You are not required to know about any other sort
algorithms.
- Chapter 10
Do not worry about binary tree or binary search tree
operations that were not covered in labs or lectures.
See the Midterm Review handout for a list of topics in Carrano
that were covered in the first half of the course.
[back to top of document]
Exam topics not covered in the textbook
Here are the major topics not covered in Carrano that
appeared somewhere in the second half of the course:
- Phases in S/W development.
The waterfall model and the spiral model.
(Any exam questions on this material will be very short
and very basic.)
- Pointers to functions in C and C++.
- Overloaded operators as global functions.
- Creation and destruction of unnamed temporary objects.
- Template instantiation issues.
- Simple use of the string class from the standard library.
- Traversing data structures with `Visitor' objects.
See the Midterm Review handout for a list of topics
not covered in Carrano
but which were covered in the first half of the course.
[back to top of document]
A note about binary search trees
You must understand and be ready to code these binary search
tree operations: insert, retrieve, traversals (preorder,
inorder, postorder).
You must also understand how the delete operation works;
you might be asked to code some part of it, but coding
the whole operation is too much work to be an exam question.
[Note: the `delete' operation is the operation I usually call
`remove'.]
[back to top of document]
Topics definitely NOT on the exam
-
Details of cin, such as the rules for single-character
input, use of specialized member functions like
ignore,
fail,
eof,
good,
clear,
etc.
-
The Complex class.
-
Use of programming tools
such as gdb, Emacs, and make.
-
Details of the supermarket queueing problem of Lab[6].
-
Details of file I/O, use of ifstreams and ofstreams.
-
Details of the TokenList and MathMatrix classes
from Lab[9].
- Use of vptrs and vtables in virtual function calls.
[back to top of document]
C++ syntax example
The Point example, handed out Friday, March 15, will be
printed on the examination paper as an example of C++
template syntax and code organization.
If you've lost your copy, print the files from
/courses/enel315/Point
on the DECstations.
[back to top of document]