Poslední úprava: Mgr. Jonathan Verner, Ph.D. (21.09.2011) 0) Úvod, historie 1) Jednoduché programy a) Práce s čísly b) Práce s řetězci c) Použití objektů 2) Složitější techniky a) funkce (procedury) b) if/elif/else; výjimky c) použití cyklů 3) Návrh programu a) návrh programu (top-down desigh) b) simulace c) základy návrhu tříd (objektů) d) složitější datové typy (pole, asociativní pole) 5) Základy objektově orientovaného programování a) data encapsulation b) polymorphism c) inheritance 6) Algoritmy & Složitost a) Linear a Binary search b) Rekurze c) Třídící algoritmy d) Backtracking d) Halting problém & diagonalizace
Literatura:
Zeele, J.: Python programming (An introduction to computer science), Franklin, Beedle & Associates; Oregon 2004
Downey, A.: Think Python (How to think like a computer scientist), Green Tea Press; Needham, MA 2008 [www.thinkpython.com]
Wirth, N.: Algorithms + Data Structures = Programs, Prentice Hall Englewood Cliffs; New Jersey 1975
Töpfer, P.: Algoritmy a programovací techniky, Prometheus; Praha 1995 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.