Course syllabus

All content in the course page will be found in the modules section (most of it will be added as the course progresses). 

Course-PM

  • TDA417 Datastrukturer och algoritmer, lp2 HT22 (7.5 hp)

Teachers and student representatives

  • Teachers: Jonas Duregård (examiner)
  • Teaching assistants: TBA

Preferred mode of contact is through Discord (join link in modules section). Otherwise email jonas.duregard@chalmers.se. Sensitive or urgent matters can be handled by phone: +46317721028. Lecture breaks are also a good time to talk to me. 

Language

The course material is in English. I plan to give the lectures in Swedish.

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.

Schedule

NOTE: All lectures will be given twice, once for TDA417 and once for DAT525, so if you miss a lecture (or like it so much you want to see it twice) and happen to have time on the other slot, you can attend it. Hereis a combined schedule for lectures.

The same is true for the lab supervision sessions, if there's room, it's fine if you attend sessions for the other course. Here is a combined schedule for supervision sessions (I'm doing some revisions to this currently). 

Schedule in TimeEdit (only TDA417).

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.

Lectures

  • Two or three times per week. May include some exercises. 

Assignments

  • There are 4 compulsory assignments (a.k.a. laborations)
  • 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 assignments are done in groups of 3 students.
    • Every student should find someone to team up with, and there is a Discord channel 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.
  • The assignments are not graded, but you have to pass all of them.

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. 
  • You are allowed to bring one double sided A4 sheet of hand written notes to the exam. It can contain anything you want, though a summary of the course material is a popular choice. The sheet must be handed in with the exam, but only for the purpose of determining if it adheres to the rules (and to make grading more entertaining, the sheets are sometimes quite the works of art). You can get the sheet back afterwards if you need it for a re-exam or want to frame it and hang it on your wall.

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 syllabi on Studieportalen.

Course summary:

Date Details Due