Last updated on

Computer exams logistics

All exam labs will take place on Wednesdays 16:15-19:00 in BC 07-08. During exam labs, these rooms will not be available for help sessions.

The final exam of CS-214 Software Construction will be announced later.

You have been assigned to a Moodle group corresponding to your exam-lab week (if not, please send us an Ed message).

We will post room and seat assignments on Moodle ahead of each exam (exam-lab, midterm, or final). Feel free to consult the seating plan of your assigned room ahead of time.

Some rooms have numbers on monitors or at the base of the computers. These are not your seat numbers. Please find your seat according to the seating plans.

A printed seating plan will be posted on the door of each room on exam days.

Pre-exam checklist

Bring your laptop

We will use personal laptops as a backup if VDI malfunctions.

Bring your two-factor authentication device if you have one

Moodle may require two-factor authentication, so bring your mobile phone or any other device you use for that purpose. You are not allowed to use your devices outside of the initial VM login phase of the exam.

Make sure you know your Gaspar and email passwords

You can write them on a piece of paper (you will not have access to your password manager). Do not change your passwords less than 24 hours before the exam.

Bring your own keyboard or mouse if you need them

You may bring a keyboard and mouse to the final if you do not like the QWERTZ (Swiss layout) keyboards that are already in the rooms, but:

You may bring passive (non-powered) ear protection such as earplugs (but make sure that you can still hear announcements!).

Exam Protocol

Format

Exam labs will follow the usual format of labs.

The final exam will consist of exercise sets and mini-labs, similar to the exercises and labs that you solved during the semester. Each exercise set or mini-lab will be submitted separately on Moodle. Each exercise set or mini-lab will be worth a number of points indicated in the corresponding writeup.

You must use Scala to complete the exam. Any Scala constructs are permitted.

Environment

You will have access to a physical computer provided by EPFL running a locked-down virtual desktop instance (a virtual machine), with the following software installed: Java, Scala, SBT, Coursier, VSCode, VSCode plugin: Scala (Metals), VSCode plugin: Scala Syntax (Official).

You are only allowed to use the following resources during the exam:

You may not bring additional documents (no printed, handwritten, or electronic materials), except for a piece of paper with your passwords if needed.

Timeline

Doors will open 5 minutes before the beginning of the exam. Computer exams have four phases:

We may have to start late if any room runs into difficulties.

Setup

Reading

Once everyone is ready to start, an assistant will give you permission to start, and the handout link will become available on Moodle (you will need to refresh the page). You have 30 minutes to read through the entire exam without coding. You may take notes on paper.

Programming

After 30 minutes, a link to code scaffolds will become available on Moodle. Each exam lab or exercise will be provided as a separate Git bundle. To work on an assignment (exercises or mini-labs during the final, exam-labs otherwise):

  1. Download the corresponding bundle from Moodle into ~/Downloads/ and clone it:

    • Open the terminal.
    • Navigate to the Downloads folder, e.g. cd ~/Downloads/.
    • Clone the repository, e.g. git clone assignment.bundle (replace assignment with the right name).
  2. Start working on the exercise.

    • Open the newly cloned directory in VSCode. You can use the following command to do so:

      code ~/Downloads/assignment/

      Do NOT open the Downloads/ directory directly in VSCode, otherwise Metals and worksheets will not work properly.

    • Let Metals import the original assignment before you start coding and changing the files.

      • When you open the ~/Downloads/assignment/ in VSCode for the first time, Metals will show a pop-up window:

        Click “Import build”.

      • If there is no pop-up window after 30 seconds, you can click the Metals button on the left panel, then click “Import build” in the Metals menu:

      • Wait for Metals to import the build. The import is not yet finished if, on the VSCode bottom-left corner, you can see the build server (bloop or sbt) is still running or Metals is indexing:

        Wait until import is complete to start coding.

    • To run the tests of an assignment, run sbt test under the directory ~/Downloads/assignment/.

    • It’s OK to create new files and directories under Downloads/. Make sure all your files are under Downloads/.

    • Auto-save is enabled.

      How to disable auto-save in VSCode

      You disable auto-save in the File menu:

      You can see a tick in front of “Auto Save” when it is enabled.

    • Do not delete any of the pre-created folders and files (~/.sbt, config files, etc). If you do, we will help you restore, but it will take time, you may lose data, and you will not get extra time to compensate.

  3. Submit your solution via Moodle.

    You will submit your solutions through Moodle, like you did for labs during the semester. Each assignment will be separate on Moodle.

    Typing moodle epfl on the Firefox address bar will not work, as it attempts to make a Google search for moodle epfl but you do not have internet access.

    Instead, you can type the full url: https://moodle.epfl.ch.

    • Make sure to run tests locally on your machine with sbt test before submitting.
    • Submit your solutions as soon as possible for each question.
    • In most cases, only your last submission will count: make sure not to submit broken code.
    • You will not be able to submit a new version of a solution until the last submission is graded. We will reopen submissions at the very end of the exam for one last chance to submit if needed.

Last chance to submit

Do not wait until the end of the exam to submit all assignments at once. At the end of the exam, we will give you five minutes for one last chance to submit your solutions. Note that the automatic grader can take time when everyone submits together, so you may not see its output for that last submission.

After the last five-minutes submission window, stop using the computer and log out to close your session. Make sure to submit your work before that.

Use the log out menu option to close your session:

Any code not submitted to Moodle during exam-labs will be lost. Except for unforeseen circumstances, code not submitted to Moodle during the final will not be graded either.

Exam length

We have designed the final exam and exam labs to take more than 3 hours to complete in full. This is on purpose, and it is accounted for in grading. We do not expect you to solve all questions.

Tips

Training for exam-labs and for the final

No cheating!

Seriously: don’t cheat.

Troubleshooting

If you delete ~/.sbt or other session files

Speak to an assistant. Beware: recovering in that case will take at least 15 minutes.

If type information is missing or auto-complete does not work

It means Metals is not working properly. See our troubleshooting guide.

If you use the test debugger but it does not stop at breakpoints

You’re on your own: we do not provide support for VSCode’s debugger.

If your mouse moves too slowly/fast

Hover your mouse on the bottom-right corner of your screen to trigger the VDI menu. Click “Settings” on the VDI menu and adjust your cursor speed.

Adjusting your cursor speed using the Ubuntu settings will NOT have any effect: use the VDI setting.

If the screen is too bright/dim

Press the buttons of your monitor to adjust screen brightness. It depends on the monitor model of your room.

If the screen brightness option is locked, try to unlock it by pressing the on/off button of your monitor for 10 seconds.