PředmětyPředměty(verze: 804)
Předmět, akademický rok 2017/2018
   Přihlásit přes CAS
Úvod do programování - ALG110006
Anglický název: Introduction to Computer Science
Zajišťuje: Katedra logiky (21-KLOG)
Fakulta: Filozofická fakulta
Platnost: od 2017
Semestr: zimní
Body: 0
E-Kredity: 7
Způsob provedení zkoušky: zimní s.:
letní s.:
Rozsah, examinace: zimní s.:2/1 Z [hodiny/týden]
letní s.:1/1 Zk [hodiny/týden]
Počet míst: zimní:neomezen / neomezen (neurčen)
letní:neurčen / neurčen (neurčen)
Minimální obsazenost: neomezen
Stav předmětu: nevyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Úroveň:  
Další informace: http://jonathanverner.appspot.com/ALG110006
Garant: Mgr. Jonathan Verner, Ph.D.
Vyučující: Mgr. Jonathan Verner, Ph.D.
Rozvrh   Nástěnka   
Anotace -
Poslední úprava: Mgr. Jonathan Verner, Ph.D. (08.10.2016)

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

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

 

 
Univerzita Karlova | Informační systém UK