The examination is divided in two parts:
Theoretical questions on topics discussed during lectures (weight on the final grade ~15%), described below.
The development of a Java program, using the Eclipse IDE (weight on the final grade ~85%).
The final grade will be published on the student portal and it can be rejected.
The question topics are theoretical Software Engineering and Java language general characteristics.
General knowledge of such topics is sufficient to answer the questions correctly, a mnemonic knowledge of the details is not necessary.
The questions are accessible in a text file inside the Eclipse Java project. All question can have zero or more correct answers.
There will be four questions:
Among the proposed options the students are required to select those they deem correct (possibly none).
An example questionnaire with the relative questions is reported below:
1. Which among the following statements are valid for a Java interface?
[ ] A1.1 - An interface can contain regular attributes
[ ] A1.2 - An interface can contain abstract methods
[ ] A1.3 - An interface can contain static methods
[ ] A1.4 - An interface can be empty
[ ] A1.5 - An interface must at least an abstract method
2. What is the purpose of the operator `->`?
[ ] A2.1 - define a conditional expression
[ ] A2.2 - define a reverse assignment
[ ] A2.3 - implement a functional interface
[ ] A2.4 - define *method reference*
[ ] A2.5 - extend a class
3. What method is used by SVN to solve conflicts?
[ ] A3.1 - Lock-Unlock-Modify
[ ] A3.2 - Lock-Modify-Unlock
[ ] A3.3 - Check-out/Check-in
[ ] A3.4 - Check-out/Commit
[ ] A3.5 - Copy-Modify-Merge
4. What is included in the middle section of a UML class?
[ ] A4.1 - Name of the class
[ ] A4.2 - Implementation
[ ] A4.3 - Interface
[ ] A4.4 - Methods
[ ] A4.5 - Attributes
To select an answer place a "X" in the "[ ]" --> "[X]"
The grade for the answers to the theoretical questions is evaluated with the following rules:
Partial answers, or answers including wrong elements, will lead to intermediate grades, evaluated using a formula based on the the accuracy.
The reference programming language is Java 8.
During the exam the access to the following resources is allowed:
https://oop.polito.it/svn/OOPLabs/s######/
)https://oop.polito.it/svn/OOP2018/...
)The exam must be completed autonomously without any help from other persons. In case of suspected violation of this rule the exam will be cancelled.
To take the exam you must know how to:
No assistance will be provided on these topics during the exam.
It is required to access the repository and perform the exam from a single device and using a single internet connection; in case of technical problems students are required to notify the teachers as soon as possible.
Personal repositories (previously disabled) are enabled at the same time for all and announced the beginning of the exam.
WARNING Repository credentials are available to students before the exam: they are the same personal repositories used during the labs (whoever is missing their credentials must contact the teachers al least 2 days in advance)
WARNING Since the day before the exam, personal repositories will NOT ne accessible.
Start your LAIB PC and login using the official Politecnico credentials
Start Eclipse (Oxygen 2)
The programming part is conducted on student’s own PC. During the exam students must be connected to the support VC whose link is sent via email before the exam to all booked students.
Within the support VC:
all students must keep their webcam turned on
questions and answers are written on the public chat
possible correction to the requirements are published on the chat, which has to be checked periodically by the students
teachers can ask, in any moment, to any student to share their screen to check what they are doing
Start your Eclipse installation (2020-12)
During Exam
Requirements.html
file inside the project (Right-Click, Open With, Web Browser)After exam
The evaluation is based on the two versions of the program
The grade of the programming examination is based on two parts:
The program is recompiled with the standard javac
compiler running in a linux environment. If the program causes compilation errors the number of passed tests is automatically evaluated as 0 (zero).
The proportion of passed tests is normalized on the basis of the general outcome of the exam. In any case the project committed after exam must pass all tests.
If the home program does not pass all the tests, the exam will not be evaluated, and the student will be considered as retired from the exam.
Eventual correlations between the tests failures will not be considered in any way: it does not matter if more than one test fail due to the same error, only the passed/failed number of tests is considered. Obviously, if fixing a single error allow the program to pass various tests that failed in the lab version, this entails a less modifications (thus leading to an higher value for the second component of the grade)
Given the evaluation criteria, you should abide to the following recommendations:
System.exit()
.import
that refer to non-standard classes.4