Midterm Exam Posted: Mar 04
The Midterm Exam is during class time in our regular classroom on Tuesday, Mar 11.
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 - Definition and how it works
- Structure Diagram Given code or description, draw.
- Coding Style Given a 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, and 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.
The questions are based on what I covered in class, including the exercises and projects. If I did not cover it in class, it is not on the exam.