Single-Course Dansk 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.

See course description in Danish

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.

Faculty

See course in the course database.

## Registration

Language Dansk 13 weeks Compute DTU Lyngby Campus 02326 Graduate Engineer Week 6 Week 20 Thurs 8-12
Price 9.250,00 DKK