Algorithms, Data Structures and Problem Solving

7,5 credits

The course aims at providing knowledge on algorithm complexity, algorithm design and classical data structures. The aim of the course is also to improve programming abilities in a modern programming language, currently Java.

The course builds on basic programming knowledge and practice and prepares the student to participate in larger programming projects. It introduces currently-accepted techniques to solve frequently occurring problems and prepares the student to make informed choices from several alternative solutions. The course also illustrates how some more advanced programming language constructs can be used.

On completion of the course the student shall be able to

  • explain how to estimate the execution time of programs
  • recognize techniques for algorithm design such as divide and conquer, recursion, dynamic programming
  • recognize datastructures and algorithms for search and sorting, such as quick sort, binary search trees, hash tables
  • identify the need and use data structures as modules to solve larger problems
  • use techniques for algorithm design in solving larger problems
  • judge how suitable a program is given its execution time
  • choose adequate implementations of datastructures from program libraries

Autumn 2020 (Campus based, Halmstad, 50%)


Basic level

Application code:


Entry requirements:

Basic course in programming techniques.

Selection rules:

Available for exchange students. Limited numbers of seats.

Start week:

week: 36

Number of gatherings:


Instructional time:


Language of instruction:

Teaching is in English.

Show education info