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

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.), Michal Němec
Cvičící:
Markéta Jůzlová (gar.), Michal Němec, Tibor Szolár, Tomáš Šabata, Jakub Švehla
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://moodle.fit.cvut.cz/courses/BI-PYT/

Rozsah=přednášky+cvičeni:2p+2c. Na cvičení budou studenti potřebovat vlastní notebook (alespoň jedno cvičení v počítačové učebně zajištěno).

Další informace:
https://moodle.fit.cvut.cz/courses/BI-PYT/
Rozvrh na zimní semestr 2019/2020:
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
místnost T9:303
Šabata T.
09:15–10:45
(přednášková par. 1
paralelka 101)

Dejvice
NBFIT PC ucebna
místnost T9:303
Švehla J.
11:00–12:30
(přednášková par. 1
paralelka 102)

Dejvice
NBFIT PC ucebna
místnost T9:350
Němec M.
Szolár T.

14:30–16:00
(přednášková par. 1
paralelka 104)

Dejvice
NBFIT PC ucebna
místnost T9:348
Jůzlová M.
12:45–14:15
(přednášková par. 1
paralelka 103)

Dejvice
NBFIT PC ucebna
Čt

místnost T9:155
Němec M.
11:00–12:30
(přednášková par. 1)
Dejvice
Posluchárna
Rozvrh na letní semestr 2019/2020:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 18. 10. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet1291406.html