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 😇)