* 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.)
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.