Data structures and algorithms
Data structures and algorithms are fundamental building blocks in almost all software products. Knowledge of data abstraction, data structures, and algorithms is important in the construction, use, and maintenance of adaptable, reusable, and efficient program components.
The course gives knowledge and skills in the construction and use of data structures and algorithmic concepts, and gives an introduction to algorithm analysis and data abstraction.
Here you can find general information that are common to (almost) all courses in data structures and algorithms, given at Chalmers University of Technology and University of Gothenburg (GU).
Note: The information in these pages is not accurate for the course DIT962!
Teacher team
The following are the team of teachers giving the different course instances. We develop the courses collaboratively.
- Peter Ljunglöf
- Jonas Duregård
- Christian Sattler
- Hazem Torfah
- Alex Gerdes
Organisation and examination
The course consists of two “modules”: one (4.5hp) is the written examination, and one (3.0hp) are the assignments. (Except the course DAT525 which only has 1.5hp assignments)
Literature
Lectures
- On average three times per week. The may include some exercises.
- For more details, see the Canvas page for your course.
Assignments
- There are 4 compulsory assignments (called laborations).
- DAT525 only has 3 assignments (the 4th one is not included). This is because DAT525 only gives 6.0hp, while the other ones give 7.5hp.
- Every assignment has two main deadlines:
- You must submit something for the first deadline, even if it’s not working.
- The teachers grade and comment on the first submission, and if it’s not accepted, you have until the final deadline to correct your solution.
- The first laboration is individual.
- The laborations 2–4 are done in groups of at most 3 students.
- The labs can be done in Java or Python, and it’s up to the lab group to decide.
- There are lab supervision sessions where you can get help from course assistants.
- The labs/assignments are not graded, but you have to pass all of them.
- In addition, you have to complete individual Canvas quizzes to get a passing grade on the assignments.
More information:
Weekly exercises
- Every week we will publish new quizzes and exercises which will help you in your learning.
Written examination
Upcoming exam dates:
- 2024: 11 January, 12 March, 30 May, 22 August, 27 October
- 2025: 16 January, 5 June, 21 August, end of October (date not decided yet)
Passing the course
- To pass the course you need to pass all 4 laborations (or 3 for DAT525), and the written examination.
- The final grade is the same as the grade on the written examination.
Course instances
Note: The academic year is divided into four study periods (läsperioder, LP), where LP1 is September–October, LP2 is November–January, LP3 is January–March, and LP4 is March–June.
LP1, TDA417+DAT525
- Only Chalmers students
- Compulsory in the Chalmers programs TKITE, TKIEK, and TKAUT
- Course responsible: Jonas Duregård
LP2, DAT038+DIT182
- Both Chalmers and GU students
- Compulsory in the Chalmers programs TKDAT and TKTEM
- Elective in the Chalmers programs TKELT, TKGBS, TKMAS, TKMED, and TKTFY
- Elective in the GU programs N1MAT, N2MAT and N2ADS
- Also a single-subject course (fristående kurs) at GU
- Course responsible: Peter Ljunglöf and Hazem Torfah
LP4, DIT183+DAT495
- Both Chalmers and GU students
- Compulsory in the GU program N1SOF, and in Chalmers program TIDAL
- Given at the Lindholmen campus (spring 2025)
- Course responsible: Christian Sattler
LP4, DIT962
- Only GU students
- Compulsory in the GU program N1COS
- Also a single-subject course (fristående kurs) at GU
- Course reponsible: Alex Gerdes
- Note: this course has a slightly different syllabus that includes functional programming