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 2024
Semestr: zimní
E-Kredity: 3
Rozsah, examinace: zimní s.:0/2, Z [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Způsob výuky: prezenční
Další informace: http://mj.ucw.cz/vyuka/p1m/
Garant: doc. RNDr. Pavel Töpfer, CSc.
Vyučující: Mgr. Jana Faltová, Ph.D.
RNDr. Martin Holub, Ph.D.
RNDr. Peter Kvasnička
Mgr. Martin Mareš, Ph.D.
Mgr. Vojtěch Pleskot, Ph.D.
RNDr. Ing. Bedřich Roskovec, Ph.D.
Mgr. Jan Střeleček
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 : NMTD103, NPRG030
Záměnnost : NPRG030
Je korekvizitou pro: NMIN112
Je neslučitelnost pro: NPRG030, NMTD103
Je záměnnost pro: NMIN101, NMTD103
Výsledky anket   Termíny zkoušek   Rozvrh ZS   Nástěnka   
Anotace -
Seminář pro 1. ročník bakalářského studia matematiky. Obsahem kursu jsou základy programování v jazyce Python.
Poslední úprava: Kaplický Petr, doc. Mgr., Ph.D. (30.05.2019)
Podmínky zakončení předmětu -

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). Požaduje se získání alespoň 70% bodů za průběžně zadávané domácí úkoly.

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.

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

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

Poslední úprava: Töpfer Pavel, doc. RNDr., CSc. (30.08.2019)
Sylabus -
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í

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