Midterm Exam Posted: Feb 29
The Midterm Exam is during class time in our regular classroom on Thursday, Mar 7.
You are responsible for the following:
- Software Design - Definition, the two types of design (so far), where they come from, what they are concerned with
- Software Design Characteristics - Know the list of characteristics
- Algorithmic Decomposition - Explain what it is and how it works
- Structure Diagram Given code or description, draw.
- Coding Style Given function declaration or definition, improve the code using the principles we discussed in class. This includes proper parameter passing.
- Function Design Given a description, create a function declaration with a proper Doxygen-style comment. Parameter passing must follow the coding-style rules.
- Generalizing Functions - Given an example function, show how to generalize it
- Physical Organization - Include guards, header comments, function comments, separate function declarations and definitions
- Naming & Method Naming Standards - Given a list of names, correct the poor names
- Iterator - Four basic operations in GoF terms and C/C++ operators
- Free-Function Stereotypes - Know the terms and be able to write a free function for each stereotype
- Concerns - Definition, separation of concerns, be able to identify concerns
- UML Sequence Diagram Given a scenario, be able to draw a sequence diagram
- XML Know what is and what is not an XML concern
- UML Class Diagram - C++ code ⇨ diagram, diagram ⇨ C++ code, single class only (no relationships)
- Organizing Functions - free functions in a file, in a namespace, and as static methods of a class
- Cohesion - Definition
- Encapsulation and Information Hiding - Definition of each, the encapsulation rule and the information hiding rules.
- Member Initialization List - Order of field creation, proper use of member initialization list
Note that Method Stereotypes and Callbacks are not on the exam.
The exam has assorted problem types, including short answers, definitions, comparisons, drawing diagrams, and coding.
Questions are from what I covered in class, the book, the exercises, and the projects. If I did not cover it in class, it is not on the exam.