COMP2511 Final Exam Information (24T1)
Notes:
- Answer Three Parts:
- Part-1: Multiple Choice questions.
- Part-2: Short Answer questions.
Type your answer in the text file provided, save and submit the file.
- Part-3: Designing and Programming questions: all of the files for the programming questions were copied into
your working directory when you logged in to the exam environment.
Your working directory should contain three or four subdirectories (q1, q2, q3 and q4)
containing files for the programming questions.
- For Part-3 questions:
- Please note that marks are awarded primarily for your design,
not just for getting the correct final answer.
- If you receive less than 50% marks from auto-marking of a question,
you may be awarded subjective marks, only if your answer is very
close to a possible solution. Importantly, such subjective marks
will be capped to 50% of that question.
- Answer all questions. Questions may not be worth equal marks.
- All answers must be submitted online using the provided instructions in the respective questions.
- Calculators/textbooks/notes/phones/laptops are not permitted.
- Calculator apps (e.g. bc, xcalc) are available on your workstation.
- Please note that the topics covered in the final exam may be different to the topics covered in the sample exam available during Week 10.
Also, the mark distribution across topics may also vary.
- Resources:
The following files (lecture slides and lecture demo code from the relevant lectures)
will be available during the exam. You can use them to develop your solutions; please cite them.
Please note that no other resources will be available during the exam.
You will be using the CSE exam environment. During the exam, you will not have access to your CSE account,
the files on Gitlab or Confluence, the internet, etc.
To clarify, only the lecture slides and lecture code in the above directory will be available for your reference during the exam.
Part 1 (of 3): Multiple Choice (25 marks)
There will be 10 to 15 multiple choice questions. The marks for each question may vary.
Follow the instructions provided to submit your answers for this part.
Part 2 (of 3): Short Answer (25 marks)
Note: The mark for each question varies.
Type your answer in the text file provided, save and submit the file.
There will be 5 - 10 short answer questions that assess theoretical understanding of course concepts
similar to tutorial and lab questions.
All short written responses will be submitted in a text file, you don't need to draw any diagrams.
Type your answer in the text file provided, save and submit the file.
Part 3 (of 3): Designing and Programming Questions (50 marks)
Questions in this part will assess your Domain Modelling and programming abililities.
There will be approximately 3 to 5 questions in this part. Some questions may have multiple sub parts.
The marks for each question may vary.
Part 3: Q1
-
This question will assess your
Domain Modelling
abilities.
-
You will be given a scenario and problem specification, and you will need to provide a potential solution in the form of:
-
Interfaces
-
Class Signatures, including inheritance relationships where appropriate
-
Method Signatures
-
Key Fields and relationships, including aggregations, compositions and cardinalities
-
You do not need to
implement
any of these classes/methods,
you are simply providing the prototypes / stubs
-
Any design decisions that you feel need justifying you can do so as a comment / JavaDoc in the respective file.
Part 3: Q2 to Q5
-
There will be 2-4 programming questions assessing your Design & Programming abilities.
-
One question will give you a context and a problem domain and
you will be required to develop a software solution, from scratch
, which may include:
-
Implementing a series of methods in a controller class that interact with a model;
-
Abstracting functionality appropriately to solve the problem;
-
Where appropriate, making use of design patterns discussed in the course; and
-
Justifying your design decisions in a short rationale.
-
One question will give you a different problem domain and an existing solution, and
you will be required to refactor and build on the solution
, which may include:
-
Making a note of the design smells any starter code may contain;
-
Modifying a series of methods in a controller class that interact with the model;
-
Refactoring the code to remove the smells, using design patterns if need be; and
-
Extending the code to accomodate an evolved set of requirements outlined in the question;
-
Justifying your design decisions in a short rationale.
-
The questions will be similar in scale to the tutorial questions and lab exercises (smaller than the assignment and project)
-
The questions may have multiple parts each worth a number of marks.
-
For most questions, we will provide a dryrun which ensures your code compiles and passes a very basic test given to you as a JUnit test.
-
If your code does not compile or receives 0 in automarking, we will only manually mark a student's solution in the case that there
is a risk that a student would fail the course.
-
Your design will be worth a significant part of the marks for each question and sub-question, so it is important that you spend time ensuring your code is well designed and justify any important design decisions in your rationale
-
Your code needs to be readable for a marker to assess your design
The sample exam, in the exam environment, will be available during your Week 10 tut/lab session. The sample solutions of selected questions will be made available on Thursday of Week 11.
Further revision questions can be posted later this week on the class webpage.
8. Approach & Preparation
Much of your preparation has already been completed in undertaking the coursework - the labs and assignments.
The questions in the exam will not be rote-learnable as these are too simple.
There will be a range of difficulty from "cookie-cutter" style questions where the scenario
is different but the approach is the same/similar to something you have encountered before,
to more difficult questions where you will need to think carefully to design your solution/answer the question.
If you wish to maximise your mark in the exam we suggest doing the following:
-
Complete all the lab exercises, and revisit previous ones you have forgotten.
-
Write short summaries of the design ideas present in each lab exercise to cement your understanding.
-
Watch the lab retrospectives, make notes.
-
Watch the tutorial recordings, make notes and summarise the key ideas.
-
Look at your assignment code, annotate and show examples of design patterns and principles in action, design/code smells, and other course concepts.
-
Complete the sample exam (ideally under time constraints).
-
Complete some of the revision questions (available later in week 10).
- Attend Exam Revision session (to be announced later)
The exam will be assessing your ability to make design decisions. Taking some time to
read the question properly
and
thoughtfully plan your design/approach
at the beginning will help you in the long run.
The Sample Final Exam will be available in the exam environment during
the tutorial/lab period in Week 10. Please make sure to attend the Week 10 tutorial/lab.
End