Programování a algoritmizace 2
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BI-PA2.21 | Z,ZK | 7 | 2P+1R+2C | česky |
- Garant předmětu:
- Jan Trávníček
- Přednášející:
- Radek Hušek, Jan Trávníček, Josef Vogel
- Cvičící:
- Filip Čihák, Tomáš Dejmek, Jarmila Fialová, Jakub Horák, Radek Hušek, Roman Jelínek, Barbora Kolomazníková, František Kovář, Jaroslav Kříž, Petr Laštovička, Jan Matoušek, Petr Pauš, Tomáš Pecka, Matyáš Rak, Petr Šťastný, Ondřej Štorc, Jan Šuráň, Jan Trávníček, Ladislav Vagner, Josef Vogel, Michaela Weberová
- 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/ This course is presented in Czech.
However, there is an English variant in the program Informatics (B1801 / 4753).
- 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:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po Út St Čt Pá - Předmět je součástí následujících studijních plánů:
-
- Bc. specializace Informační bezpečnost, 2021 (povinný předmět programu)
- Bc. specializace Manažerská informatika, 2021 (povinný předmět programu)
- Bc. specializace Počítačová grafika, 2021 (povinný předmět programu)
- Bc. specializace Počítačové inženýrství, 2021 (povinný předmět programu)
- Bc. program, pro fázi studia bez specializace, 2021 (povinný předmět programu)
- Bc. specializace Webové inženýrství, 2021 (povinný předmět programu)
- Bc. specializace Umělá inteligence, 2021 (povinný předmět programu)
- Bc. specializace Teoretická informatika, 2021 (povinný předmět programu)
- Bc. specializace Softwarové inženýrství, 2021 (povinný předmět programu)
- Bc. specializace Počítačové systémy a virtualizace, 2021 (povinný předmět programu)
- Bc. specializace Počítačové sítě a Internet, 2021 (povinný předmět programu)
- Bc. specializace Informační bezpečnost, 2024 (povinný předmět programu)
- Bc. program, pro fázi studia bez specializace, 2024 (povinný předmět programu)
- Bc. specializace Manažerská informatika, 2024 (povinný předmět programu)
- Bc. specializace Počítačová grafika, 2024 (povinný předmět programu)
- Bc. specializace Softwarové inženýrství, 2024 (povinný předmět programu)
- Bc. specializace Webové inženýrství, 2024 (povinný předmět programu)
- Bc. specializace Počítačové sítě a Internet, 2024 (povinný předmět programu)
- Bc. specializace Počítačové inženýrství, 2024 (povinný předmět programu)
- Bc. specializace Počítačové systémy a virtualizace, 2024 (povinný předmět programu)
- Bc. specializace Umělá inteligence, 2024 (povinný předmět programu)
- Bc. specializace Teoretická informatika, 2024 (povinný předmět programu)
- Bc. specializace Počítačová grafika s vynecháním BI-SVZ (povinný předmět programu)