O předmětu

Vyučující: Radek Pelánek

Ujasnění očekávání

O čem předmět je:
  • O lepším pochopení matematických pojmů a metod skrze praktické programování.
  • O procvičení programátorských schopností na algoritmicky zajímavých příkladech. Praktický trénink přechodu od teoretického algoritmu k funkční implementaci.
  • O souvislostech mezi pojmy z různých oblastí matematiky, algoritmy a programátorskými konstrukcemi.
  • O radosti z objevování, o ocenění elegance, o experimentování, o tom, jak matematika a programování mohou být kreativní.
O čem předmět není:
  • O úvodní výuce matematických pojmů.
  • O úvodní výuce programování.
  • O výuce syntaxe konkrétního programovacího jazyka nebo vývojového prostředí.

Předpoklady

  • Znalost matematických pojmů na úrovni bakalářských matematik na FI nebo schopnost se samostatně potřebné pojmy doučit.
  • Schopnost samostatně programovat v libovolném jazyce (hodí se objektový a spíše vysokoúrovňový).

Forma předmětu

Předmět má tři části, které se budou volně prolínat a navazovat:
  • Přednáška: Stručná rekapitulace jedné oblasti matematiky (připomenutí pojmů, metod), vysvětlení algoritmů, které jsou nad rámec základní výuky, formulace souvisejích problémů a popis základních myšlenek řešení, ilustrace základních principů implementace.
  • Cvičení: Samostatné programování vybraných problémů na základě doporučené "kostry".
  • Samostatná práce: Dokončení (rozšíření) programů ze cvičení, implementace dalších problémů podle zadání (někdy s prostorem pro vlastní kreativitu).

Implementaci je možno realizovat v libovolném programovacím jazyce podle vlastní volby. Vhodný jazyk pro studovaný typ problémů je Python - ten bude používán pro ilustrativní účely a je doporučen i v případě, že jste jej zatím nepoužívali (po syntaktické stránce nebudeme potřebovat mnoho konstrukcí a naučit se relevantní část Pythonu není náročné). Nicméně klidně můžete používat svůj oblíbený jazyk.

Mnoho probíraných témat vede ke grafickému ztvárnění. Pro grafický výstup bude používán primárně jazykově nezávislý formát SVG (znalost není potřeba, bude stručně osvětlen na úvodní přednášce), případně jednoduchá bitmapová grafika.