Course syllabus

All content in the course page will be found in the modules section.


  • DAT038 Datastrukturer och algoritmer, lp2 HT23 (7.5 hp)

Teachers and student representatives

  • Teachers: Peter Ljunglöf (examiner), Hazem Torfah
  • Teaching assistants: Carlos Tomé Cortiñas, Prabhat Kumar Ja, Guilherme Silva, Adam Magnusson, Erik Tran Simonsson, Filip Herbertsson, Marcus Johansson, Samuel Collier Ryder, Omar Sulaiman, Albert Vesterlund, Axel Solhall, Dennis Christensen, Filip Nordmark, Ghaith Abou Dan, Joel Andersson, Malte Ahlskog, Osama Al Sheikh Ali, Rachel Lambda Samuelsson, Valdemar Stenhammar, Victor Song, Emilia Nicander, Reza Rezvan

Preferred mode of contact is through Slack or email to Or by talking to any of the teachers, e.g., in a lecture break.

Student representatives:

  • TKAUT:
  • TKDAT: 
  • TKTEM:
  • TKGBS:
  • TKMED:
  • other:

Course purpose

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.


Lectures are given twice a day, you only have to attend one of them:

  • Mondays 13–15 and 15–17
  • Tuesdays 13–15 and 15–17
  • Thursdays 8–10 and 13–15
  • There is also an extra QA session / exercise help / repetition session on Wednesdays 8–10 (we might cancel these if there is not enough interest)
  • Most lectures are given in HB4, but see TimeEdit for changes

Supervision is offered the following time slots:

  • Mondays 9–12
  • Tuesdays 9–12
  • Wednesdays 13–16
  • Thursdays 9–12 and 13–16
  • Fridays 13–16

Course literature

The main course book is a modified version of the online book, Open Data Structures and Algorithms. Some additional material will be made available during the course. 

A very good additional book is Robert Sedgewick and Kevin Wayne (2011). Algorithms, 4th edition. You can find this book as a quite inexpensive online book.

Other interesting books and useful websites are listed under Reading material.

Course organisation and examination

The detailed schedule is in TimeEdit, and details about the lectures and assignments are in the Modules, but here is some general information.


  • Three times per week. May include some exercises. 


  • There are 4 compulsory assignments
  • Every assignment has two 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 second deadline to correct your solution.
  • The first laboration is individual.
  • The laborations 2–4 are done in groups of 3 students.
    • Every student should find someone to team up with, and there are Slack channels to help you find lab partners.
    • 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.
  • Lab supervision will be done both on campus, and online via Zoom.
  • The assignments are not graded, but you have to pass all of them.

Weekly exercises

  • Every week we will publish new quizzes and exercises which will help you in your learning.

Written examination

  • There is a written exam at the end of the course; as usual it is compulsory and individual.
  • Your final course grade will be decided from your result on the written exam. 
  • There is also an additional pass/fail-only exam just before Christmas. Read more about it here.

Passing the course

  • To pass the course you need to pass all 4 laborations, and the written examination.
  • The final grade is the same as the grade on the written examination.

Learning objectives and syllabus

You can read the complete syllabus on Studieportalen.

Course summary:

Date Details Due