Data structures and algorithms

Information about the labs

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:

You can discuss the lab problems with students outside your lab group. You can discuss strategies on a high level. But you are not allowed to give away any solutions! We take plagiarism seriously (see Lab 3). Everything you do must be your own work. In particular, you are not allowed to use tools that write code for you (Copilot, ChatGPT, etc.).

Note for DAT525: This course is smaller, so you do not have to submit the final assignment (lab 4, path finder).

Schedule

Here is a very rough schedule for the labs, but please see your Canvas pages for more detailed deadlines. Note that the deadlines are strict!

Lab   Published First deadline Mid deadline Final deadline
Lab 1: Binary search Course start Week 2 Week 3 Week 4
Lab 2: Text indexing Week 2 Week 3 Week 4 Week 5
Lab 3: Plagiarism detection Week 4 Week 5 Week 6 Week 7  
Lab 4: Path finder Week 6 Week 7 Week 8 Exam week

You must submit something before the first deadline, even if it is not fully complete (you will get feedback for the parts you have done). You must have a passing submission before the final deadline. In addition there is a mid deadline: if you submit before you will get intermediate feedback.

The lab system

The lab projects are shared, submitted, and graded on Chalmers GitLab. This is a collaborative platform for software development similar to GitHub and Bitbucket, but hosted privately by Chalmers.

The full process is described on a separate page, but briefly:

More information is on the page Working with Chalmers GitLab.

Joining a group

Labs 2–4 are done in groups of three.

Once you have formed a group, assign yourselves to a free lab group in Canvas: Go to the People page and select the 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.

Note: If you want to switch to a different group for the next lab, move yourself to that group in Canvas.

Supervision

We offer lab supervision sessions each 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 specific Canvas page for more information.

To get a live supervision meeting, simply post your name (Lab 1) or group number (Labs 2–4) and where we can find you (for online requests, this should be a Zoom link). 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.

Supervision checkpoint

For Labs 2–4, you must pass a live supervision checkpoint. This is to demonstrate that all group members contributed to and understand the whole submission.

Of course, you can ask for regular supervision as many times as you like, independent of the checkpoint.