Course - Algorithms and data structures - IDATT2101
Algorithms and data structures
About
About the course
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 outcome
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.
Learning methods and activities
Lectures & exercises
Further on evaluation
The course consists of two parts: Written school exam and a portofolio. Both components of the assessment must be passed in order to receive a grade in the module.
Written exam:
- Written exam counts for 60% of the course.
- Examination aid: The candidate may bring a single A4 sheet with notes to the written exam.
- Re-sit exam in August might be changed to oral exam.
Portofolio:
- The portofolio counts for 40% of the course, where all exercises that is given is part of the portofolio.
- The portfolio consists of 7 to 9 programming exercises, that may also have theory questions.
- Students have one to three weeks to complete an exercise. Late delivery is possible, but yields lower grades.
- To pass the portfolio assessment, the candidate must pass a certain number of tasks. The number of tasks that must be passed to get assessment in the portfolio is told at semester start.
Resits and voluntary retakes/improvements may be carried out for certain components of assessment without the need to retake all components of the course.
In the event of voluntary repetition, fail (F) or valid absence, the portofolio must be retaken in a semester with teaching.
Specific conditions
Admission to a programme of study is required:
Computer Science - Engineering (BIDATA) - some programmes
Digital Infrastructure and Cyber Security (BDIGSEC)
Recommended previous knowledge
Programming 1, Programming 2 and Mathematical methods 2 for Computer engineering. The student must already be able to program in a common programming language.
Required previous knowledge
Students must be enrolled in the bachelor program in computer science at NTNU.
Credit reductions
| Course code | Reduction | From |
|---|---|---|
| LO117D | 6 sp | Autumn 2020 |
| LC118D | 7.5 sp | Autumn 2020 |
| TDAT2005 | 7.5 sp | Autumn 2020 |
| IDATA2302 | 7.5 sp | Autumn 2020 |
| TDT4120 | 7.5 sp | |
| TDT4121 | 7.5 sp | Autumn 2022 |
| IDATG2102 | 7.5 sp | Autumn 2026 |
Subject areas
- Engineering
Contact information
Course coordinator
Department with academic responsibility
Examination
Examination
Ordinary examination - Autumn 2026
Portfolio assessment
School exam
The specified room can be changed and the final location will be ready no later than 3 days before the exam. You can find your room location on Studentweb.