Programování a algoritmizace 1
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BI-PA1.21 | Z,ZK | 7 | 2P+2R+2C | česky |
- Garant předmětu:
- Jan Trávníček
- Přednášející:
- Miroslav Balík, Jan Trávníček, Ladislav Vagner, Josef Vogel
- Cvičící:
- Miroslav Balík, David Bernhauer, Daniel Breiner, Michal Dvořák, Filip Gregor, Albert Havliček, Radek Hušek, Jiří Kašpar, Tomáš Krupička, Jaroslav Kříž, Jan Matoušek, Tomáš Pecka, Sebastian Prokop, Matyáš Rak, Róbert Selvek, Ivan Šimeček, Otto Šleger, Milan Špinka, Petr Šťastný, Ondřej Štorc, Jan Trávníček, Ladislav Vagner, Josef Vogel, Vladimír Votava, Ondřej Wrzecionko
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
-
Studenti se naučí sestavovat algoritmy řešení základních problémů a zapisovat je v jazyku C. Ovládají datové typy (jednoduché, ukazatele, strukturované), výrazy, příkazy, a funkce demonstrované v programovacím jazyce C. Rozumějí principu rekurze a složitosti algoritmů. Naučí se základní algoritmy pro vyhledávání, řazení a práci se spojovými seznamy a stromy.
- Požadavky:
-
Žádné.
- Osnova přednášek:
-
1. Algoritmy a programy, základní podpora vývoje.
2. Proměnné, vstup a výstup v jazyce C.
3. Pohyblivá řádová čárka. Výrazy v jazyce C.
4. Řídící konstrukce v jazyce C.
5. Funkce v jazyce C.
6. Pole a řetězce v jazyce C.
7. Struktury a ukazatele v jazyce C.
8. Ukazatele a dynamická alokace paměti v jazyce C.
9. Složitost, algoritmy pro vyhledávání a kvadratické algoritmy řazení.
10. Spojové a stromové struktury v jazyce C.
11. Rekurzivní algoritmy, MergeSort, úvod do QuickSortu.
12. Práce se soubory a modulární programování v jazyce C.
13. Abstraktní datové typy (boolean, komplexní čísla, fronta, zásobník).
- Osnova cvičení:
-
1. Číselné soustavy, převody. Bit, bajt, slovo, dvojslovo. Vývojová prostředí. 2. Celočíselné typy, proměnné, přiřazení, vstup a výstup. Zobrazení celých čísel, doplňkový kód.
3. Reálné typy. Zobrazení čísel v pohyblivé řádové čárce. Výrazy.
4. Podmíněné příkazy.
5. Cykly, zpracování posloupností.
6. Funkce.
7. Pole a řetězce.
8. Ukazatele a dynamické proměnné.
9. Struktury.
10. Složitost algoritmů, příklady algoritmů s různou
složitostí.
11. Rekurzivní funkce.
12. Spojové seznamy.
13. Rezerva.
- Cíle studia:
-
Předmět je základním kurzem algoritmizace a procedurálního programování, jehož úspěšné absolvování je nutnou podmínkou pro další studium.
- 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. Kochan S.G. : Programming in C (4th Edition). Addison-Wesley, 2014. ISBN 978-0321776419.
5. Virius M : Jazyky C a C++: kompletní průvodce, 2. vydání, Grada, 2011. ISBN 978-80-247-3917-5.
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-PA1/
- Další informace:
- https://courses.fit.cvut.cz/courses/BI-PA1/
- 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, 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)