Váš prohlížeč nepodporuje JavaScript nebo je jeho podpora vypnutá. Některé funkce nemusejí být dostupné.
Základy programování a algoritmů - ALG119000
Anglický název:
Introduction to Computer Science
Podoba výuky:
přednáška+cvičení
Zajišťuje:
Katedra logiky (21-KLOG)
Fakulta:
Filozofická fakulta
Platnost:
od 2024 do 2025
Počet semestrů výuky:
1
Semestr:
zimní
Body:
0
E-Kredity:
5
Způsob provedení zkoušky:
zimní s.:
Rozsah, examinace:
zimní s.:2/1, Zk [HT]
Počet míst:
20 / 20 (neurčen)
Maximální kapacita předmětu:
neomezen
Minimální obsazenost:
neomezen
4EU+:
ne
Virtuální mobilita / počet míst pro virtuální mobilitu:
ne
Kompetence:
Stav předmětu:
vyučován
Jazyk výuky:
čeština
Forma uskutečňování:
prezenční
Úroveň:
Možnost opakovaného zápisu:
1 / 1 / 1 / 1
Poznámka:
předmět je možno zapsat mimo plán povolen pro zápis po webu
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.
Poslední úprava: Verner Jonathan, Mgr., Ph.D. (04.04.2019)
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
Poslední úprava: Švarný Petr, Mgr., Ph.D. (10.09.2020)
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
Poslední úprava: Švarný Petr, Mgr., Ph.D. (02.09.2020)