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
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
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.