Week | Day | Lecture | Literature | Slides & Videos | Exercises |
---|---|---|---|---|---|
5 | Monday January 29 | Semester starts Introduction to Python | [G] 1, 2.1 | introduction.pdf | pptx | lecture 1 |
Wednesday January 31 | 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.6 | basics.pdf | pptx control.pdf | pptx ![]() ![]() | lecture 2 handin 1 | |
6 | Monday February 5 | Basic operations None, bool, basic operations, strings Exercise classes start | [G] 2.4, 5.5 | operations.pdf | pptx![]() | lecture 3 |
Wednesday February 7 | Lists Syntax, operations, copy.deepcopy Control structures while-else, for-loops, for-break-continue-else, range | [G] 5.2, 5.3, 5.4, 5.5 | lists.pdf | pptx![]() | lecture 4 handin 2 | |
7 | Monday February 12 | Tuples and lists tuples, lists, mutability, list comprehension, for-if, for-for, list(), any(), all(), enumerate(), zip() | [G] 5.1, 5.3, 5.5 | tuple.pdf | pptx![]() ![]() | lecture 5 |
Wednesday February 14 | Dictionaries and sets dict, set, frozenset, dictionary comprehension, set comprehension, collections, deque, namedtuple, Counter | [G] 5.6, 5.7, 5.8, 12.3 | dictionaries.pdf | pptx![]() ![]() | lecture 6 handin 3 | |
8 | Monday February 19 | Functions functions, return, scoping, arguments, keyword arguments, *, **, global variables | [G] 4, 6.3 | functions.pdf | pptx![]() | lecture 7 |
Wednesday February 21 | Recursion symbol table, stack frames | [G] 6.1, 6.2 | recursion.pdf | pptx![]() | lecture 8 handin 4 | |
9 | Monday February 26 | Recursion and iteration algorithm examples | [G] 3, 12.1, 12.2 | recursion_iteration.pdf | pptx![]() | lecture 9 handin 5 |
Wednesday February 28 | Functions as objects lambda, higher-order functions, map, filter, reduce | [G] 4.4, 12.2.2 | lambda.pdf | pptx![]() | lecture 10 | |
10 | Monday March 4 | Object oriented programming classes, objects, self, construction, encapsulation | [G] 10.1, 10.3.0 | classes.pdf | pptx![]() | lecture 11 |
Wednesday March 6 | Class hierarchies inheritance, method overriding, super, multiple inheritance | [G] 10.2 | hierarchies.pdf | pptx![]() | lecture 12 handin 6 | |
11 | Monday March 11 | 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.2 | exceptions.pdf | pptx![]() ![]() ![]() | lecture 13 |
Wednesday March 13 | 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.3 | testing.pdf | pptx![]() ![]() | lecture 14 handin 7 | |
12 | Monday March 18 | Decorators @, @property, @functools.total_ordering, dataclasses | decorators.pdf | pptx![]() | lecture 15 | |
Wednesday March 20 | Dynamic programming memoization, decorator memoized/functools.cache, systematic subproblem computation | [G] 14.1, 15.1, 15.2 | dynamic_programming.pdf | pptx![]() ![]() | lecture 16 handin 8 | |
13 | Monday March 25 - Monday April 1 | Easter break - no teaching | |||
14 | Tuesday April 2 | No exercise classes | |||
Wednesday April 3 | Visualization and optimization Matplotlib, Jupyter, scipy.optimize.minimize No exercise classes | [G] 13 | optimization.pdf | pptx![]() ![]() ![]() | lecture 17 | |
15 | Monday April 8 | Multi-dimensional data NumPy, matrix multiplication, @, numpy.linalg.solve, numpy.polyfit | [G] 13.2 | numpy.pdf | pptx![]() ![]() ![]() | lecture 18 |
Wednesday April 10 | Linear programming scipy.optimize.linprog pagerank.ipynb max-flow.ipynb | linear_programming.pdf | pptx![]() ![]() ![]() | lecture 19 handin 9 | ||
16 | Monday April 15 | Generators and iterators yield, __iter__, __next__, measuring memory usage | [G] 10.3.1 | generator.pdf | pptx![]() ![]() ![]() | lecture 20 handin 10 |
Wednesday April 17 | Modules and packages from-import-as, __name__, "__main__", heapq | [G] 7.1, 7.2 | modules.pdf | pptx![]() ![]() | lecture 21 | |
17 | Monday April 22 | Working with text file formats (CSV, Json, XML, Excel), regular expressions (module re), finditer | text.pdf | pptx![]() ![]() ![]() | lecture 22 | |
Wednesday April 24 | Relational data SQL, SQLite, pandas pandas.ipynb | [G] 23 | pandas.pdf | pptx![]() ![]() | lecture 23 | |
18 | Monday April 29 | Clustering k-means, scipy.cluster.vq.kmeans, DBSCAN, neural networks | [G] 25 | clustering.pdf | pptx![]() ![]() ![]() | lecture 24 |
Wednesday May 1 | Graphical user interfaces (GUI) Tkinter, qt | gui.pdf | pptx![]() | lecture 25 | ||
Friday May 3 | Kapsejladsen - no study café | ||||
19 | Monday May 6 | Java vs Python | java.pdf | pptx![]() | lecture 26 | |
Wednesday May 8 | No lecture | ||||
Thursday May 9 | Holiday (Ascension Day) - no teaching | ||||
20 | Monday May 13 | Follow up on course evaluation, discussion of exam | exam.pdf | pptx | lecture 27 | |
Wednesday May 15 | No lecture | ||||
Friday May 17 | Last day of semester | ||||
22 | Friday May 31 | Project deadline 23:59 | |||
June | Questions & Answers sessions | ||||
June | Exam |