CIS 3142
Programming Paradigms in C++
Final Exam Topic List
As before, the exam is cumulative.
The exam will consist mainly of multiple choice questions. The remainder will be reading/writing code questions on the following topics:
- C-strings: you should know the
strlen, strcpy, and strcat functions
- Canoncal class form: you should know, understand and be able to code the Array class
- you will not have to code the entire class, but you should be able to code any part of it
Lab 8 (String class) is now optional. There will also be an extra-credit question on Lab 8. You will receive credit for the lab only if you also answer extra-credit question on the exam.
Topics
- You only have to know the material covered in all the various lecture notes, the labs, and in class.
- don't worry about the Advice portions.
The topics covered since the last exam are:
- Chapters 6-19 (skipping 13 and 14)
- While we didn't cover the lecture notes for the chapters in Part II (Chapters 16-19), the supplementary topic notes cover that material; we just
didn't go over the advice sections (in any event, the only relevant material is from the labs).
- Labs 5-7; while 8 is optional, it covers the canonical form, which you are responsible for
Again, the exam consists completely of coding questions (in CodeLab); and as the labs cover just about all the topics covered
in the notes, try to get to as many labs as you can — even if you don't finish them completely
- This will also help your overall grade when you submit whatever work you did to CodeLab
In particular, you should be able to:
- code a class, and know what goes in the .h file and the .cpp file
- code a C-style module of non-member functions, again knowing what to put into the .h and .cpp files
- be able to code a basic C++ application that uses files, classes, arrays, dynamic memory, templates, and a simple use of a vector (as in Lab 4.2)
- be able to overload an operator on a class
- in particular, the << operator
- know how to define binary and unary operators as member or non-member functions; and which operators
are typically made members or non-members.
- be able to code a simple class or function template
- write a simple copy constructor, assignment operator, and/or destructor
- work with C-style strings
- know how to construct the proper signature for a function (i.e., parameter types and return type)
- know how to use dynamic memory allocation
The exam will be open book, open net, open everything, except for other people … you may not communicate with anyone else, whether or not they
are in the class.
Canonical Form
Although canonical form was on the last exam, it was presented fairly close to the exam, and many of you did not get a chance to complete the corresponding lab,
so exam 2 covered only an overview. On this exam, you should be able to code the three functions of the form (copy constructor, assignment operator, and destructor).
Of particular value is the array class presented in class, as well as the String class assigned as a lab.
Templates
You should be able to write a simple class and/or function template; in particular you should be able to take a 'normal' function and/or class, and be able to
identify where the template parameter should go (i.e., the element type of an array, as shown in class).
STL
You should know the basic concepts of the STL... that it stands for Standard Template Library, corresponds functionally to Java's Collection Framework, and
is implemented using templates (and not inheritance, like Java).
And as always, the labs (in particular Labs 7 and 8 which cover operator overloading and the canonical form) are useful for making sure you understand the above concepts.
---------------------------------