Final Exam
The first part of the Final Exam is the on-campus exam in Leigh Hall 307 12:15 - 1:30 pm on Thursday, Apr 8.
This in-person part is 75% of the Final Exam score. At the end of the semester, I will take the second part of the final exam (25% of questions) from your work on Project 4 (which I have not announced yet). It involves material that we cover in the 14th and 15th week of classes. I will post the Project 4 assignment before Spring Recess.
Because the in-person part of the Final Exam is 75% of the score, instead of a typical 100 points to answer, there are 75 points to answer. You still have the entire class time for the in-person part of the exam.
Notes:
- We will start at 12:15 pm sharp.
- The exam is entirely on the paper I provide. No use of a computer is needed or allowed.
- We will end at 1:30 pm sharp.
You are responsible for the following:
- Callbacks purpose, lambda functions, (free) function with a std::function parameter ⇨ lambda function, C++ class using std::function ⇨ lambda function
- IoC - What is it? What are the advantages? How do we achieve it?
- UML multiplicity, generalization (inheritance), composition, and aggregation. Understand the difference between composition and aggregation and when we would use one over the other.
- Extension points: Three implementations: A) IoC, B) Direct inheritance from a Base class, C) Inheritance from Handler used by a Base class. Be able to compare and implement at least two of these approaches on a small code example.
- RAII - What it means, why it is important, how to implement
- Coupling - Definition, why decoupling is important
- Encapsulation & Information Hiding - Definition
- Dispatch: Explain static vs. dynamic. Given code indicate which methods are called.
- APIs Basic concepts and types
- SOLID List the principles. Provide examples for at least 2.
- Optional: VTables How they work
The exam has various problem types, including short answer, definition, comparison, diagrams, and coding.
Questions are from what I covered in class, the exercises, and the projects. If I did not cover it in class, it is not on the exam.