Algorithms and Programming
Field of study: Mathematics
Programme code: W4-S1MT19.2024

Module name: | Algorithms and Programming |
---|---|
Module code: | W4-MT-S1-24-AiP |
Programme code: | W4-S1MT19.2024 |
Semester: | summer semester 2025/2026 |
Language of instruction: | Polish |
Form of verification: | exam |
ECTS credits: | 5 |
Purpose and description of the content of education: | 1. Elementy algorytmiki: problem i jego specyfikacja; algorytm i różne sposoby jego zapisu.
2. Elementy analizy algorytmów. Rozmiar danych, złożoność obliczeniowa (czasowa i pamięciowa). Typy złożoności: pesymistyczna, optymistyczna, średnia. Notacja asymptotyczna, rzędy wielkości funkcji.
3. Algorytmy iteracyjne i rekurencyjne; metoda dziel i zwyciężaj.
4. Algorytmy klasyczne w tym m.in.:
- obliczania pochodnej wielomianu za pomocą schematu Hornera,
- algorytmy Euklidesa w wersji iteracyjnej i rekurencyjnej wraz z zastosowaniami,
- operujące na liczbach (badania pierwszości liczby, zamiany reprezentacji liczb między pozycyjnymi systemami liczbowymi, działań na ułamkach z wykorzystaniem NWD i NWW),
- operujące na tekstach (porównywania tekstów, wyszukiwania wzorca w tekście metodą naiwną, szyfrowania tekstu metodą Cezara i przestawieniową),
- wyszukiwania elementów w dowolnej tablicy (algorytm sekwencyjny) oraz w tablicy uporządkowanej (metoda wyszukiwania binarnego)
- sortujące (sortowanie przez wstawianie, przez wybieranie, bąbelkowe, przez scalanie, szybkie),
- znajdowania określonego elementu w zbiorze: maksymalnego, lidera oraz idola,
- generowania liczb pierwszych metodą sita Eratostenesa,
- jednoczesnego wyszukiwania elementu najmniejszego i największego (algorytm iteracyjny oraz rekurencyjny wykorzystujący metodę dziel i zwyciężaj),
- szybkiego potęgowania liczb w wersji iteracyjnej i rekurencyjnej,
- problem wież z Hanoi (rozwiązanie rekurencyjne).
5. Różne metody i techniki programowania:
- podejście zachłanne (wydawania reszty najmniejszą liczbą nominałów, pakowanie plecaka),
- programowanie dynamiczne (pakowanie plecaka, szukania najdłuższego wspólnego podciągu),
- algorytmy z nawrotami (problem n-hetmanów).
6. Implementacja poznanych algorytmów w wybranym języku programowania wysokiego poziomu. |
List of modules that must be completed before starting this module (if necessary): | not applicable |
Learning outcome of the module | Codes of the learning outcomes of the programme to which the learning outcome of the module is related [level of competence: scale 1-5] |
---|---|
testuje na komputerze swoje programy pod względem zgodności z przyjętymi założeniami i ewentualnie je poprawia, objaśnia przebieg działania programów [AiP_01] |
KN_I_U04 [5/5] |
formułuje problem w postaci specyfikacji (czyli opisuje dane i wyniki) i wyróżnia kroki w algorytmicznym rozwiązywaniu problemów; zna pojęcie algorytmu i stosuje różne sposoby przedstawiania algorytmów, w tym w języku naturalnym, w postaci schematów blokowych, listy kroków, w pseudokodzie oraz w wybranym języku programowania [AiP_02] |
KN_I_W03 [5/5] |
zna i zapisuje klasyczne algorytmy za pomocą listy kroków, schematu blokowego lub pseudokodu oraz implementuje je w wybranym języku programowania; zna i omawia sytuacje, w których wykorzystuje się klasyczne algorytmy [AiP_03] |
KN_I_W03 [5/5] |
zna podstawowe własności algorytmów; prezentuje przykłady zastosowań algorytmiki w innych dziedzinach nauki [AiP_04] |
KN_I_W03 [3/5] |
rozwija znajomość algorytmów i wykonuje eksperymenty z algorytmami; rozumie potrzebę programowania z użyciem zaawansowanych algorytmów [AiP_05] |
KN_I_W03 [3/5] |
zna i rozumie pojęcie złożoności obliczeniowej (czasowej i pamięciowej) oraz notacji asymptotycznej [AiP_06] |
KN_I_W03 [4/5] |
potrafi przeprowadzić analizę złożoności obliczeniowej danego algorytmu [AiP_07] |
KN_I_U03 [4/5] |
zapisuje wybrane algorytmy klasyczne w postaci iteracyjnej lub/oraz rekurencyjnej [AiP_08] |
KN_I_U03 [5/5] |
porównuje działanie różnych algorytmów dla wybranego problemu, analizuje algorytmy na podstawie ich gotowych implementacji [AiP_09] |
KN_I_U03 [4/5] |
zna różne metody i techniki programowania: podejście zachłanne, programowanie dynamiczne, programowanie z nawrotami [AiP_10] |
KN_I_W03 [3/5] |
Form of teaching | Number of hours | Methods of conducting classes | Assessment of the learning outcomes | Learning outcomes |
---|---|---|---|---|
lecture [AiP_fs_01] | 25 |
Formal lecture/ course-related lecture [a01] Screen presentation [c07] |
exam |
AiP_03 |
discussion classes [AiP_fs_02] | 15 |
Activating method – peer learning [b08] Activating method – flipped classroom [b09] Working with another teaching tool [d03] Individual work with a text [f02] |
course work |
AiP_01 |
laboratory classes [AiP_fs_03] | 20 |
Activating method – peer learning [b08] Activating method – flipped classroom [b09] Working with a computer [d01] Laboratory exercise / experiment [e01] Individual work with a text [f02] |
course work |
AiP_01 |
The student's work, apart from participation in classes, includes in particular: | ||
---|---|---|
Name | Category | Description |
Search for materials and review activities necessary for class participation [a01] | Preparation for classes | reviewing literature, documentation, tools and materials as well as the specifics of the syllabus and the range of activities indicated in it as required for full participation in classes |
Literature reading / analysis of source materials [a02] | Preparation for classes | reading the literature indicated in the syllabus; reviewing, organizing, analyzing and selecting source materials to be used in class |
Developing practical skills [a03] | Preparation for classes | activities involving the repetition, refinement and consolidation of practical skills, including those developed during previous classes or new skills necessary for the implementation of subsequent elements of the curriculum (as preparation for class participation) |
Consulting materials complementary to those indicated in the syllabus [a04] | Preparation for classes | agreeing on materials complementary to those indicated in the syllabus, supporting the implementation of tasks resulting from or necessary for class participation |
Getting acquainted with the syllabus content [b01] | Consulting the curriculum and the organization of classes | reading through the syllabus and getting acquainted with its content |
Verification / adjustment / discussion of syllabus provisions [b02] | Consulting the curriculum and the organization of classes | consulting the content of the syllabus, possibly in the presence of the year tutor or members of the class group, and, if necessary, reassessing the provisions concerning special conditions for class participation, e.g., space and time requirements, technical and other requirements, including conditions for participation in classes outside the walls of the university, classes organized in blocks, organized online, etc. |
Consulting the schedule [b03] | Consulting the curriculum and the organization of classes | getting acquainted with the class schedule, possibly in the presence of the year tutor, in order to optimize participation in classes, including those supplementary to the core subjects listed in the pursued study programme |
Studying the literature used in and the materials produced in class [c02] | Preparation for verification of learning outcomes | exploring the studied content, inquiring, considering, assimilating, interpreting it, or organizing knowledge obtained from the literature, documentation, instructions, scenarios, etc., used in class as well as from the notes or other materials/artifacts made in class |
Implementation of an individual or group assignment necessary for course/phase/examination completion [c03] | Preparation for verification of learning outcomes | a set of activities aimed at performing an assigned task, to be executed out of class, as an obligatory phase/element of the verification of the learning outcomes assigned to the course |
Analysis of the corrective feedback provided by the academic teacher on the results of the verification of learning outcomes [d01] | Consulting the results of the verification of learning outcomes | reading through the academic teacher’s comments, assessments and opinions on the implementation of the task aimed at checking the level of the achieved learning outcomes |
Attachments |
---|
Module description (PDF) |
Syllabuses (USOSweb) | ||
---|---|---|
Semester | Module | Language of instruction |
(no information given) |