Předmět je základní jednotka výuky, jejímž prostřednictvím si student osvojí ucelenou část souboru znalostí a dovedností, potřebnou pro zvládnutí studijního oboru/specializace. Za věcný obsah předmětu zodpovídá garant předmětu. Časovou náročnost předmětu zhruba vyjadřuje atribut předmětu rozsah kontaktní výuky. Například rozsah = 2+2 značí, že předmět bude mít týdně dvě hodiny přednášek a dvě hodiny cvičení týdně. Na závěr semestru musí vyučující provést vyhodnocení, nakolik si ten který student osvojil poznatky a dovednosti, kterých měl během výuky nabýt. Jakým způsobem toto hodnocení vyučující provedou určuje atribut způsob zakončení. U předmětu lze definovat, že předmět je zakončen pouze zápočtem(Z), klasifikovaným zápočtem(KZ), pouze zkouškou(ZK), nebo zápočtem a zkouškou(Z,ZK). Náročnost úspěšného absolvování předmětu je vyjádřena ECTS kreditními body. Výuka předmětu probíhá během semestru. Opakovaně se předmět vyučuje vždy v zimním(Z), nebo v letním(L) semestru každého akademického roku. Výjimečně může předmět být nabízen studentům v obou semestrech(Z,L). Za organizační zajištění výuky zodpovídá přiřazená katedra, která zejména vytvoří časový rozvrh předmětu a zajistí pro předmět vyučující. Někteří přednáší a zkouší, jiní vedou cvičení a udělují zápočty.
Obsahová náplň a další organizační informace, týkající se předmětu je popsána pomocí různých popisných textů(anotace, týdenní osnova, literatura, apod.)
$DODATEK_POPIS
BI-PYT | Programování v Pythonu | Rozsah kontaktní výuky: | 2P+2C | ||
---|---|---|---|---|---|
Vyučující: | Způsob zakončení: | Z,ZK | |||
Zodpovědná katedra: | 18102 | ECTS Kredity: | 4 | Semestr: | L |
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.
Osnovy 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. |
Osnovy 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. |
Literatura:
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
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.
|
Předmět je zahrnut do těchto studijních plánů:
Stránka vytvořena 25. 4. 2024, semestry: L/2019-20, Z/2022-3, Z/2021-2, Z/2019-20, Z/2020-1, L/2022-3, Z/2024-5, L/2020-1, Z,L/2023-4, L/2021-2, připomínky k informační náplni zasílejte správci studijních plánů | Návrh a realizace: J. Novák, I. Halaška |