0) Úvod, historie 1) Jednoduché programy
Práce s čísly
Práce s řetězci
Použití objektů 2) Složitější techniky funkce (procedury) if/elif/else; výjimky použití cyklů 3) Návrh programu návrh programu (top-down design) simulace základy návrhu tříd (objektů) složitější datové typy (pole, asociativní pole) 5) Základy objektově orientovaného programování data encapsulation polymorphism inheritance 6) Algoritmy & Složitost
Linear a Binary search
Rekurze
Třídící algoritmy
Backtracking
Halting problém & diagonalizace
Cílem kurzu je seznámit studenta se základními "praktickými" pojmy programování (datový typ, proměnná, procedura, algoritmus aj.) a naznačit způsoby, jakými lze tyto pojmy teoreticky zkoumat (složitost, Turingův stroj...).
Student by po absolvování kurzu měl být schopný samostatně navrhnout, napsat a "odladit" plně funkční jednoduchý program v jazyce Python. Měl by mít povědomí o standardních algoritmech a rozumět pojmu složitosti. Součástí kurzu jsou i praktická cvičení na počítači.