IDATT2101
Algorithms and data structures
Autumn
Trondheim
Norwegian
About this course
Content
This course covers:
1. Techniques and algorithms: Abstract data types, Recursion, sorting, search, hashing, shortest path, maximum flow, data compression, greedy algorithms, dynamic programming
2. Data structures: array, lists, queues, stack, tree, graph
3. Theory on complexity and asymptotic notation. Time and space complexity
Learning outcomes
Knowledge
The candidate should:
- know, and be able to explain, various algorithms for sorting, searching and graph theory
- be able to describe and explain various data structures (arrays, linked lists, queues, stacks, trees and graphs)
- understand the recursive approach to problem solving and programming
- be able to compare algorithmic complexity, and select the most sustainable solution
- be able to describe compelxity classes and np-completeness
Skills
The candidate should be able to:
- use several known algorithms to solve practical programming problems in an efficient way
- write code solving advanced and complex problems
- handle advanced data structures, particularly trees and graphs
General competence
The candidate should be able to combine standard algorithms to make bigger program units.
Teaching methods
Lectures & exercises