MIN112 - Programování 2 - Teoretické cvičení - středa 17:20 v N11 a čtvrtek 17:20 v N8
Stránka přednášejícího Pavla Töpfra
Program cvičení
- týden - notes
- týden - notes
- týden - notes
- týden - BST a rekurze, DFS a BFS, zásobník a fronta a k opakovani predavani parametru hodnotou a referenci
- týden - BST a rekurze, DFS a BFS, zásobník a fronta a opakování OOP
- týden - BST a rekurze, DFS a BFS, zásobník a fronta a opakování OOP
- týden - Rekurzivní generování
- týden - Dynamicke programovani
- týden - notes: DFS a BFS na grafech
Podmínky zápočtu:
Cvičení se skládají z: a) teoretického a b) praktického cvičení cvičení. Pro zápočet je třeba
splnit obě části cvičení.
Podmínky zápočtu z teoretického cvičení:
- Domácí úkoly - Primárním cílem domácích úkolů je Vaše procvičení látky z přednášek,
samotný kód/vypracování je prostředkem, kterým se cvičíte. Sekundárním cílem je Vaše přesvedčením mě, že
látce rozumíte
(teoreticky i prakticky) dobře.
(Domácí úkoly vypracovávejte samostatně; no copy, no co-work, no StackOverflow or GPTChat, etc. případné vyjímky
budou explicitně oznámeny; diskuze s kolegy nad problémem naopak povolena je; nikoliv nad vlastním vypracováním).
- Cca 8 zadání domácích úkolů; zadání se skládá z 1-3 úkolů podle složitosti jednotlivých příkladů, celkový počet získatelných bodů za 1 zadání je 10 bodů.
- Zadané zpravidla každé 1-2 týdny.
- V případě nejasností řešení domácích úkolů, je možné, že si nechám individuálně Vaše řešení vysvětlit. Ptát se mohu na vypracování i související teorii. Případné vysvětlení má zásaní vliv na ohodnocení řešení.
- Zadané v recodexu.
- Pro splnění zápočtu je nutné získat: alespoň 70% bodů.
- Získáte-li pod 50% získatelných bodů jste zápočet nezískali (vyjímky možné pouze ve velmi rozumných
důvodech (nemoc, válka, atd.); 50%-70% získatelných bodů - body na zápočet lze doplnit zadanými úkoly (takto
získatelné body mohou být obtížněji získatelné nežli řádné a je možné je domácé úkoly budete muset
osobně předvést a vysvětlit)
- Aktivita v hodině - student během semestru řádně pracoval na cvičení.
- Docházka - student/ka za každé aktivní cvičení může získat 1 bod za docházku. Body získané za docházku, se nepočítají do maximálního počtu získatelných bodů za domácí úkoly, leč přičítají se k nim.
Podmínky zápočtu z praktického cvičení: určuje cvičící Praktického cvičení
- Domácí úkoly - Primárním cílem domácích úkolů je Vaše procvičení látky z přednášek,
samotný kód/vypracování je prostředkem, kterým se cvičíte. Sekundárním cílem je Vaše přesvědčením mě, že
látce rozumíte
(teoreticky i prakticky) dobře.
(Domácí úkoly pište samostatně; no copy, no co-work, no StackOverflow or GPTChat, etc. případné vyjímky
budou explicitně oznámeny; diskuze s kolegy naopak povolena je).
Na 2 domácích úkolech bude provedena code review (které domácí úkoly to budou bude uvedeno při zadání), a
body budou přiděleny až v případě,
že Váš kód projde ne jen recodex testy ale i code review (program Vám může být opakovaně vrácen k
přepracování).
- Zpravidla každý týden
- 0-3 příkladů/týden
- Zadané v recodexu
- Pro zápočet je nutné získat alespoň 70% bodů za
domácí úkoly zadávané průběžně na praktickém cvičení.
- Získáte-li pod 50% získatelných bodů, zápočet jste nezískali (vyjímky jsou možné pouze ve velmi rozumných
důvodech
(nemoc, válka, atd.); 50%-70% získatelných bodů - body na zápočet lze doplnit zadanými úkoly (takto
získatelné body mohou být obtížněji získatelné nežli řádné a je možné je domácé úkoly budete muset
osobně předvést a vysvětlit)
- Závěrečný test - v zápočtovém týdnu (další termíny budou ve zkouškovém období), napsat a odladit
zadaný Python program v 90 minutách.
- Zápočtový program - Python program, včetně (programátorké a uživatelské) dokumentace a testovacích dat/testů. Programem prokazujete
komplexní zvládnutí látky přednášek včetně algoritmizace, vhodného návrhu architektury a dekompozice kódu,
programování, znalosti programovacího jazyka, efektivnosti návrhu, bezpečnosti kódu, přiměřené dodržení
kódovacího stylu and best practices, ...). Očekává se objetový návrh programu.
- Zadání
- Zaslat do 11. 05. 2025 - Owl; enroll token: bude veden, či enroll link.
- Zadání musí být schváleno cvičícím, jinak je Zápočtový program brán jako neplatný
- Povinné části: idea a základní popis problému; formalizace problému; základní návrh
algoritmu/algoritmického způsobu řešení problému; forma a popis vstupů a výstupů; forma interfacu
(GUI, konzole); případně popis interaktivity; identifikace studenta, předmětu, datum, ...
- Je možné nejdříve zaslat návrh tématu k diskuzi před zasláním specifikace.
- Vypracování
- Zaslat a obhájit finální verzi do 10. 09. 2025 - hard deadline.
- Povinné části vypracování: schválené zadání, program, programátorská a uživatelská dokumentace,
testovací
data/testy a obhájení.
- Forma odevzdání: do Owlu; enroll token: bude uveden, či enroll link.;
nahrajete odkaz na Vaše Git uložiště. Každý z Vám má osobní vlákno komunikace.
- Je možné využívat školního GitLab repozitáře.
- Aktivita v hodině - student během semestru řádně pracoval na cvičení.
Etika práce a podvádění
- Podvádění zakázáno. Studentské výstupy (domácí úkoly) jsou/budou kontrolovány proti plagiátorství.
První nalezení totožného či jinak podezřelého kódu -10 bodů za domácí úkoly, druhý a další nesplnění
předmětu; v případě závažného provinění formální řešení.
Další a rozšiřující literatura
- Materiály Adama Dingla k
Programování 1 (pro informatiky) anglická paralelka
- Materiály Adama Dingla k
Algoritmizaci (pro informatiky) anglická paralelka
- Submitting programs to ReCodEx (by
Adam Dingle)
- Recodex: Exit Code Mappings
Kontakt
- Konzultace: po domluvě, ideálně před či po cvičení, pravidelně si na Vás vyhrazuji čas nebo emailem
- Email: jiri.sejnoha #na# mff.cuni.cz