Single-Course Engelsk 5 ECTS

Algorithms and Data Structures 2

Overall Course Objectives

To provide the student with an understanding of the techniques involved in the construction and analysis of advanced algorithms. To strengthen the student’s ability to construct algorithms.

See course description in Danish

Learning Objectives

  • Describe an algorithm accurately, concise and unambiguous.
  • Apply algorithms and data structures from the course.
  • Analyze algorithms and data structures, including being able to determine the worst case, expected, and amortized running time and space consumption in asymptotic notation.
  • Argue for the correctness of algorithms.
  • Identify and formulate the underlying algorithmic problem in a given problem.
  • Analyze, evaluate, and compare algorithms / data structures and in the light of this, select an appropriate algorithm / data structure for solving a given problem.
  • Use flow graphs to model a given problem.
  • Modify algorithms and data structures to solve a given problem.
  • Compare different algorithmic paradigms (fx. divide-and-conquer, dynamic programming, randomized algorithms, and flow algorithms) and select an appropriate one for solving a given problem.
  • Recognize an NP-complete problem and prove that it is NP-complete.
  • Implement and test data structures and algorithms, and make appropriate tests and empirical analysis of them.
  • Argue for choices made when solving a problem.

Course Content

Flow algorithms. Data structures for indexing and partial sum (fx. hash tables, Fenwick trees). Algorithms for string matching. Techniques for the design and analysis of algorithms (dynamic programming, divide-and-conquer, randomized algorithms and data structures, analysis of expected running times, and amortized analysis). NP.

Recommended prerequisites

02105/02326, The course builds on 02105 Algorithms and Data Structures I. Students are expected to know the curriculum for 02105, which includes

Basic algorithm analysis, asymptotic notation.
Data structures: stacks, queues, linked lists, trees, heaps, priority queues, union-find, balanced binary search trees.
Searching and sorting: binary search, heap sort, insertion sort, merge-sort.
Graph algorithms: single source shortest paths (Dijkstra and SSSP in DAGs), Minimum spanning trees, topological sorting, Breadth first search, Depth first search, representation of graphs.

Teaching Method

Lectures and exercises.

See course in the course database.

Registration

Language

Engelsk

Duration

13 weeks

Institute

Compute

Place

DTU Lyngby Campus

Course code 02110
Course type Bachelor
Semester start Week 36
Semester end Week 49
Days Thurs 8-12
Price

9.250,00 DKK

Registration