Note (2026-03-20): This information is currently receiving updates. Please see your Canvas course page for definite information.
We have four compulsory laborations that give you hands-on experience with key concepts from the course. These laborations are programming projects, but also include textual reasoning parts. We offer each lab in Java and Python (you can choose). The laborations do not have a grade, but you have to pass all of them:
Note for DAT525: This course is smaller, so you do not have to submit the final assignment (lab 4, path finder).
This lab assignment is part of the examination of the course. Therefore, everything you do must be entirely your own work. You can discuss problems and high-level strategies with other students, but you must not copy or give away solutions. We take plagiarism seriously (see Lab 3).
The provided material is to be used only for solving the assignment. You are not allowed to distribute any parts of the lab material, even after the course has ended. In particular, you are not allowed to share any part of the instructions or code with LLMs.
You are not allowed to use LLMs (Copilot, Claude, Cursor, ChatGTP, etc.) to help you solve the labs.
Here is a very rough schedule for the labs, but please see your Canvas pages for more detailed deadlines.
| Lab | Published | Status update | Final deadline |
|---|---|---|---|
| Lab 1: Binary search | Course start | Week 1 | Week 2 |
| Lab 2: Text indexing | Week 2 | Week 3 | Week 4 |
| Lab 3: Plagiarism detection | Week 4 | Week 5 | Week 6 |
| Lab 4: Path finder | Week 6 | Week 7 | Week 8 |
The lab projects are shared and submitted on Chalmers GitLab. This is a collaborative platform for software development similar to GitHub and Bitbucket, but hosted privately by Chalmers.
The technincal details are described on the page Working with Chalmers GitLab, but briefly:
status-update or submission-(Something).
A merge request will be opened for your submission.Watch for spelling mistakes when creating tags!
We offer lab supervision sessions every week where you can (and should!) get help from course assistants. You can choose which and how many you want to attend. Consult TimeEdit to find them.
During each session, we maintain a queue of supervision requests. See your Canvas course page for more information.
To get a supervision meeting, simply post your name (Lab 1) or group number (Labs 2–4) and where we can find you. A course assistant will join you as soon as possible.
Note: You can always use the course discussion channels to get help. Outside the lab sessions, it may take longer to get an answer.
For each lab, you must pass an interactive assessment in a supervision session before the final deadline. This is to demonstrate that all group members contributed to, understand, and can explain the whole submission.
You must make a submission before you can get an interactive assessment. The grader will then go through your submission together with you. If you do not pass, you can retry the interactive assessment in another supervision session.
For the longer labs 2–4, we also require an intermediate status update. This is to force you to start working early enough and provide early feedback.
See your Canvas course page for how to the booking of status updates and interactive assessment will work.
Labs 2–4 are done in groups of two or three students (depending on your course).
Once you have formed a group, assign yourselves to a free lab group in Canvas: go to the People page and select the Lab groups tab. You will be added to the lab project on Chalmers GitLab as soon as it is published.
Note: All group members need to actively contribute to the whole submission and be able to explain all your work. If you have trouble with a slacking member, contact the course-responsible teacher.
Note: If you want to switch to a different group for the next lab, contact the course-responsible teacher.