PředmětyPředměty(verze: 945)
Předmět, akademický rok 2023/2024
   Přihlásit přes CAS
Základy programování a algoritmů - ALG119000
Anglický název: Introduction to Computer Science
Zajišťuje: Katedra logiky (21-KLOG)
Fakulta: Filozofická fakulta
Platnost: od 2023
Semestr: letní
Body: 0
E-Kredity: 5
Způsob provedení zkoušky: letní s.:
Rozsah, examinace: letní s.:2/1, Zk [HT]
Počet míst: 20 / neomezen (neurčen)
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
Způsob výuky: prezenční
Způsob výuky: prezenční
Úroveň:  
Poznámka: předmět je možno zapsat mimo plán
povolen pro zápis po webu
Garant: Mgr. Aleš Podolník, Ph.D.
Vyučující: Mgr. Aleš Podolník, Ph.D.
Anotace
Poslední úprava: Mgr. Jonathan Verner, Ph.D. (04.04.2019)
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.
Literatura
Poslední úprava: Mgr. Petr Švarný, Ph.D. (10.09.2020)

 

 

    • 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
Sylabus
Poslední úprava: Mgr. Petr Švarný, Ph.D. (02.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 

 
Univerzita Karlova | Informační systém UK