Programování 1
POZOR, informace zatím nejsou aktualizovány pro akademický rok 2022/2023!
-
přednáší Martin Pergel ve čtvrtek 12:20
-
cvičí Rudolf Rosa ve středu 16:30-18:00 v N11
-
cvičení pro kruh 33 paralelky X bakalářských studentů informatiky
-
navazuje na cvičení Algoritmizace 1 s Pavlem Töpferem 15:40-16:25 v N11
-
cvičení Programování a Algoritmizace jsou svázaná, navštěvujte tedy na sebe navazující cvičení!
-
cvičení pro pokročilé má Martin Mareš ve čtvrtek (9:50-12:10 v N3)
Kdykoliv cokoliv potřebujete, napište mi na rosa@ufal.mff.cuni.cz (nebo mě oslovte po cvičení). Budu rád, když předmět e-mailu bude mimo jiné obsahovat kód předmětu (NPRG030), mám na to nastavené e-mailové filtry.
Obsah této stránky
Konzultace
-
cvičení budou doplňovat interaktivní konzultace
-
pravidelné konzultace během semestru jsou každou středu v N11 18:00-18:30 (tedy hned po cvičení, na stejném místě)
-
individuální konzultace si se mnou domlouvejte podle potřeby (napiště mi e-mail)
-
konzultace je pro vás, je to ideální příležitost, když s něčím potřebujete poradit nebo pomoct, například:
-
napsal jsem tenhle kus kódu a nefunguje to, proč?
-
něčemu jsem na cvičení nerozuměl a chtěl bych to vysvětlit znova a lépe
-
mám dotaz k něčemu ze cvičení nebo z přednášky
-
mám dotaz k něčemu co nebylo na cvičení ani přednášce
-
nerozumím zadání domácího úkolu
-
rozumím zadání domácího úkolu, ale potřebuju poradit, jak ho řešit
-
mám nějakou nejasnost/otázku/problém týkající se mého studia (ne nutně předmětu Programování 1)
-
atd.
-
jednak budu vyhlašovat hromadné konzultace, které se můžete účastnit všichni
-
jednak si budeme dle potřeby domlouvat soukromé konzultace
-
napište mi mail, pokud se chcete domluvit na konzultaci
-
některým z vás občas nabídnu konzultace i sám, třeba když si všimnu, že zjevně máte nějaké problémy -- ale raději se ozvěte sami, ne vždy si ne všeho všimnu
Cvičení 2021/2022
-
29.9. hello world (sčítání, násobení, input)
-
6.10. if (BMI)
-
13.10. while (Colatz, ZOO)
-
20.10. for (ZOO v listu)
-
27.10. funkce (umocni)
-
3.11. třídy a objeky (tichá pošta)
-
10.11. spojáky (tichá pošta ve spojáku)
-
17.11. je svátek a neučí se
-
24.11. velké cviko Algoritmizace 15:40-18:00 s doc. Töpferem
-
1.12. Algoritmizace normálně, Programování asi korespondenčně; soubory, dicty
-
8.12. asi supl Tomáš Musil; rekurze
-
15.12. velké cviko Programování 15:40-18:00 s RuR; prohledávání do hloubky a do šířky
-
22.12. asi něco spíš lightweight, možná něco s grafikou (tkinter?)
-
5.1. poslední cviko: "co se nestihlo"
-
Hello world
-
programování v Pythonu přímo v prohlížeči snadno a rychle
-
pár jednoduchých věcí na úvod
-
5+6
-
3*7
-
8-2
-
1/3
-
5*"ptakopysk"
-
"ptakopysk" + "podivný"
-
a=5
-
b=6
-
a+b
-
zvire="ptakopysk"
-
zvire=input()
-
vzájemné seznámení
-
Visual Studio Code: https://code.visualstudio.com/
-
podmínky na zápočet: domácí úkoly, závěrečný test, zápočtový program
-
konzultace
-
komunikační kanály
-
Recodex
Pokyny
-
doporučený editor: Visual Studio Code (ale používejte cokoliv chcete)
-
účast je nepovinná (ale doporučená) -- pokud zvládnete snadno dělat domácí úkoly i bez účasti na cvičení, asi Vaše účast na cvičení není nutná
-
můžete používat i vlastní notebook
Požadavky na zápočet
-
domácí úkoly: aspoň 80% bodů
-
zápočtový test: aspoň 100% bodů
-
na začátku zkouškového období: 12.1.2022 16:30 N11
-
pokud neuspějete napoprvé, máte nárok na opravné pokusy (minimálně 2)
-
termíny dalších pokusů domluvíme po testu
-
aspoň jeden termín bude někdy v rozmezí 18.1. - 21.1.
-
aspoň jeden termín bude někdy v rozmezí 25.1. - 27.1.
-
pak má RuR až do konce zkouškového dovolenou (28.1.-13.2.), takže to termíny nejspíš nebudou, ale můžou být potom v LS
-
75 minut + minuta za každý bod navíc za domácí úkoly
-
minimum bodů za úkoly je 88, pokud máte 99 bodů za úkoly, tak máte +11 minut na test
-
v Recodexu; ale musíte to řešit fyzicky v učebně
-
rozsah obdobný domácímu úkolu
-
nutné splnit na 100%
-
povoleny libovolné zdroje kromě řešení zadané úlohy a aktivní komunikace (tj. můžete googlit, můžete koukat do slajdů, do svých poznámek, do řešení jiných úloh... ale nesmíte komunikovat s nikým)
-
na začátku kontrola totožnosti (přineste si ISIC)
-
zápočtový program
-
zadání dohodnout do 15.12.
-
odevzdání doporučeno do konce zimního zkouškového, maximálně do konce března
-
nutnost osobního předvedení (fyzicky nebo přes Zoom)
Domácí úkoly
Zápočtové programy
-
Jedním z požadavků na zápočet je, aby každý z vás samostatně stvořil větší prográmek, který bude něco dělat.
-
Zadání si v tomto případě vymýšlíte sami, může to být úplně cokoliv
-
Mělo by to být něco většího než běžný domácí úkol, tak zhruba na úrovni tří domácích úkolů v jednom.
-
Můžete využívat libovolné existující knihovny a nástroje, ale musíte tam i nějakou podstatnou část naprogramovat sami.
-
Téma je nutné se mnou předem dohodnout
-
do 15.12. v SISu navrhněte téma (klidně i dřív)
-
modul Studijní mezivýsledky
-
pole "zápočťák stručně": popište, co chcete dělat (max. 50 znaků)
-
pole "zápočťák podrobně": podrobně popište, co chcete dělat (3 až 10 vět)
-
jakmile tam něco vyplníte, SIS mi pošle mail a já na to v dohledné době kouknu
-
pokud mi zadání bude připadat dobré, tak ho rovnou v SISu schválím (pokud to máte povolené, SIS vám o tom pošle mail)
-
pokud mi zadání nebude připadat dobré, napíšu vám mail a doladíme to
-
téma si pokud možno vymyslete sami
-
to co si vymyslíte sami se vám nejlíp bude líp dělat a bude vás to víc bavit
-
pokud máte vágní nápad ale nevíte jak z toho udělat splnitelné zadání, popište mi to do mailu a já něco navrhnu
-
Holan má na webu hezky zpracované návrhy na témata
-
moje nehezky zpracované návrhy
-
Na zápočťáku začněte ve vlastní zájmu dělat co nejdříve
-
zkušenost ukazuje, že když si myslíte, že to budete mít za týden, bude to trvat spíš asi tak měsíc
-
je matfyzáckým zvykem na zápoč'ťáku dělat přes Vánoční prázdniny; ale během zkouškového na to taky asi budete mít nějaký čas
-
Zápočťák vypracujte do konce března
-
ale pokud chcete zápočet z Programování do konce února (pro účely kontroly studijních povinností), vypracujte ho nejpozději do konce zkouškového (tj. do 13.2.)
-
pokud zdrojáky zabalené v ZIPu projdou omezením na velikost v SISu, nahrajte je přímo do SISu ("zápočťák: kód (ZIP archiv)"); jinak zašlete e-mailem
-
Součástí zápočťáku je také dokumentace
-
ve zdrojových kódech používejte komentáře vysvětlující co která část kódu dělá
-
pokud to dává smysl, přiložte i testovací vstupní data
-
v SISu vyplňte položku "zápočťák: dokumentace"
-
můžete dokumentaci buď vepsat přímo v SISu ("zápočťák: dokumentace (text)")
-
anebo nahrát do SISu jako soubor ("zápočťák: dokumentace (soubor)")
-
dokumentace by měla obsahovat
-
popis řešené úlohy
-
popis vstupů, výstupů, ovládání
-
popis principu řešení
-
popis použitých datových struktur a algoritmů
-
Vaše vlastní zhodnocení kvality Vašeho řešení (pokuste se být upřímní)
-
psaní dokumentace je dobrým cvičením například na v budoucnu vás čekající psaní bakalářské práce
-
dokumentace by měla zachycovat vše co je důležité či zajímavé (na co jste třeba hrdí)
-
dokumentace by se měla držet na vyšší úrovní abstrakce (popisovat některé důležité objekty a třídy užívané v programu je rozumné, popisovat každou jednotlivou proměnnou rozumné není
-
nějaké tipy jak psát dokumentaci: https://ksvi.mff.cuni.cz/~kryl/dokumentace.htm
-
Až budete mít zápočťák hotový, napište mi mail a domluvíme se na termínu osobního předvedení
-
sejdeme se v labu
-
vy mi program předvedete
-
já si ho taky vyzkouším
-
podívám se na zdrojový kód
-
pokud budu spokojen, máte tímto zápočťák splněn
-
pokud ne, dám vám program dopracovat
Další informace
-
kromě domácích úloh vřele doporučuji následující sbírku zejména jednodušších programovacích úloh: https://codingbat.com/python
-
podobně jako v Recodexu je kód automaticky vyhodnocen
-
narozdíl od Recodexu i vidíte správné i chybné vstupy i výstupy
-
nebo například zde: