* Python programming language
- Python as a calculator
- integers
- float numbers and accuracy problems
- operators and their priorities
- assignment
- conditions and cycles (while)
- program structure: comments, indentation
- basic input() and print()
- program debugging, using the development environment (IDLE/PyCharm)
- for loop, range()
- break, continue
- lists used as fields
- the list assignment assigns only the link
- function definition and function call
- optional parameters
- abstraction and modularity of programs
- local identifiers and their visibility
- recursion principle
- functions passing to other functions
- lists and their operations
- queue and stack
- iterating over a list
- cuts
- list comprehension
- strings
- use of libraries, import
- graphs drawing using matplotlib
- details of type system
- tuples
- dictionaries and operations with them
- exceptions and their catching
- classes and objects
- description of reality using objects
- type derivation, inheritance
- working with files
- standard library
* Basic algorithms
- time complexity
- decomposition of numbers into digits
- Euclidean algorithm
- prime numbers calculated by dividing till the square root
- factorization
- evaluation of polynomials (Horner's scheme)
- the k’th smallest element computed in time k*n
- Eratosthenes sieve
- matrix multiplication
- Gauss elimination
- elementary sorting algorithms
- binary search
- finding the roots of functions: halving the interval, linear interpolation
- merging sorted sequences
A basic course of programming for first-year students of mathematics. The course covers programming in Python, basic algorithms and data structures and practical program design and debugging.