Programování a algoritmizace 2
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BIK-PA2.21 | Z,ZK | 7 | 14KP+6KC | česky |
- Garant předmětu:
- Jan Trávníček
- Přednášející:
- Radek Hušek, Barbora Kolomazníková
- Cvičící:
- Radek Hušek, Barbora Kolomazníková, Ondřej Štorc, Jan Trávníček, Josef Vogel
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
-
Studenti se naučí základům objektově orientovaného programování a naučí se používat, specifikovat a implementovat abstraktní datové typy (rozšiřitelné pole, množina, seznam, tabulka). Programovacím jazykem je C++. Studenti jsou seznámeni se všemi rysy jazyka C++ důležitými pro objektově-orientované programování (např. šablonování, kopírování/přesouvání objektů, přetěžování operátorů, dědičnost tříd, polymorfismus).
- Požadavky:
-
Základy algoritmizace a programování v jazyku C.
- Osnova přednášek:
-
1. Od C k C++, neobjektová rozšíření.
2. Programovací styly, úvod do objektově-orientovaného programování.
3. Třídy a objekty v jazyce C++.
4. Přetížené operátory v jazyce C++.
5. Kopírování objektů v jazyce C++.
6. Vybrané komponenty knihovny STL.
7. Dědění. Polymorfismus v jazyce C++.
8. Abstraktní třídy v jazyce C++.
9. Šablony funkcí a tříd v jazyce C++.
10. Výjimky a jejich ošetření v jazyce C++. Abstraktní datové typy fronta a zásobník v C++.
11. Abstraktní datové typy rozšiřitelné pole, seznam, množina a tabulka v C++.
12. Asociativní datové struktury.
13. Rozšíření C++11.
- Osnova cvičení:
-
1. Úvod do C++
2. Základy OOP, objekty a metody
3. Viditelnost, konstruktor, destruktor, moduly
4. Přetěžování operátorů
5. Mělká vs. hluboká kopie
6. STL kontejnery
7. Dědičnost
8. Abstraktní metody
9. Šablony funkcí a tříd
10. Výjimky a C++11
11. C++11
12. Procvičování
13. Rezerva
- Cíle studia:
-
Cílem předmětu je naučit studenty používat prostředky objektově orientovaného programování a využívat je při specifikaci a implementaci abtstraktních datových typů s důrazem na implementaci pomocí spojových struktur. Předmět je povinným předmětem programu, na který navazuje řada dalších předmětů.
- Studijní materiály:
-
1. Cormen T. H., Leiserson C. E., Rivest R. L., Stein C. : Introduction to Algorithms (3rd Edition). MIT Press, 2016. ISBN 978-0262033848.
2. Brassard G., Bratley P. : Fundamentals of Algorithmics (3rd Edition). Pearson, 2015. ISBN 978-0133350685.
3. Sedgewick R. : Algorithms (4th Edition). Addison Wesley, 2011. ISBN 978-0321573513.
4. Sedgewick R. : Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching (3rd Edition). Addison-Wesley, 1998. ISBN 978-0201350883.
5. Virius M. : Programování v C++ - od základů k profesionálnímu použití. Grada, 2018. ISBN 978-80-271-0502-1.
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-PA2/
- Další informace:
- https://courses.fit.cvut.cz/BI-PA2/
- Rozvrh na zimní semestr 2024/2025:
- Rozvrh není připraven
- Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Bc. specializace Informační bezpečnost, kombi., 2021 (povinný předmět programu)
- Bc. specializace Softwarové inženýrství, kombi., 2021 (povinný předmět programu)
- Bc. specializace Počítačové sítě a Internet, kombi., 2021 (povinný předmět programu)
- Bc. specializace Počítačové systémy a virtualizace, kombi., 2021 (povinný předmět programu)
- Bc. program, pro fázi studia bez specializace, kombi., 2021 (povinný předmět programu)