Course plan

WeekDayLectureLiteratureSlides & VideosExercises
5Monday
January 30
Semester starts
Introduction to Python
[G] 1, 2.1introduction.pdf | pptx
lecture 1
Wednesday
February 1
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
Friday
February 3
Exercise classes start
6Monday
February 6
Basic operations
None, bool, basic operations, strings
[G] 2.4, 5.5operations.pdf | pptx
 Operations 1:02:04
lecture 3
Wednesday
February 8
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 13
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 15
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 20
Functions
functions, return, scoping, arguments, keyword arguments, *, **, global variables
[G] 4, 6.3functions.pdf | pptx
 Functions 58:04
lecture 7
Wednesday
February 22
Recursion
symbol table, stack frames
[G] 6.1, 6.2recursion.pdf | pptx
 Recursion 46:29
lecture 8
handin 4
9Monday
February 27
Recursion and iteration
algorithm examples
[G] 3, 12.1, 12.2recursion_iteration.pdf | pptx
 Recursion and iteration 57:43
lecture 9
handin 5
Wednesday
March 1
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 6
Object oriented programming
classes, objects, self, construction, encapsulation
[G] 10.1, 10.3.0classes.pdf | pptx
 Classes 1:11:42
lecture 11
Wednesday
March 8
Class hierarchies
inheritance, method overriding, super, multiple inheritance
[G] 10.2hierarchies.pdf | pptx
 Class hierarchies 44:20
lecture 12
handin 6
11Monday
March 13
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 15
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 20
Decorators
@, @property, @functools.total_ordering, dataclasses
decorators.pdf | pptx
 Decorators 54:37
lecture 15
Wednesday
March 22
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 27
Visualization and optimization
Matplotlib, Jupyter, scipy.optimize.minimize
[G] 13optimization.pdf | pptx
 Matplotlib 1:03:40
 Jupyter 26:35
 SciPy minimize 29:47
lecture 17
Wednesday
March 29
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
April 3 - Monday April 10
Easter break - no teaching
15Tuesday
April 11
No exercise classes
Wednesday
April 12
Linear programming
scipy.optimize.linprog
pagerank.ipynb
max-flow.ipynb
No exercise classes
linear_programming.pdf | pptx
 Linprog 6:19
 Maxflow 10:05
 Pagerank 22:17
lecture 19
handin 9
16Monday
April 17
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
Wednesday
April 19
Modules and packages
from-import-as, __name__, "__main__", heapq
[G] 7.1, 7.2modules.pdf | pptx
 Modules 24:28
 Heapq 8:51
lecture 21
17Monday
April 24
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
Wednesday
April 26
Relational data
SQL, SQLite, pandas
pandas.ipynb
[G] 23pandas.pdf | pptx
 SQLite 29:23
 Pandas 34:23
lecture 23
Friday
April 28
Kapsejladsen - no exercise classes
18Monday
May 1
Clustering
k-means, scipy.cluster.vq.kmeans, DBSCAN, neural networks
[G] 25clustering.pdf | pptx
 Clustering 27:25
 DBSCAN 11:11
 Neural networks 15:56
lecture 24
Wednesday
May 3
Graphical user interfaces (GUI)
Tkinter, qt
gui.pdf | pptx
 Tkinter 50:37
lecture 25
Friday
May 5
Holiday (General Prayer Day) - no teaching
19Monday
May 8
Java vs Pythonjava.pdf | pptx
 Java 1:03:03
lecture 26
Wednesday
May 10
No lecture
20Monday
May 15
Follow up on course evaluation, discussion of examexam.pdf | pptx
lecture 27
Wednesday
May 17
No lecture
Thursday
May 18
Holiday (Ascension Day) - no teaching
Friday
May 19
Last day of semester
22Wednesday
May 31
Project deadline 23:59
JuneQ & A sessions (TAs and Lecturer)
JuneExam