SIS code: 
Semester: 
winter
E-credits: 
5
Examination: 
Z
Instructor: 

Programování 1 (kruh 33)

  • 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í Algortimizace 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 BUDOU (termín vyhlásím, předběžně asi budou prostě hned po cvičení, protože vidím že v rozvrhu tam vaše skupina nic nemá)
    • 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
  • 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

6.10.

  •  

13.10.

  •  

20.10.

  •  

27.10.

  •  

3.11.

  •  

10.11.

  •  

24.11.

  •  

1.12.

  •  

8.12.

  •  

15.12.

  •  

22.12.

  •  

5.1.

  •  

 

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 konci semestru nebo na začátku zkouškového období
    • 75 minut, v Recodexu
    • pokud bude prezenční výuka, pak bude test na počítači v učebně, pokud ne, tak budeme na Zoomu
    • rozsah obdobný domácímu úkolu
    • 2 opravné pokusy
  • 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

No need to thank me

  • 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í)
    • dokumentace nemusí být zbytečně detailní
      • výše vidíte 5 bodů, co by dokumentace měla obsahovat, často tedy stačí dokumentace o 5 větách
      • 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