PCPP1: Übungsplan, Selbsttest-Methode, Syllabus-Checkliste, Prüfungsstrategie
Track Python · PCPP1 Abschluss · ca. 40 Min.
Worum es geht
Für die PCPP1 (Exam PCPP-32-101) gibt es laut Glossar keinen offiziellen Übungstest. Du musst dir die Übung selbst bauen. Diese Lektion schließt den PCPP1-Teil ab (Lektionen 11 bis 18): Sie gibt dir den Lernplan, eine Methode für Selbsttests, eine Syllabus-Checkliste mit Verweisen auf die Lektionen und eine Zeitstrategie für die Prüfung. Ganz am Ende steht ein kurzer Ausblick auf PCPP2.
Du baust in den Übungen vier kleine Werkzeuge: einen Zeitplaner, eine Fehlerprotokoll-Auswertung, eine Lücken-Suche für die Checkliste und eine Entscheidung zur Selbsttest-Methode. Alle vier trainieren nebenbei Python, das in der PCPP1 vorkommt (Dictionaries, Datum, Listen sortieren).
Von JS/TS her gedacht
Du kennst Testen und Coverage. Die Selbsttest-Methode ist dasselbe Prinzip für dein Wissen:
| Entwicklungsalltag | Selbsttest für die Prüfung |
|---|---|
| Test zuerst schreiben, der rot ist (red/green) | Ausgabe vorhersagen, bevor du den Code ausführst |
| Test ausführen, Abweichung lesen | Code ausführen und mit der Vorhersage vergleichen |
| Bug-Ticket mit Ursache | Eintrag in die Fehlerliste mit einem Satz Erklärung |
| Regressionstest nach einer Woche | Fehlerliste nach einer Woche erneut durchgehen |
| Coverage-Report pro Modul | Syllabus-Checkliste: jedes Prüfungsziel abhaken |
| Sprint-Planung nach Aufwand | Zeitbudget pro Block nach Fragenzahl (und Gewicht) |
Konzept in kleinen Schritten
Schritt 1: Die Prüfung in Zahlen
Alle Angaben stammen laut Glossar von den offiziellen Seiten (Stand der Quelle: 1. Oktober 2026). Vor dem Buchen auf der Seite des Python Institute gegenprüfen (bitte prüfen).
| Punkt | PCPP1 (PCPP-32-101) |
|---|---|
| Fragen | 45 in fünf Blöcken |
| Dauer | 65 Minuten (plus 10 Minuten Tutorial) |
| Bestehen | 70 % |
| Kosten | ab 325 USD, nur Einzelvoucher, keine Wiederholungsoption |
| Wiederholung | frühestens nach 15 Tagen |
| Übungstest | laut Seite keiner |
| Block | Thema | Fragen | Gewicht | Lektion |
|---|---|---|---|---|
| 1 | Fortgeschrittene OOP | 15 | 35 % | 11, 12, 13 |
| 2 | Coding-Konventionen, Best Practices | 7 | 12 % | 14 |
| 3 | GUI-Programmierung | 8 | 20 % | 15 |
| 4 | Netzwerkprogrammierung | 8 | 18 % | 16 |
| 5 | Dateiverarbeitung und Umgebung | 7 | 15 % | 17, 18 |
Beachte: Fragenanteil und Gewicht sind nicht dasselbe. Block 1 hat 15 von 45 Fragen, das sind 33,3 %, das Gewicht ist aber 35 %. Block 3 hat 8 von 45 Fragen (17,8 %), das Gewicht ist 20 %. Das Glossar nennt beide Zahlen ohne Erklärung. Für die Zeitplanung nimmst du die Fragenzahl, für die Lernplanung das Gewicht. Warum die Zahlen abweichen, steht nicht in der Quelle (bitte prüfen).
Schritt 2: Der Lernplan (acht Wochen)
Annahme laut Glossar: etwa fünf Stunden pro Woche, PCAP-Wissen ist vorhanden.
| Woche | Fokus | Lektion | Übung zum Selbermachen |
|---|---|---|---|
| 1 | Block 1, Teil A: Spezialmethoden, MRO, Dekoratoren, Klassen- und statische Methoden | 11, 12 | Klasse Money mit Vergleich, Rechnen, Hash und __repr__. Dekorator mit Argumenten und Klassendekorator |
| 2 | Block 1, Teil B: abstrakte Klassen, Properties, Kopieren, Serialisierung, Exceptions, Metaklassen | 12, 13 | Abstrakte Basisklasse mit zwei Implementierungen. Exception-Kette mit from. Metaklasse, die Klassen registriert |
| 3 | Block 2: PEP 1, 8, 20, 257, 484 | 14 | Eigenen Code mit flake8 oder pycodestyle prüfen, mit black formatieren, Docstrings ergänzen |
| 4 | Block 3: tkinter | 15 | Mini-App mit Entry, Button, Listbox, Eingabeprüfung, Dialogen, bind und after |
| 5 | Block 4: Sockets, HTTP, JSON, requests |
16 | Echo-Server und Client, danach CRUD-Client gegen eine Test-API |
| 6 | Block 5, Teil A: sqlite3, csv, xml |
17 | Daten aus CSV in SQLite laden, abfragen, als XML exportieren |
| 7 | Block 5, Teil B: logging, configparser, os, datetime, io |
18 | Projekt aus Woche 6 um Konfigurationsdatei, Logging mit zwei Handlern und Datumsfilter erweitern |
| 8 | Wiederholung | alle | Fehlerliste durchgehen, Checkliste abhaken, Code-Vorhersage-Drills aus allen Blöcken |
Die Lektionsnummern in der dritten Spalte sind der Bezug zu dieser Plattform, nicht Teil der Quelle.
Die beste Vorbereitung laut Glossar ist ein einziges Abschlussprojekt, das alle Blöcke berührt: eine kleine tkinter-Anwendung, die über requests Daten holt (Block 4), in SQLite speichert (Block 5), Einstellungen aus einer .ini-Datei liest, Ereignisse loggt, eine saubere OOP-Struktur mit abstrakter Basisklasse und Dekoratoren hat (Block 1) und PEP 8 einhält (Block 2). Für dich: Das passt zu einem Portfolio-Projekt, nicht nur zur Prüfung.
Schritt 3: Die Selbsttest-Methode
Vier Schritte laut Glossar:
- Nimm einen Codeausschnitt, verdecke die Kommentare mit der Ausgabe und sage die Ausgabe vorher.
- Führe den Code aus und vergleiche.
- Jede falsche Vorhersage kommt mit einer Erklärung in einem Satz in eine Fehlerliste. Nach einer Woche gehst du die Liste erneut durch.
- Schreibe zu jedem Prüfungsziel des Syllabus ein kurzes Skript, das es zeigt.
Eine Fehlerliste ist nur eine Liste von Einträgen. Als Python-Datenstruktur sieht ein Eintrag so aus:
Der Satz ist der wichtigste Teil. Wenn du ihn nicht in einem Satz formulieren kannst, hast du das Konzept noch nicht verstanden. Dann hilft Schritt 4: ein eigenes kleines Skript zum Prüfungsziel schreiben (z. B. eine absichtlich widersprüchliche Klassenhierarchie, die einen TypeError bei der MRO auslöst).
Welche Maßnahme zu welchem Fehlertyp passt, ergibt sich aus den vier Schritten. Das Glossar gibt keine Tabelle dafür vor, die folgende Zuordnung ist eine eigene Ableitung:
| Fehlertyp | Maßnahme |
|---|---|
| Falsche Vorhersage, Konzept unklar | Ein Satz Erklärung in die Fehlerliste, nach einer Woche wiederholen |
| Prüfungsziel nie praktisch gesehen | Kurzes Skript zum Ziel aus dem Syllabus schreiben |
| Falsch gelesen (z. B. Anzahl der Antworten) | Vor dem Antworten die Fragestellung lesen, siehe Schritt 5 |
| Zu langsam | Zeitbudget pro Block festlegen und üben (Übung 1) |
Schritt 4: Die Syllabus-Checkliste mit Verweisen
Die 14 Punkte der Checkliste aus dem Glossar, jeweils mit der Lektion, in der du sie übst. Hake nur ab, was du ohne Nachsehen kannst.
| Nr. | Ich kann … | Lektion |
|---|---|---|
| 1 | __eq__, __hash__, __lt__, __add__, __getitem__, __call__ implementieren und erklären, wann NotImplemented zurückgegeben wird |
11 |
| 2 | eine MRO vorhersagen und inkonsistente Hierarchien erkennen | 11 |
| 3 | Dekoratoren mit Argumenten, mit functools.wraps, als Klasse und für Klassen schreiben |
12 |
| 4 | @classmethod, @staticmethod und Instanzmethoden sicher unterscheiden |
12 |
| 5 | abstrakte Klassen und Properties (Getter, Setter, Deleter) anwenden | 12 |
| 6 | sagen, wann Unterklassen von list und dict überraschen |
12 |
| 7 | __cause__, __context__ und raise ... from None erklären |
13 |
| 8 | flache und tiefe Kopien unterscheiden und pickle und shelve korrekt nutzen |
13 |
| 9 | type(name, bases, dict) und eine Metaklasse schreiben |
13 |
| 10 | PEP 1, 8, 20, 257 und 484 und die Namenskonventionen | 14 |
| 11 | eine tkinter-App mit grid, place, bind, Variablen und Dialogen bauen |
15 |
| 12 | einen einfachen Socket-Client und -Server schreiben, HTTP-Methoden und Statuscodes zuordnen | 16 |
| 13 | json, xml.etree.ElementTree und requests für einen CRUD-Client nutzen |
16 (XML auch 17) |
| 14 | sicher mit sqlite3 (Platzhalter, Transaktionen, Cursor), csv, logging und configparser arbeiten |
17 und 18 |
Punkt 14 ist im Glossar ein einziger Punkt. Die Lektion 17 deckt sqlite3 und csv ab, Lektion 18 logging und configparser. Das ist die Aufteilung dieser Plattform.
Die Checkliste lässt sich als Dictionary abbilden und auswerten. Das tust du in Übung 3.
Schritt 5: Die Prüfungsstrategie
Laut Glossar:
- Zeit: 45 Fragen in 65 Minuten sind im Schnitt rund 1,4 Minuten je Frage. Bei Codeaufgaben zuerst die schnellen Fragen beantworten und markierte Fragen am Ende nachholen, sofern die Prüfungssoftware das erlaubt (ob sie es erlaubt, steht nicht in der Quelle, bitte prüfen).
- Mehrfachauswahl: Lies, wie viele Antworten verlangt werden, bevor du auswählst.
- Syllabus-Abgleich: Jedes Prüfungsziel im Syllabus entspricht einem Abschnitt im Glossar. Gewichte nach Prozent: OOP zuerst, danach GUI, Netzwerk, Dateien, Konventionen.
- Buchung: Voucher ab 325 USD, nur Einzelversuch, danach 15 Tage Wartezeit bis zur Wiederholung. Plane daher einen ernsthaften Probelauf ein, bevor du buchst.
Die Zeit rechnest du am besten nach Fragenzahl pro Block. Rechne zusätzlich eine Reserve ein (Puffer), in der du zu markierten Fragen zurückkehrst. Beispiel mit 10 Minuten Puffer: 55 Minuten bleiben für 45 Fragen, im Schnitt rund 1,2 Minuten pro Frage.
Diese Rechnung (Zeit proportional zur Fragenzahl, 10 Minuten Puffer) ist ein Vorschlag, keine Vorgabe der Quelle.
Schritt 6: Ausblick PCPP2 (nur Überblick)
PCPP2 (Exam PCPP-32-201) ist die zweite Profi-Stufe. Laut Glossar war sie am 1. Oktober 2026 noch in Entwicklung, der Syllabus nicht veröffentlicht, und es gibt keine passenden kostenlosen Kurse. Empfohlen wird vorher PCAP und PCPP1. Geplant: 45 Fragen in 65 Minuten, 70 % zum Bestehen, ab 295 USD, Gültigkeit 5 Jahre. Das ist ein Planungsstand, vor dem Einplanen erneut prüfen (bitte prüfen).
Die Themenfelder laut Seite (Beispielwerkzeuge sind nur Beispiele und nicht verbindlich):
| Themenfeld | Inhalte | Beispielwerkzeuge |
|---|---|---|
| Testen | Prinzipien und Techniken, Unit- und Funktionstests | unittest, pytest, unittest.mock |
| Entwurfsmuster | Singleton, Factory, Facade, Proxy, Observer, Command, Template Method, State | reines Python, abc |
| Parallelität | Threads, Prozesse, Subprozesse, Synchronisation | threading, multiprocessing, subprocess, queue |
| Netzwerk | Sockets, Automatisierung, Software-Defined Networking, Sicherheit | socket, ssl |
| Datenbanken | relational und nicht-relational, CRUD, ORM | sqlite3, z. B. SQLAlchemy |
| Clean Code und Optimierung | Wartbarkeit, Refactoring, Optimierung | timeit, cProfile |
Für dich als Senior Developer sind Testen, Entwurfsmuster und Clean Code vermutlich vertraut, Parallelität knüpft an die Lücken im Python-Laufzeitmodell an (GIL, Threads gegen Prozesse). Tiefer wird PCPP2 hier erst behandelt, wenn der Syllabus erscheint.
Falle: Üben ohne Rückkopplung
Die typische Falle beim Selbstlernen ohne Übungstest: Lesen fühlt sich wie Können an. Wer Code nur durchliest und nickt, merkt erst in der Prüfung, was fehlt. Zwei Gegenmittel aus der Methode: erst vorhersagen, dann ausführen (die Abweichung zeigt die Lücke), und jede Abweichung als Satz festhalten.
Eine zweite Falle: zu spät buchen oder zu früh buchen. Es gibt nur einen Einzelvoucher ohne Wiederholungsoption und 15 Tage Wartezeit. Plane also einen echten Probelauf mit Zeitlimit, bevor du buchst. Eine Bestehensgrenze für die Selbsttests, ab der du buchst, nennt das PCPP1-Glossar nicht (das PCAP-Glossar nennt 85 % in Probetests, übertragbar auf PCPP1 ist das nur eine Annahme, bitte prüfen).
Übungen
Übung 1: Zeitplan nach Fragenzahl
Schreibe zeitplan(bloecke, minuten, puffer=0). bloecke ist ein Dictionary {Blockname: Fragenzahl}. Von den minuten wird zuerst der puffer abgezogen. Die restlichen Minuten verteilst du proportional zur Fragenzahl auf die Blöcke. Rückgabe: ein neues Dictionary {Blockname: Minuten}, jeder Wert auf eine Nachkommastelle gerundet. Das übergebene Dictionary darf nicht verändert werden.
Wie viele Fragen gibt es insgesamt, und wie viele Minuten stehen nach dem Puffer wirklich zur Verfügung? Der Anteil eines Blocks ist seine Fragenzahl geteilt durch die Gesamtzahl. Eine Dictionary-Comprehension baut dir direkt ein neues Dictionary.
def zeitplan(bloecke, minuten, puffer=0):
gesamt = sum(bloecke.values())
verfuegbar = minuten - puffer
return {name: round(fragen / gesamt * verfuegbar, 1) for name, fragen in bloecke.items()}
zeitplanÜbung 2: Fehlerprotokoll auswerten
Die Methode sagt: Nach einer Woche gehst du die Fehlerliste erneut durch. Schreibe faellig(eintraege, heute, tage=7). Jeder Eintrag ist ein Dictionary mit den Schlüsseln "thema" (String), "datum" (datetime.date), "richtig" (bool, war die Vorhersage richtig?) und "wiederholt" (bool, wurde der Eintrag schon wiederholt?).
Zurückgegeben wird eine alphabetisch sortierte Liste der Themen ohne Doppelte, die jetzt wiederholt werden sollen: Eintrag war falsch, wurde noch nicht wiederholt, und seit dem datum sind mindestens tage Tage vergangen (genau tage Tage zählt schon).
Drei Bedingungen gleichzeitig: Was sagt richtig, was sagt wiederholt, und wie rechnest du mit timedelta? Achte auf die Grenze: genau sieben Tage her ist schon fällig. Ein Thema kann mehrfach vorkommen, ein Set hilft gegen Doppelte.
from datetime import date, timedelta
def faellig(eintraege, heute, tage=7):
ergebnis = set()
for e in eintraege:
if not e["richtig"] and not e["wiederholt"] and e["datum"] + timedelta(days=tage) <= heute:
ergebnis.add(e["thema"])
return sorted(ergebnis)
faelligÜbung 3: Syllabus-Checkliste auswerten
Hier ist die Checkliste als Dictionary {Prüfungsziel: Lektionsnummer}. Schreibe wiederholen(checkliste, abgehakt): abgehakt ist eine Menge (oder Liste) der Ziele, die du sicher kannst. Rückgabe: die sortierte Liste der Lektionsnummern ohne Doppelte, in denen noch mindestens ein Ziel offen ist. Namen in abgehakt, die nicht in der Checkliste stehen, ignorierst du.
Für jedes Ziel zählt nur, ob es nicht in abgehakt steht. Gefragt sind aber Lektionen, nicht Ziele: Mehrere offene Ziele können zur selben Lektion gehören. Welche Datenstruktur entfernt Doppelte, und wie bekommst du am Ende eine sortierte Liste?
def wiederholen(checkliste, abgehakt):
abgehakt = set(abgehakt)
offen = {lektion for ziel, lektion in checkliste.items() if ziel not in abgehakt}
return sorted(offen)
wiederholenÜbung 4: Welche Maßnahme passt?
Du hast bei einer Code-Vorhersage zur MRO falsch gelegen und kannst nicht erklären, warum. Welches Vorgehen entspricht der Selbsttest-Methode aus dem Glossar? Gib den Buchstaben als String zurück, z. B. "A".
- A: Die Aufgabe so lange lesen, bis die Lösung vertraut wirkt, und dann zum nächsten Thema gehen.
- B: Einen Satz Erklärung in die Fehlerliste schreiben und sie nach einer Woche erneut durchgehen.
- C: Die Prüfung sofort buchen, damit ein fester Termin den nötigen Druck für das Lernen erzeugt.
- D: Beim Üben die Kommentare mit der Ausgabe stehen lassen, damit man das Ergebnis jederzeit sieht.
Gehe die vier Schritte der Methode durch. Was passiert mit einer falschen Vorhersage, und wann kommt sie wieder dran? Welche Variante lässt dich überhaupt erst vorhersagen?
antwort = "B"
antwortMerksatz und Prüfstein
Merksatz: Ohne offiziellen Übungstest bist du dein eigener Test: erst vorhersagen, dann ausführen, jede Abweichung als ein Satz in die Fehlerliste, nach einer Woche wiederholen.
Prüfstein (offene Frage): Wähle drei Punkte der Syllabus-Checkliste, bei denen du dir nicht sicher bist. Schreibe zu jedem ein kleines Skript, das das Ziel zeigt, und formuliere in einem Satz, was du dabei gelernt hast. Wie verteilst du deine 65 Minuten auf die fünf Blöcke, und wie viel Reserve für markierte Fragen planst du ein?
Quelle: quellen/python-glossar-pcap-pcpp1.md, Abschnitte “PCPP1 Übungsplan und Prüfungsstrategie” (Lernplan, Selbsttest-Methode, Syllabus-Checkliste, Prüfungsstrategie) und “Ausblick: PCPP2”, dazu die PCPP1-Prüfungsdaten aus dem Überblick der Quelle. Eigene Rechnungen und Ableitungen (nicht aus der Quelle): Zeitverteilung proportional zur Fragenzahl mit 10 Minuten Puffer, Zuordnung Fehlertyp zu Maßnahme, Verweise der Checkliste auf die Lektionen 11 bis 18. Offen (bitte prüfen): ob die Prüfungssoftware das Markieren von Fragen erlaubt, warum Fragenanteil und Gewicht der Blöcke abweichen, ob für PCPP1 eine Buchungsschwelle von Probetests gilt (nur die PCAP-Empfehlung ist bekannt), sowie alle Preise, Versionen und der PCPP2-Status (Stand der Quelle: 1. Oktober 2026).