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:

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.

zdrojáky za cvičení

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.