Algorithms and Data Structures WM-I-S1-E4-ASD
The course covers fundamental concepts related to the design, analysis, and implementation of algorithms, as well as the selection of data structures appropriate for the problem at hand. Topics include methods for evaluating algorithm correctness and complexity, asymptotic analysis of computational costs, and the relationship between data representation and processing efficiency.
The course introduces basic abstract data types and data structures—such as lists, stacks, queues, trees, and graphs—along with more advanced structures for the efficient storage, retrieval, and organization of data. It covers classic algorithms for searching, sorting, and processing trees and graphs, as well as selected algorithm design techniques, specifically recursion, divide-and-conquer, greedy algorithms, and dynamic programming.
Particular emphasis is placed on analyzing the interplay between the algorithm, the chosen data structure, and the computational cost. Students learn to design and implement solutions to algorithmic problems, analyze their correctness and complexity, and compare alternative approaches to solving the same problem.
(in Polish) Dyscyplina naukowa, do której odnoszą się efekty uczenia się
(in Polish) E-Learning
Term 2019/20_L: (in Polish) E-Learning (pełny kurs) z podziałem na grupy | Term 2021/22_L: (in Polish) E-Learning (pełny kurs) z podziałem na grupy | Term 2022/23_L: (in Polish) E-Learning (pełny kurs) z podziałem na grupy | Term 2023/24_L: (in Polish) E-Learning | Term 2024/25_L: (in Polish) E-Learning | Term 2025/26_L: (in Polish) E-Learning (pełny kurs) | Term 2026/27_L: (in Polish) E-Learning (pełny kurs) |
(in Polish) Grupa przedmiotów ogólnouczenianych
Course coordinators
Term 2026/27_L: | Term 2023/24_L: | Term 2022/23_L: | Term 2021/22_L: | Term 2025/26_L: | Term 2019/20_L: | Term 2024/25_L: |
(in Polish) Opis nakładu pracy studenta w ECTS
Term 2022/23_L: (in Polish) Wykład:
uczestnictwo w zajęciach: 30h
lektury, praca własna: 20h
razem: 50h, 2 punkty ECTS
Ćwiczenia:
uczestnictwo w zajęciach: 30h
praca własna: 40h
razem: 70h, 3 punkty ECTS | Term 2023/24_L: (in Polish) Wykład:
uczestnictwo w zajęciach: 30h
lektury, praca własna: 20h
razem: 50h, 2 punkty ECTS
Ćwiczenia:
uczestnictwo w zajęciach: 30h
praca własna: 44h
razem: 75h, 3 punkty ECTS | Term 2024/25_L: (in Polish) Wykład:
uczestnictwo w zajęciach: 30h
lektury, praca własna: 20h
razem: 50h, 2 punkty ECTS
Ćwiczenia:
uczestnictwo w zajęciach: 30h
praca własna: 44h
razem: 75h, 3 punkty ECTS | Term 2025/26_L: (in Polish) Wykład:
uczestnictwo w zajęciach: 30h
lektury, praca własna: 20h
razem: 50h, 2 punkty ECTS
Ćwiczenia:
uczestnictwo w zajęciach: 30h
praca własna: 44h
razem: 75h, 3 punkty ECTS | Term 2026/27_L: LECTURE
class attendance: 30 hours
exams outside of class: 3 hours
consultations: 4 hours
exam preparation: 13 hours
Total: 50 hours
1.5 ECTS – direct contact with the instructor
0.5 ECTS – independent work
EXERCISES
class attendance: 30 hours
consultations: 4 hours
class preparation and assignment completion: 30 hours
preparation for course credit: 11 hours
Total: 75 hours
1.4 ECTS – direct contact with the instructor
1.6 ECTS – independent work |
Subject level
Learning outcome code/codes
Type of subject
Preliminary Requirements
Learning outcomes
LECTURE
The student:
W1 – characterizes fundamental algorithm design techniques, including recursion, the divide-and-conquer method, greedy algorithms, and dynamic programming, and explains basic methods for analyzing algorithm correctness and complexity (I1_W05),
W2 – describes fundamental data structures, operations performed on them, and their complexity, and explains the criteria for selecting a data structure for a given problem (I1_W06),
W3 – characterizes classic algorithms for solving typical computer science problems—specifically searching, sorting, data organization, and tree and graph processing—and analyzes their fundamental properties (I1_W07).
EXERCISES
The student:
U1 – applies mathematical and computer science knowledge to formulate and analyze algorithmic problems and to construct solutions for them (I1_U02),
U2 – designs, implements, and analyzes algorithms using learned techniques and evaluates their correctness and computational cost (I1_U03),
U3 – selects and implements appropriate data representation methods and data structures, and evaluates their impact on algorithm efficiency (I1_U04),
U4 – applies methods for analyzing the cost of iterative and recursive algorithms, as well as selected methods for verifying their correctness and termination properties (I1_U05).
Assessment criteria
For all learning outcomes, the following assessment criteria are adopted for all forms of verification:
grade 5: fully achieved (no obvious shortcomings),
grade 4.5: achieved almost fully and criteria for awarding a higher grade are not met,
grade 4: largely achieved and the criteria for a higher grade are not met,
grade 3.5: largely achieved with a clear majority of positives and the criteria for granting a higher grade are not met,
grade 3: achieved for most of the cases covered by the verification and criteria for a higher grade are not met,
grade 2: not achieved for most of the cases covered by the verification.
Additional information
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: