## Times and Locations

### 1st Phase

• Date: 17/01/2020
• Time: 9:00 - 12:00
• Rooms: B208, B213.

### 2nd Phase / Improvement

• Date: 03/02/2020
• Time: 9:00 - 12:00
• Room: B201.

## Necessary materials

If it is not listed below, it should not be on your table. Any consultation materials deemed necessary for the exam will be made available in Moodle.

• Writing material.
• Blank paper sheets, just in case we run out of draft paper sheets that we will supply during the exam. Sign and return all draft paper sheets to the professor in your exam room before leaving.
• Student card, which you will place on the corner of your table for easy checking; otherwise we will bother you during the exam unnecessarily.

Smartwatches and mobile phones must stay in your bags.

## Format

The exam will be made available in Moodle. Please make sure to test your access to the platform. Contact the FEUP Helpdesk to sort out any issues beforehand.

1. UML Class Diagram exercise (delivered on paper)
• A problem statement similar to the UML Class Diagram exercises will be presented in Moodle.
• Like in the practical exercises, if you assume something that is not clear in the problem statement, write those assumptions in the paper. If you model according to those assumptions, we will consider it correct.
• Students must turn in a single paper sheet with their resolution of the UML Class Diagram exercise to the professors during the exam.
• If a student does not wish to deliver a solution, he/she must deliver an empty paper sheet, adequately identified and signed, with the words “I do not wish to solve the UML exercise”.
2. Relational Model exercise (via moodle)
3. Some multiple choice / short answers on HTML, PHP, and CSS (via moodle)
• Wrong answers will produce negative scores, so if you are not sure, do not answer.
4. SQL exercises
• An SQL script will be provided in Moodle, that you must download and use to initialize your database.
• For every exercise, you must provide the SQL query that returns the expected results. To avoid losing work and time, you can follow this workflow, like we did in class:
1. Use a proper code text editor available at the FEUP computers, such as Notepad++ or Atom.
2. Use UTF-8 encoding (same as the one used in the script).
3. Make a separate text file for each of your solutions and edit the code there.
4. Test your queries using the SQLite command line (use the .read command to run each of your files instead of typing on the command line).
5. When you are happy with your solution, please copy and paste the solution into the answer text box in Moodle.
6. Do not include any SQLite initialization code, such as .headers on or .mode columns. The answer should be the query itself only.
• When a question does not ask you to order the results, your answer will be correct as long as it returns the expected tuples, regardless of their order.
• Even when your answer produces the same tuples as the ones presented as the example result for the question, it may not be considered correct. In the correction we will test your queries against a database with the same structure as the supplied script but with different records, designed to test more edge cases (like we have seen in class). To be considered correct, your query should still produce the correct answers when ran against the correction database.

## Previous exams

Some examples of previous years are available here. Given that some topics covered have changed this year, the structure may also be different. Use the format above as reference.

## Important notes for Erasmus students (remote exams)

• In exceptional cases justified by the school calendar, Erasmus students may carry out the exam remotely at their home University.

• All Erasmus students that cannot be present during the exam must contact the course professors to arrange a remote exam.

• These students must secure the contact of a responsible person at their home University beforehand and supply that contact to the course professors. We will then coordinate with this person to arrange a controlled environment at the student’s home institution where they can perform the exam. This person will assume responsibility for making sure that exam rules are followed.

• The responsible person needs to communicate to the professors the range of external IPs from which the student will perform the exam, otherwise the student will not be able to perform the exam.

## Play fair

Any illegal behaviour during the exam (plagiarism by any means or exchange of information between students) is punishable with a full annulment of the exam, resulting in a grade of zero.

All network accesses and interactions with the computers during the exam are monitored. Unlawful behaviour will be easy to detect and any implicated individuals will be dealt with accordingly.

Any attempt to perform the exam on computers other than the ones in the computer rooms is easily detectable and will result in immediate anullment of the exam, unless you are an Erasmus student and have contacted us beforehand to arrange a remote exam.