Výuka
V letním semestru 2024/25 vyučuji tyto předměty:
Programování 2 pro matematiky (NMIN112)
Podmínky pro získání zápočtu:
- aktivní práce v hodinách
- na teoretickém cvičení vypracování písemných domácích úkolů (dosažení alespoň 70% z celkového počtu bodů, hranice přežití: 50% bodů), za docházku na každé cvičení získáte jeden bonusový bod
- na praktickém cvičení pravidelné řešení domácích úkolů zadávaných v ReCodExu (dosažení alespoň 70% z celkového počtu bodů za domácí úkoly, hranice přežití: 50% bodů)
- na konci semestru - praktický zápočtový test u počítačů - test se bude psát na posledním praktickém cvičení na školních počítačích, ve zkouškovém období budou vypsány opravné termíny
- vypracování zápočtového programu (včetně zpracování písemné dokumentace)
Zápočet není podmínkou ke zkoušce.
Programovací úlohy
Pro získání zápočtu je potřeba mít na konci semestru alespoň 70% z celkového počtu vypsaných bodů za praktické úlohy (bonusové úlohy se do základu nepočítají, můžete si jimi tedy přilepšit).
Autor řešení musí být schopen na cvičení vysvětlit svůj program.
Úkoly se budou odevzdávat pomocí systému ReCodEx https://recodex.mff.cuni.cz/
Všechny úlohy jsou samostatná práce! Můžete se samozřejmě o úlohách bavit mezi sebou nebo s AI, ale řešení musí vypracovat každý sám.
Písemné (teoretické) úlohy
Pro získání zápočtu je potřeba mít na konci semestru alespoň 70% z celkového počtu vypsaných bodů za teoretické úlohy (bonusové úlohy se do celkového počtu nepočítají).
Domácí úkoly psané "na papír" spočívají většinou v návrhu a slovním popisu efektivního algoritmu.
Úkoly se budou odevzdávat pomocí systému Postal Owl https://owl.mff.cuni.cz/
Praktický zápočtový test u počítačů
Bude se jednat o úlohu zadanou v ReCodExu v podobném rozsahu jako úlohy zadávané v průběhu semestru. Pro úspěšné složení testu bude potřeba získat v ReCodExu plný počet bodů. Test se bude psát na školních počítačích, bez přístupu k internetu.
Zápočtový program
Zápočtový program je rozsáhlejší než běžné úlohy v ReCodExu. Jeho účelem je, abyste si vyzkoušeli samostatně navrhnout a vytvořit větší program včetně načítání vstupů od uživatele, ošetření jejich korektnosti, odladění, napsání dokumentace. Téma pro svůj program si vybíráte sami (já ho musím schválit).
Postup, jak vypracovat zápočtový program:
- vybrat si téma a domluvit se na něm se mnou (do 20. dubna)
- poslat krátkou specifikaci (do 30. dubna)
- napsat samotný program
- napsat dokumentaci k programu - uživatelskou a programátorskou
- program odprezentovat
O dokumentaci podle Martina Mareše:
Uživatelská dokumentace. To je stručný popis toho, jak se program používá (tedy třeba v jakém formátu se mu zadává vstup a v jakém vydá výstup). Nepište od ní evidentní věci, spíš to, co by bězný uživatel nečekal. Také by tam mělo být řečeno, co vlastně program dělá :)
Programátorská dokumentace. V ní je stručně popsáno, jak program funguje uvnitř. Nemusíte komentovat každý řádek programu, spíš popište celkovou koncepci. Pokud používáte nějaké netriviální algoritmy, je to dobré zmínit. Pokud používáte něco, co jste nevymysleli sami, je na místě citovat zdroje.
Text o dokumentaci k (nejen) zápočtovému programu od doktora Kryla: Jak psát dokumentaci zápočtového programu
Co jsme dělali na cvičení:
1. CVIČENÍ:
Opakování ze zimního semestru:- instalace Pythonu, IDLE, Python jako kalkulačka
- proměnné a výrazy, operace s čísly, relace a logické spojky
- struktura programu – příkazy input a print, indentace, komentáře
- příkaz if (zanořování, elif, else)
- cyklus while (včetně else)
- základní použití podmínek a cyklů
- zpracování posloupnosti dat, seznamy a operace s nimi, indexování, řezy
- generátorová notace seznamů (list comprehension)
- funkce - parametry, return, lokalita a viditelnost proměnných
- znakové řetězce
- formátovaný výstup (znakové řetězce typu f"xxx{y}xxx")
- N-tice (tuples)
- množiny a slovníky
- textové soubory
- standardní knihovna – základní přehled (math, copy, array, fractions, decimal, time, random, ...)
- výjimky - try-except-finally, raise, assert
- základní informace o třídách a objektech v Pythonu.
1. CVIČENÍ - teoretické:
- pojem složitost
- formální definice velkého O
Webové technologie (DVPP)
Kurz v rámci celoživotního vzdělávání.
Odkaz na stránky kurzu: Webové technologie.