EECS 381 - Object-Oriented and Advanced Programming - Fall 2014
Lecture: TTh 3:00 - 5:00, 1014 DOW
(There is no scheduled "Discussion" section, only a "Lecture" section).
- David Kieras
- 3641 Beyster Building
eecs381help at the usual umich and edu address
kieras at the usual umich and edu address
Time, Place, and Logistics
- The Midterm exam will be held on Tuesday October 21, starting at 3:00 PM, ending at 4:30 PM.
- Because rooms are in short supply, the exam must be held in two rooms.
- If your real last name starts with A-D, go to EECS 1005. If E-Z, go to the regular classroom.
- Since the rooms are widely separated, please come to each room no later than 3:10 so that I can get the exams distributed
as soon as possible.
- If you are in EECS 1005, please locate the room in advance if possible to save a last-minute panic.
- Due to room scheduling constraints, only 1.5 hrs will be available for the exam instead of the full regular class period.
- The exam will be short enough that time pressure will probably not be an issue for most people.
- You must leave at least one seat between you and each other person.
- Please move into seats away from the aisles so that later arrivals can find a place easily.
- Please place all backpacks, 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 only equipment you need to bring is a pencil and your hopefully rested and well-loaded brain.
- A pencil is recommended over a pen because you will probably need to erase something.
Coverage and Question Style
- The exam will be closed-book, closed-notes.
- Coverage will be everything up to the midterm exam date.
- While some questions may be about low-level coding issues, by far the emphasis will be on concepts and
understanding the "why" and "how does it work."
- If you are asked to write any code, it will be as short as possible to assess knowledge of key concepts (you've written plenty of code!).
- Consult the sample questions to see what the exam questions will be like in terms of style. Note especially
the emphasis on avoiding guessing on the multiple-choice format questions.
How to Prepare
- Since my posted lecture notes and handouts cover what I think is most important, using them as a study guide
would be a good idea, especially since they provide more information than Stroustrup does about key topics.
- Another guideline for study is to make sure you understand the "why" of what you were supposed to do in the projects.
If you weren't sure of something, spend some time on it, by reviewing the conceptual discussions in the project docs.
- Why the opaque types in Project 1 have to be allocated with malloc instead of declared as local variables.
- Why a namespace "using" declaration or directive in a header file is forbidden.
- Why you had to put all of your Project 2 container code in the header file.
- Why using incomplete declarations in header files is so important.
- Why copy-swap was a good way to write a copy assignment operator in your String class.
- Why a stream iterator can be used to have the copy algorithm dump the contents of a container to a stream.
- The pros and cons of each of the STL container types, especially those used in Project 3.
- 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.
For example, what happens when an exception is thrown?
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 are listed here when ready.
Programming Environments for this Course - using C and C++11
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