Exam Procedure

The examination is divided in two parts:

  1. Theoretical questions on topics discussed during lectures (weight on the final grade ~15%), described below.

  2. 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.


Theory Questions

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.

How to answer the questions

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]"

Answer Evaluation

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.

Programming part

General rules

The reference programming language is Java 8.

During the exam the access to the following resources is allowed:

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.

Procedure - Lab

Procedure - Remote

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:

Common procedure

During Exam

After exam

Evaluation criteria

The evaluation is based on the two versions of the program

The grade of the programming examination is based on two parts:

  1. the percentage of tests passed by the lab version
  2. the inverse of the number of modifications applied at home to the program in order to pass all the tests (i.e. the difference between the home and exam versions)

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)

Recommendations

Given the evaluation criteria, you should abide to the following recommendations:

4