10 credits in computer programming (Program Design, Programming Techniques II, or the equivalent) and 10 credits in mathematics, including basic algebra. Alternatively 45 credits in the Master's Programme in Language Technology (HSP2M).
The course treats a number of fundamental data structures such as linked lists, stacks, queues, and trees, as well as more advanced data structures. These structures can be used to implement sequences, sets and graphs - where different choices have different effects on the usage of memory and time. An important part of the course is the mathematical analysis of the execution time as a function of the size of the problem. The course treats also general principles for the construction of algorithms, as well as questions like "What is theoretically the fastest possible way to solve this problem?".