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
The main goal of this course is to introduce the student to basic "practical" concepts of computer science (data type, variable, loop, procedure, algorithm, etc.) and methods which can be used to study these concepts theoreticaly (complexity,Turing machines...)
After attending this course, the student should be able to design, implement and "debug" a fully functional simple program in the Python programming language. He should know about standard algorithms and have a basic understanding of the idea of algorithmic complexity