Single-Course Danish 5 ECTS

Algorithms and Data Structures

Overall Course Objectives

The course introduces a number of fundamental concepts and techniques for construction and analysis of efficient algorithms and data structures. To be able to describe, evaluate, and apply fundamental/basic algorithms and data structures. And to be able to analyze an algorithm with respect to running time and use of resources.

Learning Objectives

  • Describe an algorithm in an understandable way, i.e., accurately, concise and unambiguous.
  • Perform basic analyses of algorithms, including being able to calculate running times and space usage
  • Identify and formulate the underlying algorithmic problem in a given problem.
  • Apply basic data structures like stacks, queues, linked lists and hash tables.
  • Apply and analyze basic graph algorithms, for example BFS, DFS and Dijkstra’s algorithm.
  • Implement and test data structures and algorithms, and make appropriate tests and empirical analysis of them.
  • Analyze, evaluate, and compare algorithms / data structures and in the light of this, select an appropriate algorithm / data structure for solving a given problem.
  • Modify known algorithms to solve a given problem.
  • Describe and compare different algorithmic paradigms, including recursion, greedy algorithms, and divide-and-conquer.
  • Communicate solutions to problems in a clear and precise manner
  • In a clear understandable language argue for choices made when solving a problem.
  • Analyse a given problem and make qualified choices to solve the problem based on the analysis.

Course Content

The concept of algoritthms, graphs and trees, recursion and iteration, fundamental algorithms for sorting of data, techniques to analyze complexity of algorithms (running time analysis, analysis of space usage), O-notation, etc. Elementary data structures (stacks, queues, linked lists, etc), advanced data structures (hash tabels, binary search trees, etc), graph algorithms (BFS, DFS, topological ordering, …), greedy algorithms and divide-and-conquer algorithms.

Recommended prerequisites

01904/62506/02312/02314/62507, An introductory course in programming + an introductory course in discrete mathematics. (e.g. 01904).

Teaching Method

Lectures and exercises.


See course in the course database.





13 weeks




DTU Lyngby Campus

Course code 02326
Course type Graduate Engineer
Semester start Week 5
Semester end Week 19
Days Thurs 8-12

7.500,00 DKK