02105 Algorithms and Data Structures 1

2024/2025

Course information
Algoritmer og datastrukturer 1
English
5
BSc
Offered as a single course
Technology Core Courses, see more
Technology Core Courses, Artificiel Intelligence and Data
Technology Core Courses, Cybertechnology
Technology Core Courses, General Engineering
Technology Core Courses, Software Technology
Technology Core Courses, Data Science and Management
Programme specific course (BSc), see more
Programme specific course (BSc), Data Science and Management
Programme specific course (BSc), Artificial Intelligence and Data
Programme specific course (BSc), Cybertechnology
Programme specific course (BSc), Software Technology
Programme specific course (BSc), General Engineering
Programme specific course (BSc), Computer Engineering
Programme specific course (BSc), Biomedical Engineering
Elective course (B Eng), see more
Elective course (B Eng), Mobility, Transport and Logistics
Elective course (B Eng), Manufacturing and Management
Elective course (B Eng), Global Business Engineering
Elective course (B Eng), HealthcareTechnology
Elective course (B Eng), Architectural Engineering
Elective course (B Eng), Electrical Engineering
Spring F2B (Thurs 8-12)
Campus Lyngby
Lectures and exercises. Teaching will be available in both English and Danish as far as possible.
13 weeks
F2B
Written examination and exercises
Written exam: 4 hours
All Aid - no access to the internet :

Other than simple text editing software, electronic tools (e.g., AI, internet searching, etc.) are not permitted.

7 step scale , external examiner
02326
(02002/02003/02100/02101/02102).­(01017/01019) , An introductory course in programming + an introductory course in discrete mathematics. Or similar competences.
Philip Bille , Ph. (+45) 4525 3647 , phbi@dtu.dk
Inge Li Gørtz , Ph. (+45) 4525 3673 , inge@dtu.dk
01 Department of Applied Mathematics and Computer Science
http://courses.compute.dtu.dk/02105/
At the Studyplanner
General 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
A student who has met the objectives of the course will be able to:
  • Describe an algorithm in an understandable way, i.e., accurately, concise and unambiguous.
  • Argue for the correctness of algorithms.
  • Analyze algorithms, including being able to determine the running time and space consumption in asymptotic notation.
  • Identify and formulate the underlying algorithmic problem in a given problem.
  • Apply basic data structures like stacks, queues, linked lists and hash tables.
  • Use graphs to model a given problem.
  • Apply and analyze basic graph algorithms, for example BFS, DFS and Dijkstra's algorithm.
  • 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.
  • Implement and test data structures and algorithms, and make appropriate tests and empirical analysis of them.
  • In a clear understandable language argue for choices made when solving a problem.
Content
The concept of algorithms, graphs and trees, recursion and iteration, fundamental algorithms for sorting of data, techniques to analyze the complexity of algorithms (running time analysis, analysis of space usage), O-notation, etc. Elementary data structures (stacks, queues, linked lists, etc.), advanced data structures (heaps, binary search trees, etc.), graph algorithms (BFS, DFS, topological ordering, etc.).
Course literature
"Introduction to Algorithms" by Cormen, Leierson, Rivest and Stein.
Last updated
02. maj, 2024