Due to the limitations of classroom teaching, this year there will be only one test: the final exam.
The date of the exam is set centrally by the faculty. This year it's June 19, 10.30.
The exam will be realized as a take home exam. You will have to refer to your project. You may use whatever other sources you wish.
However, you must write your exam on your own: you are not allowed to communicate with other people.
On the exam date, you will receive the questions to which you will reply in writing.
You will submit your answers to the corresponding submission site in AIS.
For this, you will have up to two hours.
The questions will require answers related to your project.
Here are some examples for you to get a better idea of how such questions could look like:
- In your project, for what did you use for or would use multithreading for?
- Choose one of the design patterns you used in your project apart from Singleton and explain the purpose of its use with respect to the project. In case you used no design pattern in your project, answer with respect to an assumed application of a pattern of your choice.
Identify the pattern roles, i.e., how you implemented them in your project.
Identify the conflict of the contradicting forces in your project that is being resolved by this pattern.
- Explain how did you or how would you apply the open-closed principle in your project. Provide an example of a possible violation of this principle in the context of your project.
- On an example of method overriding from your project, explain how was the Liskov substitution principle met.
- Provide an example of polymorphism from your project (only the inevitable code) and explain what is achieved by its use in terms of your project.
- Provide an example of using access modifiers from your project (only the inevitable code) and explain what is achieved by their use in terms of your project.
- Provide an example of using interfaces from your project (only the inevitable code) and explain what is achieved by their use in terms of your project.
- Explain for what did you use or for what could you use serialization in your project. Base the explanation on classes from your project. How would you ensure that all you need would actually be serialized?
- Explain in what way did you decouple the inner logic from user interface in your project or how would you do this if you find changes to be necessary.
- Using a UML class diagram, express the relationship between a selected interface in your project, a class that implements this interface, and a class that uses it.
- In your project, for what did you use for or would use aspect-oriented programming for?
- Which C++ feature not provided by Java would come as handy in realizing your project and why?
- Which C# feature not provided by Java would come as handy in realizing your project and why?
The questions from the exam held remotely on June 19 at 10.30am re available here along with the assessment key.
vranic at stuba.sk