Programování v Pythonu
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BI-PYT | Z,ZK | 4 | 2P+2C | česky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- Předmět zajišťuje:
- katedra softwarového inženýrství
- Anotace:
-
Cílem předmětu je naučit se efektivně používat základní řídící a datové struktury jazyka Python pro zpracování textů a binárních dat. Důraz bude kladen na zdůraznění rozdílů mezi filozofií programů v Pythonu a jiných programovacích jazycích. Studenti se též seznámí s hlavními rozdíly mezi verzemi 2.x a 3.x jazyka, které mezi sebou nejsou kompatibilní.
Nezbytným požadavkem pro zdárné ukončení předmětu je vypracování semestrálního projektu. Ten zahrnuje zpracování vybraného textového nebo binárního vstupu, důslednou aplikaci principů TDD a zaznamenání průběhu řešení pomocí vybraného nástroje pro správu verzí (DVCS), s kterýmižto náležitostmi se studenti seznámí v průběhu semestru na přednáškách a cvičeních.
Zkouška představuje po semestrální práci druhou část hodnocení a bude provedena ověřením znalostí formou testu.
- Požadavky:
-
Předpokládá se znalost základů programování a algoritmizace na úrovni předmětu BI-PA1.
Podrobné požadavky jsou uvedeny na stránce:https://edux.fit.cvut.cz/courses/BI-PYT.
- Osnova přednášek:
-
1. Úvod do možností jazyka. Operátory a logické výrazy. Základní dělení typů na proměnné a neproměnné.
2. Základní neproměnné typy: řetězce, čísla (celá, reálná, komplexní, zlomky).
3. Uživatelský vstup. Podmíněné příkazy a cykly: if, for, while, break.
4. Sekvenční typy: řetězce, seznamy, n-tice -- operace, metody, průchod smyčkou.
5. Mapovací typy: slovníky, množiny -- operace, metody, průchod smyčkou.
6. Binární data. Práce se soubory. Načítání dat z netu.
7. Funkce: argumenty (poziční a pojmenované), viditelnost proměnných, uzávěry, „lambda“-funkce, funkce jako „first class citizens“.
8. Základní principy OOP v jazyce Python: třídy a jejich instance, dědičnost, introspekce, zvláštnosti OOP v Pythonu.
9. Chyby a výjimky: detekce a ošetření, vyvolávání, aserce, hierarchie standardních výjimek. Unit-testy: TDD = vývoj řízený testy, zavedení, použití, přípravné a „čistící“ metody, zástupné objekty.
10. Pokročilé vlastnosti funkcí a tříd: dekorátory, generátory, funkcionální prvky, iterátory, magické metody a jejich aplikace (třídění, přetěžování operátorů).
11. Souborový systém. Interakce s prostředím.
12. Serializace datových struktur. Regexpy.
13. Moduly, standardní knihovna. Bajtkód interpretru CPython.
- Osnova cvičení:
-
1. Organizační pokyny, úvod do jazyka Python
2. Číselné typy, řetězce. Seznámení se s Mercurialem.
3. Uživatelský vstup. Podmíněné příkazy a cykly.
4. Seznamy a n-tice.
5. Slovníky a množiny.
6. Binární data. Práce se soubory. Načítání dat z netu.
7. Funkce. Formát NetPBM.
8. Třídy. Formát PNG.
9. Výjimky. Unit-testy.
10. Dekorátory, generátory, iterátory, magické metody.
11. Souborový systém. Interakce s prostředím.
12. Serializace datových struktur. Regexpy.
13. Moduly, standardní knihovna.
- Cíle studia:
-
Cílem předmětu je naučit se efektivně používat základní řídící a datové struktury jazyka Python pro zpracování textů a binárních dat. Důraz bude kladen na zdůraznění rozdílů mezi filozofií programů v Pythonu a jiných programovacích jazycích. Studenti se též seznámí s hlavními rozdíly mezi verzemi 2.x a 3.x jazyka, které mezi sebou nejsou kompatibilní.
Studenti budou umět: orientovat se ve skriptovacím jazyce Python a jeho hlavních verzích, rozumět problematice interpretovaného jazyka a základním rozdílům oproti jazykům kompilovaným, zpracovávat textová a binární data, aplikovat principy vývoje řízeného testy (TDD), obsluhovat vybrané nástroje pro správu verzí (DVCS), orientovat se v problematice kódování textů, znát základní principy vybraných binárních formátů.
- Studijní materiály:
-
Pilgrim, Mark: Dive Into Python 3. Apress, 2009. ISBN 978-1430224150
Necaise, Rance D.: Data Structures and Algorithms Using Python. John Wiley & Sons, Inc, 2011. ISBN 978-0470618295
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-PYT/
Na cvičení budou studenti potřebovat vlastní notebook (alespoň jedno cvičení v počítačové učebně zajištěno).
Na tento předmět navazuje v magisterském studiu předmět Pokročilý Python.
- Další informace:
- https://courses.fit.cvut.cz/BI-PYT/
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů:
-
- Bc. program Informatika, pro fázi studia bez oboru, 2015-2020 (VO)
- Bc. obor Bezpečnost a informační technologie, 2015-2020 (volitelný předmět)
- Bc. obor Teoretická informatika, 2015-2020 (volitelný předmět)
- Bc. obor Počítačové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Informační systémy a management, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Počítačová grafika, 2015-2020 (povinný předmět zaměření)
- Bc. obor Znalostní inženýrství, 2018-2020 (volitelný předmět)