CMS

Course Overview

1st week
Syllabus
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 (the link to this assignment is on moodle)
3rd week
Strings
Prepare the remainder of part 4 (starting with Defining Functions) of the Python tutorial
Start homework 2 (the link to this assignment is on moodle)
4th week
Functions
Prepare the data structures chapter of the Python tutorial
Start homework 3 (the link to this assignment is on moodle)
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 (the link to this assignment is on moodle)
6th week
Modules and Packages
Documentation
Build teams and select topics for the term project
Prepare Classes up to and including Private Variables) of the Python tutorial
Start homework 5 (the link to this assignment is on moodle)
7th week
Creating Your Own Data Types
Prepare chapter 9 ("Unit Testing") of "Dive into Python 3"
Start homework 6 (the link to this assignment is on moodle)
8th week
Unit Testing
Read Python's Functional Programming HOWTO
Start homework 7 (the link to this assignment is on moodle)
9th week
Functional Programming
Read the first three chapters of the "Data Structures" wikibook: Introduction, Asymptotic Notation and Arrays
Start homework 8 (the link to this assignment is on moodle)
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 (the link to this assignment is on moodle)
11th week
Linear optimization with PuLP
Download the PuLP.ipynb ipython notebook
Follow the instructions on using ipython notebooks
Start homework 10 (the link to this assignment is on moodle)
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 (the link to this assignment is on moodle)
13th week
Review and Outlook
14th week
Q & A
15th week
Final exam

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

Notes

Interactive Learning Platforms

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