Educational Cards
Learn from video content, text, and interactive tasks
Filters
Passiv with modal verbs (müssen, können, sollen) – Telc B1
Passive + modal: Das muss gemacht werden. (It must be done.) Structure: Subject + modal...
Zustandspassiv (sein + Partizip II) – Telc B1
Zustandspassiv (state passive) describes a resulting state , not the process: Die Tür ist geöffnet....
Advanced decorators: stacking, parameters, and @property
Once you understand the basic decorator pattern, three extensions show up everywhere. Stacking is...
Python decorators: functions wrapping functions
Every time you write @dataclass above a class or @field_validator('name') above a method, you are...
Validation vs sanitization: the boundary-first principle
Your ML pipeline does not fail because of a bad model — it fails because someone uploaded a CSV...
ORM: bridging objects and SQL with SQLAlchemy
Software objects and relational tables represent data in fundamentally different ways. In Python, a...
Pydantic for boundary validation
When a JSON payload, a CSV row, or an API response hits your system, you have no guarantee about...
Python dataclasses for trusted domain objects
After external data passes boundary validation, it enters your system as a trusted domain object —...
Why pandas uses columnar storage
You hand someone a spreadsheet of 50 000 rows and ask "what's the average age?" They don't read...
Merging and concatenating DataFrames
Data rarely lives in one table. Customers are in one CSV, their orders in another, product details...
Creating and modifying DataFrame columns
The simplest thing you do with a DataFrame is derive new columns from existing ones, and the...
Handling missing data: NaN, fillna, and dropna
Real datasets have holes. A sensor goes offline, a respondent skips a question, a join finds no...