Programování pro deskriptivní geometrii I - NMTD103
Anglický název: Computer programming for descriptive geometry I
Zajišťuje: Katedra didaktiky matematiky (32-KDM)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2023
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í
Garant: doc. RNDr. Pavel Töpfer, CSc.
doc. RNDr. Antonín Slavík, Ph.D.
Vyučující: Mgr. Vojtěch Pleskot, Ph.D.
Neslučitelnost : NMIN111, NMUG103, NPRG030
Záměnnost : NMIN111, NMUG103, NPRG030
Je korekvizitou pro: NMTD104
Je neslučitelnost pro: NMUG103, NMIN111
Je záměnnost pro: NMUG103
Výsledky anket   Termíny zkoušek   Rozvrh ZS   Nástěnka   
Anotace -
Seminář pro 1. ročník bakalářského studia. Obsahem kursu jsou základy programování v jazyce Python.
Poslední úprava: Töpfer Pavel, doc. RNDr., CSc. (18.05.2022)
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).

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. (10.07.2022)
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. (10.07.2022)
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)