CS-A1140: Data Structures and Algorithms
| Course name | Data Structures and Algorithms |
|---|---|
| Course code | CS-A1140 |
| Abbreviation | DSA |
| Period | I-II |
| Lecturer | Lukas Ahrenberg & Tomi Junttila |
Description
Compulsory course introducing fundamental data structures and algorithms in Scala. Topics include sorting, searching, hashing, dynamic programming, graph algorithms, and parallel algorithms.
Course material
Official material
A+ online platform with weekly chapters, quizzes, programming exercises, and an optional textbook based on Introduction to Algorithms.
Extra material
IntelliJ IDEA documentation and online videos.
Contents and workload
Overall workload
Approximately 7–9 hours of work per week. The middle weeks are the most demanding.
Weekly contents
| Week | Topics |
|---|---|
| 1 | Big-O notation, basic data structures |
| 2 | Sorting algorithms |
| 3 | Trees and heaps |
| 4 | Binary search trees |
| 5 | Hashing |
| 6 | Dynamic programming |
| 8–9 | Graphs and graph algorithms |
| 10 | Parallel algorithms |
| 11 | NP-completeness, graph colouring |
| 12 | Extra assignments |
| 13–14 | Revision and final exam |
Practicalities
Weekly A+ programming exercises together with a mandatory final written exam. Exercise sessions are available.
Related courses
Official prerequisites
- CS-A1120 Programming 2
Additional prerequisites
- CS-A1110 Programming 1
- MS-A0111 Differential and Integral Calculus 1
- MS-A0011 Differential and Integral Calculus 2
- MS-A050X First Course in Probability and Statistics
More like this
- MS-E1050 Graph Theory D
- CS-E4580 Programming Parallel Computers D
- CS-E4500 Advanced Course in Algorithms D
- CS-E4595 Competitive Programming D