Midterm Exam Posted: Feb 26
The Midterm Exam is during class time in our regular classroom on Thursday, Mar 5.
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
The exam has a variety of problem types, including short-answer, definition, comparison, diagramming, 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.