Edocti
Fortgeschrittene technische Ausbildung für den modernen Softwareingenieur
Edocti Training

Fortgeschrittenes Python — Praxis-Patterns für Systeme, Embedded & IoT

Fortgeschritten
21 h
4.8 (237 Bewertungen)
Fortgeschrittenes Python — Praxis-Patterns für Systeme, Embedded & IoT

Python für IoT: Fortgeschrittene Python‑Features auf Embedded Boards und vernetzten Geräten einsetzen.

Hands‑on mit MicroPython, CircuitPython und C‑Library‑Integration.

Sensoren, Aktuatoren, GPIO und Schnittstellen (UART, SPI, I²C) steuern.

Praktische Erfahrung sammeln durch ~70% Labs mit Deployment auf reale Boards.

Nutzen: Effiziente und zuverlässige IoT‑Prototypen und Embedded‑Lösungen bauen.

Für wen: gedacht für Personen mit Python‑Kenntnissen, die in IoT/Embedded einsteigen.

Mit Advanced‑Modulen zu Networking, Optimierung und sicheren IoT‑Deployments.

Curriculum

Modernes Python — kompakt und tief
  • Data Model und Dunder-Protokoll; Context Manager und RAII-ähnliche Patterns
  • Typing Essentials: typing, dataclasses, Protocols, TypedDict, Generics; Runtime vs. statische Checks
  • Structural Pattern Matching (match/case) und wann es die Lesbarkeit erhöht
  • Iterables/Iterators/Generators; generatorbasierte Coroutines vs. async/await
  • Speicher-Basics für Speed: bytes/bytearray/memoryview; Copy vs. View
Async I/O & Concurrency für Systems
  • asyncio Event Loop; Tasks, Cancellations, Timeouts; Backpressure und Queues
  • Threads vs. Processes vs. Async — klug wählen; GIL-Implikationen
  • Subprocess-Management; Piping und Log-Streaming
  • AnyIO/Trio (Überblick) und Blocking-Code via Executor integrieren
  • Lab: Async Serial→MQTT Bridge mit Retries und sauberem Shutdown
Binäres I/O, Parsing und Protokolle
  • struct, array, ctypes; Endianness, Alignment und CRC-Patterns
  • Framing-Strategien für UART/TCP (Length-Prefix, Delimiter, COBS/SLIP)
  • Memory Mapping (mmap) und Zero-Copy Slices; Ringbuffer
  • Lab: Binären Telemetrie-Frame parsen und CRC prüfen
Embedded- & IoT-Schnittstellen
  • Serial (pyserial) und GPIO-Basics (Plattformhinweise); SPI/I2C — Überblick
  • BLE mit bleak (Überblick) und MQTT mit paho-mqtt/httpx-websockets
  • CAN mit python-can (Überblick) und Logging-Strategien auf Geräten
  • SDKs und CLIs für Operatoren paketieren
Packaging & Dependency Management (modern)
  • pyproject.toml (PEP 517/518/621); Build Backends (setuptools/hatchling)
  • Editable Installs, Wheels, Versionierung; Constraints vs. Pins; pipx für Tools
  • Virtuelle Umgebungen (venv) und Projektsisolierung; reproduzierbare Builds
  • Lab: Treiber-Library paketieren und in internes Index publishen
Testing, Qualität und Zuverlässigkeit
  • pytest Fixtures/parametrize; tmp_path, monkeypatch; Coverage-Grundlagen
  • Hypothesis für Property-Based Tests; simples Fuzzing
  • Statische Checks: mypy (relativ strikt), ruff/flake8, black; pre-commit Hooks
  • Defensives Coding: Timeouts, Retries mit Jitter, Circuit Breakers (Skizze)
Performance & Profiling
  • cProfile, Performance Counter, Sampling-Profiler; timeit-Fallstricke
  • Vektorisierung mit numpy; wann numba oder Cython (Überblick)
  • Async vs. Threads für I/O-bound Workloads; Batching und Buffering
  • Lab: Telemetrie-Parser profilieren und Kopien vermeiden
C/C++-Interop und native Geschwindigkeit
  • ctypes und cffi — Trade-offs; sichere Aufrufe nativer Libraries
  • pybind11-Extensions (Design & ABI-Hinweise)
  • Wheels für Linux/Windows/macOS bauen; manylinux und Cross-Compile — Basics
  • Lab: kleine C-CRC-Funktion wrappen und gegen reines Python benchen
Networking und Messaging
  • httpx/requests — Basics; asyncio streams vs. websockets
  • MQTT QoS und Offline-Buffer; Reconnect-Strategien
  • ZeroMQ (Überblick) und nanomsg-Patterns für Edge
  • Lab: robuster Command-Channel über MQTT mit Backpressure

Optionale Module

Optional — MicroPython/CircuitPython und Edge-Deployment
  • Kernlogik nach MicroPython portieren; Constraints und Tipps
  • Firmware-Packaging und OTA-Strategie (konzeptionell)
Optional — Data & ML am Edge (Überblick)
  • Kleine Modelle, Feature Extraction mit numpy/scikit-image
  • On-Device Scheduling und Budget-orientiertes Inference

Kursablauf

  • Part 1: 09:00–10:30
  • Break: 10:30–10:45
  • Part 2: 10:45–12:15
  • Lunch break: 12:15–13:15
  • Part 3: 13:15–15:15
  • Break: 15:15–15:30
  • Part 4: 15:30–17:30