Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2020/2021

Programování v Pythonu

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
BI-PYT Z,ZK 4 2P+2C česky
Přednášející:
Markéta Jůzlová (gar.), Tomáš Kosek, Pavlína Nováková, Tomáš Šabata, Jakub Švehla, Jiří Znamenáček
Cvičící:
Martin Šlapák, Markéta Jůzlová (gar.), Tomáš Kosek, Michal Němec, Pavlína Nováková, Radim Slovák, Tibor Szolár, Tomáš Šabata, Jakub Švehla, Vojtěch Vančura, Jiří Volprecht
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/
Rozvrh na zimní semestr 2020/2021:
Rozvrh není připraven
Rozvrh na letní semestr 2020/2021:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 30. 10. 2020
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet1291406.html