SubjectsSubjects(version: 877)
Course, academic year 2020/2021
  
Programming 1 - NMIN111
Title: Programování 1
Guaranteed by: Department of Software and Computer Science Education (32-KSVI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2020
Semester: winter
E-Credits: 3
Hours per week, examination: winter s.:0/2 C [hours/week]
Capacity: unlimited
Min. number of students: unlimited
State of the course: taught
Language: Czech
Teaching methods: full-time
Additional information: http://mj.ucw.cz/vyuka/2021/p1m/
Guarantor: doc. RNDr. Pavel Töpfer, CSc.
Class: 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
Classification: Informatics > Programming
Incompatibility : NMIN101, NPRG030
Interchangeability : NPRG030
K//Is co-requisite for: NMIN112
N//Is incompatible with: NPRG030
Z//Is interchangeable with: NMIN101
Annotation -
Last update: doc. RNDr. Pavel Töpfer, CSc. (25.09.2019)
A basic course of programming for first-year students of mathematics. The course covers programming in Python, basic algorithms and data structures and practical program design and debugging.
Course completion requirements -
Last update: doc. RNDr. Pavel Töpfer, CSc. (30.08.2019)

Students will receive a credit for this course by active participation in the practice sessions in the computer lab. Generally this means that students must complete the assigned programming exercises, either during the lab session or later on at home.

Due to the nature of this requirement, a failed attempt cannot be repeated as is possible for exams. The instructor may establish conditions whereby a student can make up for missing homework assignments.

Literature -
Last update: doc. RNDr. Pavel Töpfer, CSc. (29.10.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

Syllabus - Czech
Last update: 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

 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html