EECS 381 - Object-Oriented and Advanced Programming - Winter 2017
Lecture: TTh 3:00 - 5:00, 1014 DOW
(There is no scheduled "Discussion" section, only a "Lecture" section).
- David Kieras
- 3641 BBB
eecs381help at the usual umich and edu address
kieras at the usual umich and edu address
- Office Hours
Time, Place, and Logistics
- The Final Exam will be held Wednesday, April 26, starting at 1:30 PM ending at 3:30 PM.
- We have two rooms. If your last name starts with A-L, go to DOW 1014 (the regular classroom);
if M-Z go to DOW 1006 (be sure to locate it beforehand).
- Please leave at least one seat between you and each other person.
- Please move into the middle of the rows so that those arriving later can find seats easily.
- Please place all backpacks, books, etc on the floor before the exam starts.
- Use of computational or data-access devices of any sort will be neither necessary nor allowed during the exam.
All required paper will be provided.
- The exam will be closed-book, closed-notes. The only equipment you need to bring is a pen or pencil and your hopefully rested and well-loaded brain.
- The exam will be short enough that time pressure will probably not be an issue for most people.
Coverage and Question Style
- Coverage will be everything in the course, but the final will emphasize the material since the midterm,
starting with inheritance.
- The final exam will be very similar in style to the midterm, so reviewing your midterm and studying the sample questions will give you
the best idea about what the exam will be like in terms of style.
- While some questions may be about low-level coding issues, the emphasis will be on concepts and
understanding the "why" and "how does it work."
How to Prepare
- Since my posted lecture notes and assigned handouts cover what I think is most important, using them as a study guide
would be a good idea.
- Another guideline for study is to make sure you understand the "why" of what you were supposed to do in the projects.
Reviewing the conceptual discussion in the Project docs would be useful.
- If you haven't done so already, studying your midterm and understanding why your answers are correct and incorrect
would be a good preparation as well.
- Good programmers know how to talk about this stuff! So if you have a friend in the course,
a good way to prepare for the exam would be to practice explaining the concepts to each other.
- What's the principle for order of construction and destruction of class objects in an inheritance tree?
- What are the techniques for preventing a class from being instantiated, and why is this relevant?
- When and why do you have to declare and define a destructor function for a class in a hierarchy?
- Under what conditions is calling a function a virtual versus non-virtual function call?
- If both a base class and a derived class declare and define a function with the same signature and return type,
what happens to calls of those functions depending on which one of them is declared virtual?
- What is the basic principle used in most of the design patterns?
- What is the division of responsibilities in the Model-View-Controller pattern?
- How does the template method pattern work?
- When and how should a dynamic_cast be used instead of a static_cast?
Sample Exam Questions These illustrate the style of questions likely to be on
the exams. These questions are drawn from previous midterms and finals. This is not intended as a study guide because the questions
do not correspond with any particular exam's coverage. Do not ask for answers to these questions or additional sample questions;
this is not a study guide; it is just an illustration of the kinds of questions likely to be on an exam.
Course Resource Materials
Project Grading and Evaluation
General Project Help
Individual Project Information
Links to Project documents and materials appear here, but do not use until the project has been officially announced as ready.
Programming Environments for this Course - using C and C++11/14
General Programming Environment Information and FAQs
Useful Links to C/C++ Information and Resources
Examples of other Coding Standards (Not usable for this course)
- The Code Project A Windows-centric site on technical and professional software development topics. Informative and fun daily news feed.
- Being a Programmer A Code Project article with good advice for the new professional programmer.
Interesting and Fun Links