Lehre » Winter 20/21 » Algorithms and Data Structures

## Bridge Course Algorithms and Data Structures (WS 20/21)

A blended learning bridge course for master students with little background in theoretical computer science.

This course is only open for students of the following Master programs:

**Data Science**
**Computational Social Systems**

(Students from other programs may of course watch the video lectures and study the text book on their own.
However, they can neither register for the exam, nor take the exam, and in particular they
cannot receive credit points for this course.)

#### Registration Process

Currently, the registration in RWTHonline does not work. Neither the registration for the lecture nor for the exam. Therefore, please write a e-mail to fuchs(at)algo.rwth-aachen.de containing your course of study, matriculation number and your name. Sorry for the inconvience.

#### Exam

New: All written exams are exchanged by oral exams using zoom. If you requiere more infromation, please write an email at fuchs(at)algo.rwth-aachen.de

Old: At the end of the term, there will be two written exams of 90 minutes. One on the 25.02 from 12:30 to 14:00 and the other on the 25.03 from 12:30 to 14:00.

Here you can find an old exam. The exam is only an example for an exam and does not cover all the topics from the course that could occur in an exam. So please, make sure to learn all the topics from the course to prepeare for the exam.

#### Recommended exercises

On top of the

[problems and exercises]
posed at the MIT page, we also recommend the following exercises and problems from the book by Cormen et al (

**2nd edition**).
Exercises are shown in black, and problems (listed in the final section of every chapter)
are shown in

red color.

- Lecture 1: 1.2-3, 2.1-2, 2.2-2, 2.3-3, 2.3-5; 2-2
- Lecture 2: 3.1-2, 3.2-3; 3-2, 3-4; 4.2-1; 4.3-1; 4-4
- Lecture 3: 28.2-2, 28.2-6
- Lecture 4: 7.1-2, 7.2-1, 7.3-1, 7.4-2
- Lecture 5: 8.1-1, 8.1-3, 8.2-2, 8.3-2, 8.4-2
- Lecture 6: 9.1-1, 9.3-1, 9.3-2, 9.3-8, 9.3-9
- Lecture 7: 11.1-2, 11.2-1, 11.2-5, 11.3-3, 11.3-4
- Lecture 9: 12.1-1, 12.1-2, 12.1-4, 12.2-4, 12.3-3, 12.3-5
- Lecture 15: 15.1-2, 15.1-3, 15.4-1, 15.4-2, 15.4-5
- Lecture 16: 23.1-1, 23.1-3, 23.1-5, 23.2-1, 23.2-4, 23-3
- Lecture 17: 24.3-1, 24.3-2, 24.3-3, 24.3-4, 24.3-8
- Lecture 18: 24.1-1, 24.1-2, 24.1-4, 24.2-4, 24.4-2, 24.4-6

#### Material

The course is self paced and consists of 12

[video lectures] from MIT Open CourseWare.

The

[course material] has been developed by Prof Charles Leiserson and Prof Erik Demaine.

- Lecture 1: Introduction; Analysis of Algorithms, Insertion Sort, Mergesort
- Lecture 2: Asymptotic Notation; Recurrences; Substitution, Master Method
- Lecture 3: Divide-and-Conquer: Strassen, Fibonacci, complete binary trees
- Lecture 4: Quicksort, Randomized Algorithms
- Lecture 5: Linear-time Sorting: Lower Bounds, Counting Sort, Radix Sort
- Lecture 6: Order Statistics, Median
- Lecture 7: Hashing, Hash Functions
- Lecture 9: Binary search trees
- Lecture 15: Dynamic Programming, Longest Common Subsequence
- Lecture 16: Greedy Algorithms, Minimum Spanning Trees
- Lecture 17: Shortest Paths I: Properties, Dijkstra's Algorithm, Breadth-first Search
- Lecture 18: Shortest Paths II: Bellman-Ford, Linear Programming, Difference Constraints

#### Book

The underlying text book is

*"Introduction to Algorithms"*
by Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, and Clifford Stein, MIT Press.

All references to chapters (and in particular: all numbers of exercises and problems) concern the

**2nd edition**
of the book; the other editions contain essentially the same information, but slightly deviate in the numbering
of chapters and exercises.

#### Contact

fuchs(at)algo.rwth-aachen.de