Hide menu

Labs

Rules

Before you read the information on this web page, and before you register for the programming project, please take some time to read the general lab rules that we apply to conduct the laboratory sessions of this course. In addition to what you have just read by following the above-mentioned link, you should also follow the rules given below:

  • a group consists of two students (if you want to work alone, you should first contact your course assistant -- due to the limited number of computers available, working alone might not be possible);
  • the members of a group should work together during the whole course; and
  • a group is not allowed to work on more than one computer during the scheduled sessions.

If you have any questions, or if you are not sure about the exact meaning of any of the rules, you should consult the course leader or your course assistant before you start working on the assignments.

Sessions

The practical part of the course consists of seven laboratory sessions (two hours each). An introduction to the labs is given as a separate lesson, in which the teaching assistant will introduce you to the programming project and its evaluation (see the lesson page for more information). The project is to be done in groups of two students (using one computer). You should keep the same partner for all the labs. You are expected to read and prepare the material related to the labs before going to the corresponding supervised sessions. In this way, you may take more advantage of the session time. The laboratory sessions are intended for asking questions, getting help from your teaching assistant, and demonstrating your implementation for each lab when it is complete. You will obtain two credits for the programming project.

Registration

You should choose your partner for the programming project and sign up through Webreg (log in with your LiU-ID). When registering, you may select any group (A or B, see the course schedule). We reserve the right to merge singleton groups and migrate between groups to balance lab group sizes. The deadline for the lab registration is January 18, 2024.

Working remotely

Outside the lab sessions, in order to provide a functional environment, we recommend connecting and working remotely from a LiU server.
You have three options for connecting and working remotely: connecting via RDP, ThinLinc or ssh (the latter is not recommended for performance reasons). Information about each of them can be found on the remote connection info page by LiU-IT.

Content

The programming project is composed of six labs:

  1. Standalone Database
  2. Client-Server Database
  3. Middleware: Object Request Brokers
  4. Middleware: Peer-to-Peer Communications
  5. Middleware: Distributed Locks
  6. Client-Server Database with Replicas

Getting the labs/lab skeleton

The descriptions and source codes of the labs can be found in the TDDD25/labs repository hosted on LiU’s GitLab, which you might be familiar with from other courses at LiU.

You can either go to the web page of the repository and download the repository as a single zip archive using the Download ZIP button or clone the repository using the following command:
git clone https://gitlab.liu.se/LiU-TDDD25/labs.git

Forking

The preferred method is to do the following:

  1. Log in to gitlab.liu.se with your LiU-ID
  2. Go to the course lab repo.
  3. Press the Fork button.
  4. Change the name to a project name such as tddd25-labs-[YOUR LIUID]-[PARTNERS LIUID]. Change the visibility to Private (you should not let anyone else read your code). Fork the project.
  5. Add your lab partner as a developer.
  6. Add me (andma54) as a reporter, with expiration date at the end of the year.

Please note that slight updates to the labs are possible. Keep track of the errata heading (see below) after the first lab session. If you have forked the repo, an "Update fork" button will turn up in gitlab when you visit the repo.

For convenience, here are direct links to the descriptions of the labs:

  1. Standalone Database
  2. Client-Server Database
  3. Middleware: Object Request Brokers
  4. Middleware: Peer-to-Peer Communications
  5. Middleware: Distributed Locks
  6. Client-Server Database with Replicas

Presenting and handing in

In order to pass the programming project, students are required to demonstrate each of the labs to their teaching assistant. The deadline for demonstrating all the labs is March 6, 2024 (last lab session for your group).

After the deadline, you can still submit your assignments, but scheduling a demonstration might require waiting until the next exam period (May-June, August).

UPDATE: After demonstrating, please hand in via GitLab as mentioned. Commit and push to your repo. Then send an email to your course assistant with a subject such as TDDD25: Lab0 liuid123-liuid123 (with your group's LiU-IDs). The email should contain a link to your repo in GitLab, and the commit hash from when you handed in. It is fine to send in a link directly to the 'commit' in GitLab.

Errata and updates

  • 240115-17 Pushed and added questions.

Page responsible: Christoph Kessler
Last updated: 2024-01-17