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#