SubjectsSubjects(version: 825)
Course, academic year 2017/2018
   Login via CAS
Programming II - NPRG031
Czech title: Programování II
Guaranteed by: Department of Software and Computer Science Education (32-KSVI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2016 to 2018
Semester: summer
E-Credits: 5
Hours per week, examination: summer s.:2/2 C+Ex [hours/week]
Capacity: unlimited
Min. number of students: unlimited
State of the course: taught
Language: Czech, English
Teaching methods: full-time
Guarantor: RNDr. Tomáš Holan, Ph.D.
doc. RNDr. Pavel Töpfer, CSc.
RNDr. Martin Pergel, Ph.D.
Class: Informatika Bc.
Classification: Informatics > Programming
Incompatibility : NMIN201, NPRM049
Is co-requisite for: NPRG035, NPRG013
Is incompatible with: NMIN161, NMIN201, NMUG104, NMUG103
Is pre-requisite for: NPRG065, NPGR033, NPRG045
Is interchangeable with: NMIN201
In complex pre-requisite: NPRG041
Annotation -
Last update: doc. RNDr. Pavel Töpfer, CSc. (21.02.2018)

A continuation of the basic programming course for students in the first year of Computer Science program. This course expands on the material from NPRG030 Programming I by discussing additional algorithms and their implementation, as well as methods and techniques used in constructing programs. Students will become acquainted with the basics of object-oriented programming, with the programming language C# and with working in modern programming environments. The course presupposes knowledge of material covered in NPRG030 Programming I, and this knowledge is necessary for the exam.
Literature - Czech
Last update: doc. RNDr. Pavel Töpfer, CSc. (02.02.2018)

P. Töpfer: Algoritmy a programovací techniky, Prometheus 1995

M. Virius: C# pro zelenáče, Neocortex Praha, 2002

E. Gunnerson: Začínáme programovat v C#, Computer Press Praha 2001

J. Kent: Visual C# 2005 bez předchozích znalostí, Computer Press Brno 2007

Syllabus -
Last update: G_I (28.04.2014)

1. Algorithms and programming

  • complexity of algorithms, increasing the efficiency (data pre-processing, "smart" recursion, pruning and heuristics in backtracking)
  • methods of designing efective algorithms - Divide&Impera, dynamic programming
  • external sorting (direct, natural)
  • trees, graphs, trees and graphs traversal
  • binary search trees, operations on them
  • evaluating arithmetic expression in different notations
  • implementation of selected graph algorithms (connectivity, Dijkstra's algorithm, minimum spanning tree, bipartity, topological ordering)
  • hashing (with fixed hashing function)
  • objects, object oriented programming
  • discrete simulation
  • event driven programming - basic ideas

2. C# language

basic concepts of C# language

principles of work in development environment

Knowledge on the level of PRG030 Programming I is expected.

Charles University | Information system of Charles University |