SubjectsSubjects(version: 830)
Course, academic year 2018/2019
   Login via CAS
Programming II - NPRG031
Title in English: 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, NPRG065, NPRG013
Is incompatible with: NMIN161, NMUG103, NMUG104, NMIN201
Is pre-requisite for: NPRG045, NPGR033
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.
Course completion requirements -
Last update: RNDr. Tomáš Holan, Ph.D. (03.06.2018)

The subject is finished by credit and the exam.

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 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 test.

Exam has a written and a oral parts.

Written part requires to design a solution of a difficult programming task, spefically reasoned choice of algorithm, representation of data, decomposition and discussion.

Oral part consists of defence of designed solution and answering the question from the syllabus.

A student has three chances to pass 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 |