Hlavní stránka | Seznam oborů/specializací | Seznam všech skupin předmětů | Seznam všech předmětů | Seznam rolí                Návod

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.

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.

Předmět je zahrnut do těchto studijních plánů:
Plán Obor Role Dop. semestr
BI-ZI.2018 Znalostní inženýrství V 3
BI-WSI-PG.2015 Webové a softwarové inženýrství PZ 3
BI-WSI-WI.2015 Webové a softwarové inženýrství V 3
BI-SPOL.2015 Nespecifikovaný/á obor/specializace studia - Unspecified Branch/Specialisation of Study VO 3
BI-PI.2015 Počítačové inženýrství V 3
BI-WSI-SI.2015 Webové a softwarové inženýrství V 3
BI-TI.2015 Teoretická informatika V 3
BI-BIT.2015 Bezpečnost a informační technologie V 4
BI-ISM.2015 Informační systémy a management V 3
BI-BIT.2015 Bezpečnost a informační technologie V 3


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