Tentalabbet

ETE388 · 3 credits · Advanced level (A1X) · Datavetenskap

Algorithmic Problem Solving: Search and Dynamic Programming

Active · next start HT 2026

100%

passed the latest regular sitting

LAB1 · 2 Sep 2026 · 10 students

100%

passed the regular sittings, all sittings over the last 5 years

LAB1 · 43 students

This module only reports passing results, so the pass rate does not show how many did not pass.

Hand-in or lab

LAB1 Laboratory work

  • 5
  • 4
  • 3

Main rounds

100% passed · 43 students

  • 100%10
  • 100%15
  • 100%18

Later rounds

100% passed · 38 students

  • 100%12
  • 100%14
  • 100%7
  • 100%5
  • Pass a later round: 100% (38 students), compared with 100% (43 students) on the ordinary exam
  • Get 4 or 5: 35% (81 students)
Show small sittings (32)

Sittings with fewer than 5 students, often credit transfers or special sittings. They are not part of any figure on this page.

  • 100%1
  • 100%1
  • 100%3
  • 100%1
  • 100%1
  • 100%4
  • 100%2
  • 100%2
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%4
  • 100%2
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%2
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%1
  • 100%3
  • 100%3

About the course

Aim

The goal of the course is to develop the ability to solve algorithmic problems by utilizing knowledge of algorithms, data structures and complexity theory with a focus on search and dynamic programming. To solve this type of problem, it is important to be able to analyze the problem, choose or design an algorithm, determine how much resources (time and memory) the algorithm requires and to implement and test the algorithm quickly and correctly.

Intended learning outcomes:

  • Knowledge of common algorithms and data structures related to search and dynamic programming.
  • The ability of implementing algorithms and data structures related to search and dynamic programming.
  • The ability of solving algorithmic problems related to search and dynamic programming.
  • The ability of analysing the efficiency of different approaches to solving a problem, with a focus on search and dynamic programming, to determine which approaches will be efficient enough in a given situation.

Content

Successful problem solving in computer science requires a solid theoretical foundation as well as ability to apply the theory to practical problem solving. The aim of this course is to develop your ability to solve complex algorithmic problems by applying knowledge of algorithms, data structures, and complexity theory. As a professional software developer, it is essential to being able to analyse a problem, chose or design an algorithm, judge the efficiency of a proposed algorithm, and to implement and test it quickly and correctly. In this course you will practice this by solving well defined algorithmic problems with a focus on search and dynamic programming.

The purpose is that the students should be able to use programming and algorithms, with a focus on search and dynamic programming, as an effective tool for problem solving, and should get opportunity to apply theoretical knowledge from other courses to solve practical problems.

The course covers search and dynamic programming, two general approaches to solving algorithmic problems. Many optimisation and string algorithms are based on dynamic programming such as the knapsack problem and string matching. Search methods that are covered includes binary search, depth first search, breadth first search, A* search, and heuristic search.

Examiner
Fredrik Heintz
Scheduled hours
0 h
Main field of study
Datavetenskap
Syllabus on Studieinfo ↗