SubjectsSubjects(version: 902)
Course, academic year 2022/2023
   Login via CAS
Programming 1 - NMIN101
Title: Programování 1
Guaranteed by: Department of Software and Computer Science Education (32-KSVI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2019
Semester: winter
E-Credits: 5
Hours per week, examination: winter s.:2/2 [hours/week]
Capacity: unlimited
Min. number of students: unlimited
Virtual mobility / capacity: no
State of the course: not taught
Language: Czech
Teaching methods: full-time
Guarantor: doc. RNDr. Pavel Töpfer, CSc.
RNDr. Martin Pergel, Ph.D.
Class: M Bc. FM
M Bc. FM > Povinné
M Bc. FM > 1. ročník
M Bc. MMIB > Povinné
M Bc. MMIB > 1. ročník
M Bc. MMIT > Povinné
M Bc. OM
M Bc. OM > Povinné
M Bc. OM > 1. ročník
Classification: Informatics > Programming
Incompatibility : NPRG030
Interchangeability : NMIN111, NPRG030
Is co-requisite for: NMIN161
Is incompatible with: NMUE022, NPRX030, NPRG030
Is pre-requisite for: NMIN102
Is interchangeable with: NPRM044
Annotation -
Last update: G_M (24.04.2012)
A basic course of programming for students of mathematics. Beside programming in Pascal on personal computer it covers the main problems of algorithm and program design.
Course completion requirements -
Last update: doc. RNDr. Pavel Töpfer, CSc. (11.10.2017)

Students will receive a credit for this course by successfully completing the following requirements:

  • 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.
  • Completion of a semester programming project by the deadline fixed by the instructor.
  • Passing a written test at the end of the semester.

Due to the nature of the first two requirements, 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 or resubmit their semester project after improving deficiencies that were found the first time around.

A student has three chances to pass the written test, normally by the end of the winter exam period. The instructor may choose to allow a student to make one or more of these attempts during the following summer semester.

Literature -
Last update: RNDr. Tomáš Holan, Ph.D. (29.10.2019)

P.Töpfer: Algoritmy a programovací techniky, Prometheus Praha 1995, 2. vyd. 2007

P.Satrapa: Pascal pro zelenáče, Neocortex Praha 1994

N.Wirth: Algorithms + Data Structures = Programs , Prentice Hall Englewood Cliffsů; New Jersey 1975

slovenský překlad N. Wirth: Algoritmy a štruktúry údajov, Alfa, Bratislava 1989

Syllabus -
Last update: doc. RNDr. Pavel Töpfer, CSc. (11.10.2017)
1. Typical programming language elements and mechanisms, as exemplified in the Turbo Pascal language
  • variables, constants, types, variable initializers
  • primitive and compound data types (numbers, characters, booleans, enumerated types, arrays, lists, strings of symbols)
  • simple and compound statements (assignment, if, while, repeat, for, case, with)
  • text files (including formatted output)
  • procedures and functions (local identifiers, parameter passing mechanisms, recursion)
  • the goto statement
  • basic compiler directives (memory limits, run-time checks)
  • unit CRT

2. Basic algorithms, data structures and programming techniques

  • algorithm, correctness, input/output data
  • basic notions of algorithmic efficiency
  • divisibility, Euclid's algorithm
  • primality testing, the sieve of Eratosthenes
  • Horner's rule
  • dividing an integer into digits, positional notation for numbers
  • array search algorithms (sequential, binary, sentinel)
  • sorting data in an array (internal sorting)
  • basic matrix operations
  • implementing stacks and queues using an array
  • higher-precision arithmetic ("long numbers")
  • recursion, backtracking, divide and conquer
  • depth-first search and breadth-first search
  • the minimax algorithm
  • factor sets

3. Creating programs
Working with an IDE (integrated development environment), creating and debugging programs - practically demonstrated using the Turbo Pascal or Free Pascal IDE (editor, compiler, debugging tools - tracing, examining variable values etc.)

Charles University | Information system of Charles University |