Course Overview

1st week
Introduction to Programming
Prepare parts 1 (Whetting Your Appetite) and 3 (An Informal Introduction to Python) of the Python tutorial
Set up a user on GitHub
2nd week
Hello Python
Prepare part 4 (More Control Flow Tools) up to and including 4.6 ( match statements) of the Python tutorial
Start homework 1
3rd week
Prepare the remainder of part 4 (starting with Defining Functions) of the Python tutorial
Start homework 2 (accept the GitHub assignment)
4th week
Prepare the data structures chapter of the Python tutorial
Start homework 3 (accept the GitHub assignment)
5th week
Built-in Container Data Structures
Read about function annotations and variable annotations directly in the relevant Python Enhancement Proposals (PEPs)
Work through the Python 3 tutorial on Modules
Read the Python 3 library documentation on doctests (from the top until (not including) "How It Works")
Start homework 4 (accept the GitHub assignment)
6th week
Modules and Packages
Build teams and select topics for the term project
Prepare Classes up to and including Private Variables) of the Python tutorial
Start homework 5 (accept the GitHub assignment)
7th week
Creating Your Own Data Types
Prepare chapter 9 ("Unit Testing") of "Dive into Python 3"
Start homework 6 (accept the GitHub assignment)
8th week
Unit Testing
Read Python's Functional Programming HOWTO
Start homework 7 (accept the GitHub assignment)
9th week
Functional Programming
Read the first three chapters of the "Data Structures" wikibook: Introduction, Asymptotic Notation and Arrays
Start homework 8 (accept the GitHub assignment)
10th week
Data Structures and Algorithms
Read through at least one of the PuLP optimization case studies. If you lack prior knowledge with regard to linear programming, also study the optimization process and optimization concepts in the PuLP documentation
Start homework 9 (accept the GitHub assignment)
11th week
Linear optimization with PuLP
Download the PuLP.ipynb ipython notebook
Follow the instructions on using ipython notebooks
Start homework 10
12th week
Introduction to data analysis with Python
Download the data_analysis.ipynb ipython notebook
Follow the instructions on using ipython notebooks
Start homework 11

IPython Notebooks

Make sure jupyter-lab is installed (pip install --user --upgrade jupyterlab). After downloading a notebook, use it via

jupyter notebook ${notebookname}

or open the entire development environment via

jupyter lab

Prior Exams


Interactive Learning Platforms

The best way to learn programming is to write code. Have fun!