Lectures

Date Lecture Topic Slides Code
18.02.2026 1 Basic data structures - arrays, sets, dictionaries, algorithmic complexity motivation Lecture 1 Notebook 1
25.02.2026 2 2D arrays (matrices), array processing (search, cumulative sum) Lecture 2 Notebook 2
04.03.2026 3 Strings, text processing, string edit distance, files Lecture 3 Notebook 3
11.03.2026 4 Numpy arrays Lecture 4 Notebook 4
18.03.2026 5 Array processing II (sliding window, sorting, convolution, sparse matrices) Lecture 5 Notebook 5
25.03.2026 6 ADT - trees, stacks, queues Lecture 6 Example Notebook 6 Example
01.04.2026 7 Refresher lecture (preparation for midterm) Midterm examples 
08.04.2026 8 Trees and recursion I Lecture 7 Notebook 7
15.04.2026 9 Trees and recursion II Lecture 8 Notebook 8
22.04.2026 10 Scientific Python libraries - data loading and processing Lecture 9 Notebook 9
29.04.2026 11 Scientific Python libraries - visualization Lecture 10 Notebook 10
06.05.2026 12 Run time estimation, profiling, asymptotic complexity Lecture 11 Notebook 11
13.05.2026 13 Rector's day
20.05.2026 14 Reserve, preparation for exam

Supplementary material for lectures

| NumPy (& string + list) cheatsheet

The supplementary materials (interactive Jupyter notebooks) for the lectures are located here:

pge_lectures@FEL Gitlab

Download the repository and read the instruction for installation in the `README.md` file. It is assumed that you already have Python installed, ideally (but not necessarily) with some Python environment management. For example, Conda or Mamba.

Slides and supplementary materials to lectures will be added progressively during the semester, as this course is going through changes.