* 1. Programming language Pascal

- modular programming, units

- pointer, dynamic allocation variables

- object programming

* 2. Algorithms and programming

- heaps and heap operations

- recursive sorting (quicksort, mergesort)

- bucketsort, radixsort

- finding of the k-th smallest element (quickselect)

- external sorting (file sorting)

- dynamic data structures

- linked list operations

- using of linked lists - stack and queue, long numbers, polynoms

- trees, graphs, basic algorithm on them

- binary search trees, opearations, balanced binary trees (AVL trees)

- multiway trees (B-trees)

- arithmetic notations, representing and evaluating arithmetic expressions

- dynamic programming

- basic graph algorithms

Input knowledge according to the course NMIN101 Programming 1 is expected.

The second part of basic course of programming for students of mathematics. Beside programming in Pascal it covers the main problems of algorithm and program design.