The course covers data structures and techniques for constructing efficient algorithms, including their analysis with respect to efficiency. It stresses the importance of adapting standard algorithms and data structures to the peculiarities of both the given problem and the underlying hardware, because efficiency does not only depend on the intrinsic asymptotic efficiency of an algorithm, but also on the context in which it is applied.
Typical algorithmic techniques are divide-and-conquer, greedy methods, and dynamic programming. As efficient data structures form the basis for many of these techniques, important data structures, their analysis and advantages and disadvantages depending on circumstances are covered as well. Examples of data structures to be covered are heaps, disjoint sets, and tree data structures.
Univ: To be admitted you must have (or equivalent) 90 ECTS-credits including 60 ECTS-credits in Computing Science or two years of completed studies within a study programme (120 ECTS-credits). In both cases, the studies must include at least 7.5 ECTS-credits with in discrete mathematics (e.g. 5MA143), at least 7.5 ECTS-credits within formal languages (e.g. 5DV037 or 5DV169 together with 5DV162), and at least 7.5 ECTS-credits within data strutuces and algorithms (e.g. 5DV149, 5DV150 ort 5DV169). A Bachelor's degree with a major in Computer Science is considered to be equivalent.
Proficiency in English equivalent to Swedish upper Secondary course English A/5. Where the language of instruction is Swedish, applicants must prove proficiency in Swedish to the level required for basic eligibility for higher studies.