Data Structures and Algorithms

Course page (outside Moodle)
This course is not present in Moodle. You can visit its homepage by clicking the "Course page (outside Moodle)" button on the right (if available).
Data Structures and Algorithms AD7B36DSA
Credits 6
Semesters Winter
Completion Assessment + Examination
Language of teaching Czech
Extent of teaching 14KP+6KC
Annotation
Correctness and complexity of algorithms; sequences; hashing (associative arrays); sorting and searching; priority queues; generic optimization; software engineering perspective on algorithmics.
Study targets
Students of this course should learn:
- a library of fundamental algorithms,
- to tweak these algorithms according to the problem at hand,
- to recognize situations in which these algorithms are applicable,
- to analyze effectiveness of algorithms,
- to formally reason about the correctness of algorithms and
- to exercise exact thinking and expressing.
Course outlines
1. Complexity of algorithms
2. Correctness of algorithms
3. Average complexity
4. Randomized algorithms
5. Sequences
6. Hashing
7. Sorting and searching
8. Priority queues
9. Sorted sequences
10. Generic optimization
11. Software engineering perspective on algorithmics
Exercises outlines
1. Complexity of algorithms
2. Correctness of algorithms
3. Average complexity
4. Randomized algorithms
5. Sequences
6. Hashing
7. Sorting and searching
8. Priority queues
9. Sorted sequences
10. Generic optimization
11. Software engineering perspective on algorithmics
Literature
1. K. Mehlhorn, P. Sanders: Algorithms and Data Structures: The Basic Toolbox
2. K. Weihe: A Software Engineering Perspective on Algorithmics
3. Course webpage: http://ocw.cvut.cz/moodle/course/view.php?id=471 (key: dsa)
Requirements
Basic knowledge of programming; exact thinking.
Responsible for the data validity: Study Information System (KOS)