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
Establish mindset
pytest
fixtures
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 😇)