Agenda: Python Advanced (2023-11-22 - 2023-11-24)

Day 1: Basic Python

Exercise Prerequisites: The Commandline

Datatypes, Datatypes

Audience consists of experienced programmers in other languages, so I expect to go over these topics rather quickly. We should not miss the central points though, like Python’s referencing scheme, im/mutability, memory management, typing. And iteration of course 😎. Everything’s an object, alas.

Functions

Looping Constructs (With An Emphasis On The else Clause)

Generators

Miscellaneous

Day 2: Group Project Kickoff, Advanced Topics

Group Project Kickoff

Create a semi-realistic application, put together in a typical Python project. Solve problems as we go (for example: at some point in the project is will be necessary to formalize error handling; that will lead us to exceptions)

An idea: Data Logger

  • Data acquisition: gathering sensor data

  • Varying kinds of sensors: physical hardware, internet proxy, MQTT, …

  • Varying kinds of information sinks: CSV, database, MQTT, …

  • Acquisition machinery: timestamping, frequency, buffering, …

Project Management, Test Driven Development

Project Management

Test Driven Development

Object Oriented Programming

From Object Oriented Programming

Postpone most of that, start with classes and bring in the rest later.

Error Handling And Recovery

Day 3: More Advanced Topics (All The Rest, And More)

Note that this is much more than we will actually have time for - most of it is optional.

MQTT

Bring that into the project somehow (find a use case 😇)

CSV And Databases

Closures, Decorators And More

Dynamic Features

Multithreading

Data Science Topics