VOP 2007 Exam information
Readings
The readings include all the slides and the pdf files mentioned in the readings
for lecture 1 through 14. We do not expect you to read the secondary/further readings
for the exam. Lecture 3 will not be a mandatory part of the exam.
Exam format
Notice. Due to the new anti-team exam rules, I have changed the exam form to
classical one person at a time.
The exam is an oral exam. There is no preparation time ahead of the exam.
Each exam is scheduled to last 20 minutes per student, including 5
minutes per student for determining a grade and giving feedback.
There are two parts to the exam. For the first part, you choose a
topic of relevance to the course, and give a presentation of this for 7
minutes (voluntary topic). Be prepared that we might interrupt you with
questions, so try to get to the point very fast. Then
you draw a number,
and will have to tell about a specific topic with that number (mandatory
topics). Again, we will interrupt to move the discussion in a new direction, or
to challenge you with more details. If you prefer, you can let me and Sebastien
pick topics rather than draw.
You are free to choose whatever topic you find interesting within the VOP
area for the voluntary topic. You will in part be judged by the relevance of the
topic, so choose one which is clearly inside the scope. If you are not certain
if your chosen topic is relevant, you can ask Kasper. You are welcome to use any
of the topics from the mandatory questions list (below) - they are all within
scope :-). You are welcome to explain the concepts with the outset in concrete
issues from the UMLEditor case.
Exam dates
The dates for the exam are Tuesday January 22nd through Thursday 24th (both included).
We will schedule to start
at 9:00 in the morning, and schedule to end by 16:00 in the afternoon. We will
have lunch break from 12:30 to 13:00. The exams will take place in room
(To be announced).
Around start of January, I will get a list of all who will take the exam. I will
then start from one end, filling up from
Tuesday.
There is therefore a risk that the day you were assigned is not appropriate
for you. I will not accept single change requests. I will however be
happy to accommodate swaps. So if you are not happy about your day, find someone
to swap with, and I will swap you two. Remember, you can look up the email
address of your fellow students at the "Find person" from ITUs home page.
The schedule will be available from the course page and it will be updated
regularly.
Practicalities
- Notes for the exam. You are welcome to bring a few plastic overheads for
your voluntary part. You are welcome to bring brief notes for all the exam
questions.
However, you are not expected to read a prepared speech of your notes
or overheads. If most of what you say is what is written on the slides, we
have no background for grading you, and we will be forced to interrupt you
quickly and we will take control of the presentation.
- There will be no computer to show examples, and no possibility to show a
presentation using a laptop and projector. You can bring plastic
overheads.
- If the mandatory question you draw is nearly identical to your voluntary
presentation, you will be asked to draw a different mandatory question. We,
not you, decide if they are nearly identical.
- There are always people who decide very late that the will not take the
exam anyway. We will try to compact the exam, so be prepared that your exam
might be earlier in the day than your thought, so be there ahead of time.
You will not be moved from your assigned date.
- Please, for my and your fellow students sake - if you decide not to take
the exam, send me an email, so I can update the schedule for each day.
Mandatory topics list
- Observer pattern. What is the problem it tries to solve, how do one typically
implement it, and what examples have you seen.
- Mediator pattern. What is the problem it tries to solve, how do one typically
implement it, and what examples have you seen.
- Visitor pattern. What is the problem it tries to solve, how do one typically
implement it, and what examples have you seen.
- Double dispatch. What is the problem it tries to solve, how do one typically
implement it, and what examples have you seen.
- Dependency injection. What is the problem it tries to solve, how do one typically
implement it, and what examples have you seen.
- Proxy pattern. What is the problem it tries to solve, how do one typically
implement it, and what examples have you seen?
- Model View Controller. What is the problem it tries to solve, how do one typically
implement it, and what examples have you seen.
- Version handling. What is a version, how can we identify and handle differences
among versions, and which problems might occur when merging?
- Present some of the key points of E. Agerbo, A. Cornils. How to Preserve
the Benefits of Design Patterns.
- Extract super class and Form Template Method. Explain and
motivate the re-factorings Extract Super Class and Form Template Method.
- Bad code smells. Motivate and explain selected examples of bad code smells,
and how one goes about removing them.
- Mapping inheritance hierarchies to database tables. Briefly explain what
the problem is about, and discuss the three standard strategies
for mapping inheritance to tables.
- Explain the ideas of Design by Contract and non-null
constraints. Motivate and explain selected examples of Design by
Contract and non-null constraints.
- Explain the main Object-Oriented techniques to support software
evolution (with an emphasis on modules decomposition), and the
support for versioning in .NET.
- Explain the principles of the Adaptive Object Model, if you have time, you
can compare it with the object mapping strategy "Map classes to a generic
table structure".
- Code generation. Explain the problem on merging hand written code and generated code
and how to address the problem. Discuss the usage of a CodeDom versus simple
source text generation using a visitor.
- Explain and motivate a few new constructs from the C# 3.0 language.