Python
Python Basics
Fundamental concepts of the Python programming language.
Introduction to Python
Content for Introduction to Python, its philosophy, and common use cases will go here.
Basic Syntax & Variables
Content covering Python's basic syntax, indentation, comments, and variable declaration/assignment.
Data Types (Numbers, Strings, Lists)
Content explaining core data types: integers, floats, booleans, strings, lists, tuples, dictionaries, sets.
Control Flow (if, for, while)
Content on conditional statements (if/elif/else) and loops (for, while).
Functions
Content on defining and calling functions, arguments, return values, and lambda functions.
Modules & Packages
Content on importing modules, using standard library modules, and creating/using packages.
Object-Oriented Python
Understanding Python's object-oriented programming features.
Classes and Objects
Content on defining classes, creating objects (instances), constructors (__init__), methods, and attributes.
Inheritance
Content explaining single and multiple inheritance, method overriding, and super().
Polymorphism
Content on duck typing and how polymorphism works in Python.
Encapsulation
Content on access control (public, protected, private conventions) and properties.
Python for Embedded Systems
Using Python in resource-constrained environments.
MicroPython
Content introducing MicroPython, its features, and supported hardware.
CircuitPython
Content on CircuitPython, its differences from MicroPython, and its focus on ease of use.
Hardware I/O (GPIO, ADC)
Content on controlling GPIO pins, reading analog values with ADC using MicroPython/CircuitPython libraries.
Communication Protocols (SPI, I2C)
Content on using SPI, I2C, and UART with Python on microcontrollers.
Libraries for Embedded
Content about common libraries and drivers available for sensors and modules in the MicroPython/CircuitPython ecosystem.
Limitations & Considerations
Content discussing performance, memory usage, and other limitations of Python in embedded contexts compared to C/C++.
Advanced Python Concepts
Exploring more advanced features of the Python language.
Decorators
Content explaining what decorators are and how to use them.
Generators & Iterators
Content on creating and using generators and iterators for efficient data processing.
Asynchronous Programming (asyncio)
Content on using asyncio for concurrent programming in Python, relevant for some embedded applications.
Testing in Python (unittest, pytest)
Content on writing unit tests and using testing frameworks like unittest and pytest.
Packaging & Distribution
Content on creating packages and distributing Python code (e.g., using setuptools, PyPI).
Python & External Systems
Interfacing Python with other languages and systems.
Interfacing with C/C++ (ctypes, Cython)
Content on using ctypes or Cython to call C/C++ code from Python for performance-critical sections.
Working with APIs
Content on making HTTP requests and consuming web APIs using Python libraries like `requests`.
IoT Platforms & Python
Content on how Python is used with IoT platforms and cloud services.