PředmětyPředměty(verze: 861)
Předmět, akademický rok 2019/2020
  
Programování 1 - NMIN111
Anglický název: Programming 1
Zajišťuje: Katedra softwaru a výuky informatiky (32-KSVI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2019
Semestr: zimní
E-Kredity: 3
Rozsah, examinace: zimní s.:0/2 Z [hodiny/týden]
Počet míst: neomezen
Minimální obsazenost: neomezen
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Garant: doc. RNDr. Pavel Töpfer, CSc.
Třída: M Bc. FM
M Bc. FM > Povinné
M Bc. FM > 1. ročník
M Bc. MMIB
M Bc. MMIB > Povinné
M Bc. MMIB > 1. ročník
M Bc. MMIT
M Bc. MMIT > Povinné
M Bc. OM
M Bc. OM > Povinné
M Bc. OM > 1. ročník
Kategorizace předmětu: Informatika > Programování
Neslučitelnost : NMIN101, NPRG030
Záměnnost : NPRG030
K//Je korekvizitou pro: NMIN112
Anotace -
Poslední úprava: doc. Mgr. Petr Kaplický, Ph.D. (30.05.2019)
Seminář pro 1. ročník bakalářského studia matematiky. Obsahem kursu jsou základy programování v jazyce Python.
Podmínky zakončení předmětu -
Poslední úprava: doc. RNDr. Pavel Töpfer, CSc. (30.08.2019)

Předmět je zakončen zápočtem. K získání zápočtu se požaduje aktivní účast na cvičení spočívající obvykle v řešení úkolů (programů) v termínech stanovených cvičícím (ať už na cvičení nebo doma).

Povaha tohoto požadavku neumožňuje vypsat opravné termíny. Vyučující může stanovit podmínky, za nichž student může nahradit chybějící domácí úkoly.

Literatura -
Poslední úprava: doc. RNDr. Pavel Töpfer, CSc. (30.08.2019)

John V. Guttag, Introduction to Computation and Programming Using Python: With Application to Understanding Data, 2nd ed.,, MIT Press, Cambridge, MA 2016

Allen B. Downey, Think Python: How to Think Like a Computer Scientist, 2nd ed., O'Reilly Media, Sebastopol, CA 2015

Sylabus
Poslední úprava: doc. Mgr. Petr Kaplický, Ph.D. (30.05.2019)
Základy programovacího jazyka Python
  • Python jako kalkulačka
  • celá čísla
  • floaty a problémy s přesností
  • operátory a jejich priority
  • přiřazení
  • základní podmínky a cykly (while)
  • struktura programu: komentáře, odsazování
  • triviální input() a print()
  • ladění programu, používání vývojového prostředí (IDLE/PyCharm)
  • for cykly, range()
  • break, continue
  • seznamy používané jako pole
  • přiřazení seznamu přiřazuje pouze odkaz
  • definice a volání funkcí
  • nepovinné parametry
  • abstrakce a modularita programů
  • lokální identifikátory a jejich viditelnost
  • princip rekurze
  • předávání funkcí jiným funkcím
  • seznamy a operace s nimi
  • fronta a zásobník
  • iterování přes seznam
  • řezy
  • list comprehension
  • stringy
  • používání knihoven, import
  • kreslení grafů pomocí matplotlib
  • podrobněji o typovém systému
  • tuples
  • slovníky a operace s nimi
  • výjimky a jejich odchytávání
  • třídy a objekty
  • popis reality pomocí objektů
  • odvozování typů, dědičnost
  • práce se soubory
  • standardní knihovna

Základní algoritmy

  • časová složitost
  • rozklad čísla na číslice
  • Euklidův algoritmus
  • prvočísla dělením do odmocniny
  • faktorizace
  • vyhodnocení polynomu (Hornerovo schéma)
  • k-tý nejmenší prvek v čase k*n
  • Eratosthenovo síto
  • násobení matic
  • Gaussova eliminace
  • elementární třídicí algoritmy
  • binární vyhledávání
  • hledání kořenů funkcí: půlení intervalu, lineární interpolace
  • slévání setříděných posloupností
  • práce se stromy

 
Univerzita Karlova | Informační systém UK