Course - Algorithms and data structures - IDATT2101
Algorithms and data structures
Choose study yearAbout
About the course
Course content
This course covers:
1. Techniques and algorithms: Recursion, sorting, search, hashing, shortest path, maximum flow, greedy algorithms, dynamic programming
2. Data structures: array, lists, queues, stack, tree, graph
3. Theory on complexity and big O notation
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
- 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 subject consists of two parts: Written school exam and a portofolio.
Continuation and voluntary repetition/improvement can be carried out for some partial assessments without all partial assessments in a subject having to be taken up again.
Written exam:
Written exam counts for 60% of the subject.
The candidate may bring a single A4 sheet with notes to the written exam.
Re-sit exam might be changed to oral exam.
The re-sit exam is in August.
Portofolio:
The portofolio counts for 40% of the subject, where all exercises that is given is part of the portofolio. To pass the portofolio you must necessarily do some excersises.
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)
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 |
Subject areas
- Engineering