Course plan 2025

WeekDayLectureLiteratureSlides & VideosExercises
5Monday
January 27
Semester starts
Introduction to Python
[G] 1, 2.1introduction.pdf | pptx
lecture 1
Wednesday
January 29
Python basics
variables, int, float, str, type conversion, assignment, print(), help(), type()
Control structures
if-elif-else, while-break-continue, input()
[G] 2.2, 2.3, 2.5, 2.6basics.pdf | pptx
control.pdf | pptx
 Basics 55:27
 Control 32:09
lecture 2
handin 1
6Monday
February 3
Basic operations
None, bool, basic operations, strings
Exercise classes start
[G] 2.4, 5.5operations.pdf | pptx
 Operations 1:02:04
lecture 3
Wednesday
February 5
Lists
Syntax, operations, copy.deepcopy
Control structures
while-else, for-loops, for-break-continue-else, range
[G] 5.2, 5.3, 5.4, 5.5lists.pdf | pptx
 Lists 1:00:04
lecture 4
handin 2
7Monday
February 10
Tuples and lists
tuples, lists, mutability, list comprehension, for-if, for-for, list(), any(), all(), enumerate(), zip()
[G] 5.1, 5.3, 5.5tuple.pdf | pptx
 Tuples 50:13
 Orientation test 11:38
lecture 5
Wednesday
February 12
Dictionaries and sets
dict, set, frozenset, dictionary comprehension, set comprehension, collections, deque, namedtuple, Counter
[G] 5.6, 5.7, 5.8, 12.3dictionaries.pdf | pptx
 Dictionaries 49:51
 Handins 3-4 5:11
lecture 6
handin 3
8Monday
February 17
Functions
functions, return, scoping, arguments, keyword arguments, *, **, global variables
9.15 Meeting with class representatives (D.01)
[G] 4, 6.3functions.pdf | pptx
 Functions 58:04
lecture 7
Wednesday
February 19
Recursion
symbol table, stack frames
[G] 6.1, 6.2recursion.pdf | pptx
 Recursion 46:29
lecture 8
handin 4
9Monday
February 24
Recursion and iteration
algorithm examples
[G] 3, 12.1, 12.2recursion_iteration.pdf | pptx
 Recursion and iteration 57:43
lecture 9
handin 5
Wednesday
February 26
Functions as objects
lambda, higher-order functions, map, filter, reduce
[G] 4.4, 12.2.2lambda.pdf | pptx
 Lambda 44:05
lecture 10
10Monday
March 3
Object oriented programming
classes, objects, self, construction, encapsulation
[G] 10.1, 10.3.0classes.pdf | pptx
 Classes 1:11:42
lecture 11
Wednesday
March 5
Class hierarchies
inheritance, method overriding, super, multiple inheritance
[G] 10.2hierarchies.pdf | pptx
 Class hierarchies 44:20
lecture 12
handin 6
11Monday
March 10
Exceptions and file input/output
try-raise-except-finally, Exception, control flow, match-case, file open/read/write, sys.stdin, sys.stdout, sys.stderr, context manager
[G] 7.3, 9.1, 9.2exceptions.pdf | pptx
 Exceptions 28:51
 Files 20:13
 Sudoku 15:45
lecture 13
Wednesday
March 12
Documentation, testing and debugging
docstring, defensive programming, assert, test driven developement, assertions, testing, unittest, doctest, debugger, coverage, static type checking, mypy
[G] 4.2, 8, 9.3testing.pdf | pptx
 Testing 48:44
 Mypy 13:32
lecture 14
handin 7
12Monday
March 17
Decorators
@, @property, @functools.total_ordering, dataclasses
decorators.pdf | pptx
 Decorators 54:37
lecture 15
Wednesday
March 19
Dynamic programming
memoization, decorator memoized/functools.cache, systematic subproblem computation
[G] 14.1, 15.1, 15.2dynamic_programming.pdf | pptx
 Dynamic programming 56:46
 Coding competitions 10:47
lecture 16
handin 8
13Monday
March 24
Visualization and optimization
Matplotlib, Jupyter, scipy.optimize.minimize
No exercise classes
[G] 13optimization.pdf | pptx
 Matplotlib 1:03:40
 Jupyter 26:35
 SciPy minimize 29:47
lecture 17
Wednesday
March 26
Multi-dimensional data
NumPy, matrix multiplication, @, numpy.linalg.solve, numpy.polyfit
[G] 13.2numpy.pdf | pptx
 Numpy 42:09
 Polyfit 6:12
 Numpy matplotlib 15:27
lecture 18
14Monday
March 31
Linear programming
scipy.optimize.linprog
pagerank.ipynb
max-flow.ipynb
linear_programming.pdf | pptx
 Linprog 6:19
 Maxflow 10:05
 Pagerank 22:17
lecture 19
handin 9
Wednesday
April 2
Generators and iterators
yield, __iter__, __next__, measuring memory usage
[G] 10.3.1generator.pdf | pptx
 Iterators 38:26
 Generators 30:04
 Memory usage 9:27
lecture 20
handin 10
15Monday
April 7
Modules and packages
from-import-as, __name__, "__main__", heapq
[G] 7.1, 7.2modules.pdf | pptx
 Modules 24:28
 Heapq 8:51
lecture 21
Wednesday
April 9
Working with text
file formats (CSV, Json, XML, Excel), regular expressions (module re), finditer
text.pdf | pptx
 File formats 39:47
 Regular expressions 17:59
 Lindenmeyer systems 14:10
lecture 22
Saturday
April 12 - Monday April 21
Easter break - no teaching
17Tuesday
April 22 - Friday April 25
No lectures, exercise classes, and study cafe
18Monday
April 28
Relational data
SQL, SQLite, pandas
pandas.ipynb
No physical lecture - video only
[G] 23pandas.pdf | pptx
 SQLite 29:23
 Pandas 34:23
lecture 23
Wednesday
April 30
Clustering
k-means, scipy.cluster.vq.kmeans, DBSCAN, neural networks
No physical lecture - video only
[G] 25clustering.pdf | pptx
 Clustering 27:25
 DBSCAN 11:11
 Neural networks 15:56
lecture 24
19Monday
May 5
Graphical user interfaces (GUI)
Tkinter, qt
No physical lecture - video only
gui.pdf | pptx
 Tkinter 50:37
lecture 25
Wednesday
May 7
Java vs Python
No physical lecture - video only
java.pdf | pptx
 Java 1:03:03
lecture 26
20Monday
May 12
Follow up on course evaluation, discussion of examexam.pdf | pptx
lecture 27
Wednesday
May 14
No lecture
Friday
May 16
Last day of semester
22Saturday
May 31
Project deadline 23:59
JuneQuestions & answers sessions
24Saturday
June 14
Exam