Programování v Pythonu

Odkaz na stránku přednášky.
Cvičení z let 2020/2021: zimní a letní semestr.

Zápočet

Pro udělení zápočtu je nutné

Domácí úkoly

Domácí úkoly budou zadávány po každém cvičení. Pokud budete mít na konci semestru 50-70 %, nezoufejte. V takovém případě vám mohu zadat dodatečnou úlohu. Nebude lehká, ale zápočet zachránit může.

Vypracování úlohy na posledním cvičení

Na posledním cvičení zadám úlohu, kterou do konce cvičení samostatně vypracujete. Obtížnost bude odpovídat lehčím až středně těžkým úlohám z našich cvičení. Pokud by přeci jen někdo úlohu nestihl, či nezvládl z jiného důvodu, domluvíme se na náhradním termínu.

Zápočtový projekt

(vymyslete si zadání a zkonzultujte se mnou do konce dubna)
Zápočtový projekt si můžete vymyslet sami a detaily společně doladíme. Při vymýšlení úlohy odhadujte obtížnost na cca den až dva dny práce (velmi zhruba 500-1500 řádků kódu). Pokud vás nic nenapadne, tak to můžeme probrat spolu. Zápočtový projekt musí být kompletním řešením nějakého problému s příslušnou dokumentací. Dokumentace by měla obsahovat 3 části Program můžete odevzdat v podobě počítačového programu, či github stránky. Zápočtový projekt odevzdejte do konce letních prázdnin, abychom měli celé září na opravení chyb.
Prosím, abyste do konce dubna měli vybrané a ode mě schválené zadání. Kontaktujte mě buď mailem, či naživo na cvičeních.


Cvičení

Pokud chcete stahnout python notebook v sekci Dodatečné materiály, přepiště URL z něco.html na něco.ipynb.
# Téma Odkazy Dodatečné materiály
(výukové, úkoly, řešení)
1 VS code, jak definovat použitelné funkce (typy, doc strings, doc tests, ...) VS code, positional vs. keyword arguments, doc test, name conventions factorial, name conventions
2 numpy numpy documentation numpy
3 algoritmy algorithms, algorithms_solution
4 třídy (classes), zásobník (stack), fronta (queue) classes from python doc classes, problems_classes, problems_stack_queue
5 další třídy a matplotlib matplotlib documentation, examples classes_advanced, matplotlib
6 spojové seznamy linked_list
7 lambda funkce a rekurze functions, recursion
8 více rekurze viz rekurze z minulého cvičení
9 stromy trees
10 simulace stanovisko MFF k využívání AI simulations
11 prohledávání grafů python-igraph D(B)FS and graphs, D(B)FS, domino
12 pokračování s grafy water jug
13 dynamické programování dynamic programming
14 zápočtová úloha final exam solution
*Při tvorbě výukových materiálů výše byl v několika případech využíván jazykový model GPT 3.5. Využit byl převážně k psaní delších částí kódu, které byly následně opraveny a upravoveny aby lépe vystihovaly požadovanný pedagogický záměr. Dále byl model využíván při vymýšlení vhodných úloh a pro kontrolu správnosti napsaných textů.