Übungsaufgaben zu Programmiersprachen und Paradigmen

https://bildung.social/@oerinformatik/

https://oer-informatik.de/programmiersprachen-uebungsaufgaben

Programmiersprache, Compiler, Interpreter, Skriptsprache, Fehlerarten, strukturierte Programmierung, objektorientierte Programmierung, Auswahlkriterien, Übungsaufgaben, Prüfungsvorbereitung

tl/dr; (Bearbeitungszeit insgesamt 48 min, mehrere Aufgaben): Drei Übungsaufgaben zu Programmiersprachen. In der Basisstufe vergleichst Du für die Türschild-Firmware eines Barcamps Compiler- und Interpretersprachen, ordnest Werkzeuge der Programmierumgebung zu und bestimmst Fehlerarten; für einen Fahrradhersteller nennst Du Vorteile der Objektorientierung, bestimmst Merkmale strukturierter Programmierung und von Skriptsprachen und begründest, warum Preise auf dem Server berechnet werden. In der Kernstufe ordnest Du Python, Go und C# Spracheigenschaften zu, bewertest die drei Sprachen für die Auswertung von Raumsensoren mit einer gewichteten Kriterientabelle, prüfst die Gewichtung kritisch und baust einen prozeduralen Prototyp zu einem objektorientierten Entwurf um. Alle Lösungen sind ausgeblendet und mit Punkteverteilung versehen [AI-Assisted]. (Zuletzt geändert am 28.10.2026)

Diese Übungsaufgaben gehören zum Artikel Programmiersprachen und Paradigmen.

Wortwolke mit Begriffen der Übungsaufgaben zu Programmiersprachen und Paradigmen, darunter Compiler, Interpreter, Programmiersprache, Skriptsprache und objektorientiert (mit KI erstellt)

Hinweise zur Bearbeitung: Bis zur Teil-1-Prüfung der IT-Berufe solltest Du die Basiskompetenz beherrschen, also Aufgabe 1.1 und Aufgabe 1.2. Als FIDV musst Du zur Teil-2-Prüfung Aufgaben auf Kernkompetenz-Ebene lösen können, das ist Aufgabe 2.1. Bei „nennen“ genügen Stichworte, bei „erläutern“, „beschreiben“ und „begründen“ erwartet die Aufgabe ganze Sätze mit Bezug zur Situation. Bei Auswahlaufgaben trägst Du die Ziffer der richtigen Antwort ein. Schreib Deine Lösung zuerst vollständig auf, bevor Du die Beispiellösung aufklappst; andere sachlich richtige Antworten sind ebenfalls richtig.

Du möchtest eigene Aufgaben zum Üben von einem KI-Sprachmodell generieren lassen?

Kopiere den Text in ein KI-Sprachmodell Deiner Wahl und passe Kompetenzstufe, Anzahl, Bearbeitungszeit und Szenario bei Bedarf an. Wie die Aufgaben aufgebaut sind, beschreibt der Artikel Wie sind die Aufgaben aufgebaut?. Prüfe die Ergebnisse mit dem Lehrartikel: KI-Sprachmodelle machen Fehler.

Erstelle neue Übungsaufgaben zum Thema „Programmiersprachen und
Paradigmen“.

Bauplan: Halte Dich an Aufbau, Kompetenzstufen, Operatoren,
Anforderungsbereiche, Punkte und Zeitschätzung, die im Artikel
https://oer-informatik.de/aufgaben-aufbau beschrieben sind.

Fachliche Grundlage:
- https://oer-informatik.de/programmiersprachen
- https://oer-informatik.de/entwicklungswerkzeuge
- Stilbeispiel: https://oer-informatik.de/programmiersprachen-uebungsaufgaben

Die Aufgaben sollen Inhalte zu diesen Schlagwörtern abdecken:
- Programmiersprache
- Compiler
- Interpreter
- Skriptsprache
- Fehlerarten
- strukturierte Programmierung
- objektorientierte Programmierung
- Auswahlkriterien

Kompetenzstufe: Basiskompetenz (alternativ: Kernkompetenz, Profilkompetenz, Expertise)
Anzahl: 1 Aufgabe mit Teilaufgaben
Bearbeitungszeit in Minuten ca.: <5 bis 30 min>
Szenario: eines der Szenarien aus dem Bauplan

Vorgehen:
1. Lies zuerst die verlinkten Artikel. Kannst Du keine Webseiten
   abrufen, sag mir das, statt zu raten.
2. Steht bei einer Angabe noch ein Platzhalter in <…>, frag mich
   zuerst danach. Richte Punkte und Zahl der Teilaufgaben nach der
   Bearbeitungszeit (ca. 0,9 min je Punkt).
3. Gib je Aufgabe Titel mit Kompetenzstufe, Ausgangssituation und
   Teilaufgaben mit Operator und Punktzahl aus, dazu die geschätzte
   Bearbeitungszeit.
4. Gib die Beispiellösungen mit Punkteverteilung erst aus, wenn ich
   danach frage.

Aufgabe 1.1: Firmware für die Türschilder eines Barcamps (Basiskompetenz)

(ca. 14 min Bearbeitungszeit)

Für das Barcamp „Lernen.Digital.Leben 2027“ am Ratz und Rübe Berufskolleg in Bielefeld entwickelt ein Schüler*innen-Team die Software für zwölf E-Ink-Türschilder mit ESP32-Mikrocontroller. Emre Aksoy hat einen Prototyp in MicroPython geschrieben (der Mikrocontroller führt den Quelltext mit einem Interpreter aus). Svenja Krämer schlägt vor, die Firmware in C++ zu schreiben und zu kompilieren, damit der Akku länger hält. Du arbeitest als Auszubildende*r im Team mit.

a) Erläutere den wesentlichen Unterschied zwischen Compiler- und Interpretersprachen. (3 Punkte)

Ein Compiler übersetzt den gesamten Quelltext vor der Ausführung in Maschinencode und speichert ihn als ausführbares Programm; auf dem ESP32 läuft dann direkt Maschinencode, schnell und mit wenig Rechenaufwand (1,5 Punkte). Ein Interpreter liest den Quelltext zur Laufzeit Anweisung für Anweisung, übersetzt und führt sie sofort aus; das kostet bei jeder Ausführung Rechenzeit und damit Energie, Änderungen sind aber sofort testbar (1,5 Punkte).

b) Bestimme, welche Aussage auf einen Compiler zutrifft. Trage die Ziffer ein. (2 Punkte)

  1. Er übersetzt jede Anweisung erst in dem Moment, in dem sie ausgeführt wird.

  2. Er übersetzt den gesamten Quelltext und speichert das Ergebnis als ausführbare Programmdatei.

  3. Er findet alle Logikfehler eines Programms.

  4. Er führt dasselbe Maschinenprogramm auf allen Prozessorarchitekturen aus.

  5. Er wird nur für Skriptsprachen benötigt.

Ziffer der zutreffenden Aussage: ____

Ziffer 2 (2 Punkte). Aussage 1 beschreibt einen Interpreter, Logikfehler (3) findet kein Compiler, Maschinencode (4) ist an eine Prozessorarchitektur gebunden, und Skriptsprachen (5) werden meist interpretiert.

c) Ordne den Werkzeugen der Programmierumgebung ihre Aufgabe zu. (4 Punkte)

Werkzeug Aufgabe
A Editor 1 verbindet übersetzte Programmteile und Bibliotheken zu einem ausführbaren Programm
B Compiler 2 hält das Programm an Haltepunkten an und zeigt die Werte der Variablen
C Linker 3 übersetzt den Quelltext und meldet Syntaxfehler
D Debugger 4 dient zum Schreiben des Quelltextes mit Syntaxhervorhebung

Je richtiger Zuordnung 1 Punkt: A–4, B–3, C–1, D–2.

Beim Testen treten drei Probleme auf:

    1. Beim Kompilieren erscheint die Meldung „expected ‘;’ before ‘}’ token“.
  • (2) Das Schild zeigt bei Sessions am Nachmittag die Uhrzeit um eine Stunde verschoben an.

  • (3) Das Programm bricht ab, weil die Datei mit den Raumnamen auf dem Speicher fehlt.

d) Bestimme für jedes Problem die Fehlerart. (3 Punkte)

Je 1 Punkt: (1) Syntaxfehler – der Compiler meldet ein fehlendes Semikolon; (2) Logikfehler – das Programm läuft, liefert aber ein falsches Ergebnis (z. B. Zeitzone falsch berechnet); (3) Laufzeitfehler – das Programm ist korrekt übersetzt, bricht aber während der Ausführung ab.

e) Nenne ein Kriterium, das für die Wahl der Programmiersprache der Türschild-Firmware wichtig ist, und begründe es. (3 Punkte)

Kriterium 1 Punkt, Begründung 2 Punkte, z. B.:

  • Energiebedarf und Leistung: Die Schilder laufen mit Akku; kompilierter C++-Code braucht weniger Rechenzeit, der Mikrocontroller kann länger schlafen, der Akku hält länger.

  • Know-how im Team: Die Schüler*innen kennen Python aus dem Unterricht; mit MicroPython ist die Firmware schneller fertig und leichter von anderen zu pflegen.

  • Verfügbare Bibliotheken: Für E-Paper-Displays und MQTT müssen gepflegte Bibliotheken für die Sprache vorhanden sein, sonst steigt der Aufwand stark.

Aufgabe 1.2: Software für einen Fahrradhersteller (Basiskompetenz)

(ca. 13 min Bearbeitungszeit)

Du bist Auszubildende*r bei der CSB-Rad GmbH in Bielefeld. Für die Werkstatt soll ein neues Modul entstehen, das Werkstattaufträge, Fahrräder und Ersatzteile verwaltet. Ein Kollege möchte es „wie früher“ prozedural schreiben, Cem Sarıkaya bevorzugt einen objektorientierten Ansatz.

a) Nenne zwei Vorteile objektorientierter gegenüber prozeduraler Programmierung. (2 Punkte)

Je Vorteil 1 Punkt, z. B.: Abbild der realen Dinge (Klassen Werkstattauftrag, Fahrrad, Ersatzteil); Kapselung schützt Daten vor unzulässigen Änderungen; Wiederverwendbarkeit und Erweiterbarkeit durch Vererbung; bessere Wartbarkeit, Änderungen bleiben in einer Klasse; Arbeitsteilung über klare Schnittstellen.

In den Programmierrichtlinien von CSB-Rad steht: „Programme sind strukturiert zu programmieren.“

b) Bestimme die zwei zutreffenden Aussagen zur strukturierten Programmierung. Trage die Ziffern ein. (2 Punkte)

  1. Sie verwendet nur Sequenz, Verzweigung und Wiederholung.

  2. Sie ist nur in objektorientierten Sprachen möglich.

  3. Jeder Strukturblock hat genau einen Eingang und einen Ausgang.

  4. Sie macht Programme in jedem Fall schneller.

  5. Sie ersetzt Tests, weil strukturierte Programme fehlerfrei sind.

Ziffern der zutreffenden Aussagen: ____ und ____

Ziffern 1 und 3 (je 1 Punkt).

c) Ordne die folgenden Quelltextausschnitte jeweils einem Paradigma zu (prozedural, objektorientiert, deklarativ) oder gib an, dass es sich um keine Programmiersprache handelt. (4 Punkte)

Ausschnitt
A SELECT artikelnummer FROM artikel WHERE lagerbestand < mindestbestand;
B public class Fahrrad { private String rahmennummer; public void reparieren() { … } }
C def berechne_versand(gewicht_kg): return 6.90 if gewicht_kg <= 31.5 else 49.00
D <h1>Werkstatt</h1><p>Termin buchen</p>

Je 1 Punkt: A deklarativ (SQL beschreibt, welches Ergebnis gewünscht ist); B objektorientiert (Klasse mit gekapseltem Attribut und Methode); C prozedural (Funktion mit Parameter); D keine Programmiersprache (HTML ist eine Auszeichnungssprache ohne Variablen, Verzweigungen und Schleifen).

Für die Auswertung von Lagerdaten soll außerdem eine Skriptsprache eingesetzt werden.

d) Bestimme, welche Aussage auf Skriptsprachen zutrifft. Trage die Ziffer ein. (2 Punkte)

  1. Skriptsprachen werden nur für Webseiten eingesetzt.

  2. Skriptsprachen werden meistens von einem Interpreter ausgeführt.

  3. Skriptsprachen laufen nur auf einem bestimmten Prozessortyp.

  4. Skriptsprachen benötigen eine IDE, um ausgeführt zu werden.

Ziffer der zutreffenden Aussage: ____

Ziffer 2 (2 Punkte).

Im Rahmen-Konfigurator des Onlineshops wird der Preis bisher mit JavaScript im Browser berechnet und mit der Bestellung an den Server geschickt.

e) Begründe, warum der verbindliche Preis serverseitig berechnet werden sollte, und nenne je eine client- und eine serverseitige Skriptsprache. (4 Punkte)

  • Begründung (2 Punkte): Clientseitiger Code läuft auf dem Gerät der Kundschaft und lässt sich mit den Entwicklerwerkzeugen des Browsers verändern; ein manipulierter Preis würde sonst übernommen. Auf dem Server sind Berechnung, aktuelle Preise aus der Datenbank und Rabattregeln geschützt; die Anzeige im Browser dient nur als Vorschau.

  • Sprachen (je 1 Punkt): clientseitig JavaScript (bzw. TypeScript); serverseitig z. B. PHP, Python, Java, C# oder JavaScript mit Node.js.

Das Sequenzdiagramm zeigt den Ablauf: Der Browser berechnet nur eine Vorschau, den verbindlichen Preis ermittelt der Webserver mit den Preisen und Rabattregeln aus der Datenbank.

Sequenzdiagramm Rahmen-Konfigurator: Der Browser berechnet mit JavaScript einen Vorschaupreis; bei der Bestellung übernimmt der Webserver den übermittelten Preis nicht, lädt Preise und Rabatte aus der Datenbank und berechnet den verbindlichen Preis (mit KI erstellt)

Aufgabe 2.1: Programmiersprache für die Auswertung von Raumsensoren (Kernkompetenz)

(ca. 21 min Bearbeitungszeit)

Die Schul-IT OWL betreut am Ratz und Rübe Berufskolleg 120 Raumsensoren, die einmal pro Minute CO₂-Gehalt, Temperatur und Luftfeuchte senden. Svenja Krämer plant einen Dienst, der die Messwerte empfängt, auf Grenzwertüberschreitungen prüft, Lüftungshinweise an die Raumanzeigen schickt und Monatsberichte erstellt. In der engeren Wahl sind Python, Go und C#. Du bist Auszubildende*r bei der Schul-IT OWL.

a) Svenja Krämer hat Eigenschaften der drei Sprachen gesammelt, aber nicht notiert, zu welcher Sprache sie gehören. Trage in jede Zeile die passende Sprache ein. (3 Punkte)

Nr. Eigenschaft Sprache
1 Der Compiler erzeugt eine einzelne, eigenständige Programmdatei, die ohne zusätzliche Laufzeitumgebung auf dem Server startet.
2 Nebenläufigkeit mit leichtgewichtigen Goroutinen und Kanälen ist fester Bestandteil der Sprache.
3 Der Quelltext wird von einem Interpreter ausgeführt; welchen Datentyp eine Variable hat, steht erst zur Laufzeit fest.
4 Bibliotheken wie pandas und matplotlib nehmen bei Auswertungen und Diagrammen viel Arbeit ab.
5 Programme laufen in der .NET-Laufzeitumgebung; mit ASP.NET Core lassen sich Webdienste bauen.
6 Mit LINQ lassen sich Abfragen über Sammlungen direkt im Quelltext formulieren.

Je richtiger Zeile 0,5 Punkte: 1 Go, 2 Go, 3 Python, 4 Python, 5 C#, 6 C#.

Zu Zeile 1: Erwartet ist Go, weil eine einzelne, eigenständige Programmdatei dort der Standardweg ist. Auch C# kann mit Zusatzoptionen beim Veröffentlichen (dotnet publish als self-contained single-file oder mit Native AOT) eine eigenständige Datei erzeugen, die ohne installierte .NET-Laufzeit startet. Wer C# einträgt und das begründet, erhält die Punkte ebenfalls.

Um die Entscheidung nachvollziehbar zu machen, hat das Team die Sprachen gemeinsam auf einer Skala von 1 (schlecht) bis 5 (sehr gut) bewertet:

Kriterium Gewicht Python Go C#
Kenntnisse im Team 35 % 5 2 3
Bibliotheken für MQTT und Auswertungen 25 % 5 3 3
Speicher- und CPU-Bedarf im Dauerbetrieb 15 % 2 5 4
Bereitstellung auf dem Schulserver 25 % 3 5 3

b) Berechne für jede Sprache den gewichteten Nutzwert und gib an, welche Sprache die Tabelle empfiehlt. (3 Punkte)

Nutzwert = Summe aus Gewicht × Bewertung:

  • Python: 0,35 · 5 + 0,25 · 5 + 0,15 · 2 + 0,25 · 3 = 1,75 + 1,25 + 0,30 + 0,75 = 4,05

  • Go: 0,35 · 2 + 0,25 · 3 + 0,15 · 5 + 0,25 · 5 = 0,70 + 0,75 + 0,75 + 1,25 = 3,45

  • C#: 0,35 · 3 + 0,25 · 3 + 0,15 · 4 + 0,25 · 3 = 1,05 + 0,75 + 0,60 + 0,75 = 3,15

Die Tabelle empfiehlt Python.

Bewertung: Rechenweg 1 Punkt; je richtigem Nutzwert 0,5 Punkte; Empfehlung 0,5 Punkte.

c) Ein Kollege hält die Gewichtung für einseitig: Die Kenntnisse im Team sollen nur mit 20 % zählen, der Speicher- und CPU-Bedarf dafür mit 30 %. Prüfe, ob sich die Empfehlung dadurch ändert, und beurteile, was das für die Entscheidung bedeutet. Nenne außerdem ein Kriterium, das in der Tabelle fehlt, und begründe, warum es für einen Dienst wichtig ist, der über Jahre laufen soll. (5 Punkte)

  • Neue Nutzwerte (2 Punkte): Python 0,20 · 5 + 0,25 · 5 + 0,30 · 2 + 0,25 · 3 = 3,60; Go 0,20 · 2 + 0,25 · 3 + 0,30 · 5 + 0,25 · 5 = 3,90; C# 0,20 · 3 + 0,25 · 3 + 0,30 · 4 + 0,25 · 3 = 3,30. Jetzt liegt Go vorn.

  • Beurteilung (1 Punkt): Das Ergebnis kippt schon bei einer moderaten Verschiebung der Gewichte, die Entscheidung hängt also vor allem an der Gewichtung und nicht an klaren Unterschieden. Das Team sollte die Gewichte vor der Bewertung begründen und festlegen. Für 120 Sensoren mit einer Nachricht pro Minute ist der Ressourcenbedarf eher gering; ein Gewicht von 30 % dafür ist schwer zu begründen, die Kenntnisse im Team wiegen für den Betrieb über Jahre schwerer.

  • Fehlendes Kriterium (2 Punkte, Kriterium 1, Begründung 1), z. B.: Zukunftssicherheit und Sicherheitsupdates von Sprache und Bibliotheken, sonst muss der Dienst später aufwendig umgezogen werden; Testbarkeit und Werkzeuge, damit Änderungen gefahrlos möglich sind; Einarbeitungsaufwand für jedes neue Ausbildungsjahr, weil die Betreuung wechselt.

Ein Auszubildender hat für die Lüftungshinweise schon einen Prototyp in Python geschrieben:

sensoren = [
    {"id": "R-114-co2", "art": "co2", "wert": 1320},
    {"id": "R-114-temp", "art": "temperatur", "wert": 27.5},
    {"id": "R-207-feuchte", "art": "feuchte", "wert": 38},
]

def hinweis(sensor):
    if sensor["art"] == "co2" and sensor["wert"] > 1000:
        return "Bitte lüften"
    elif sensor["art"] == "temperatur" and sensor["wert"] > 26:
        return "Zu warm"
    elif sensor["art"] == "feuchte" and sensor["wert"] < 30:
        return "Luft zu trocken"
    return None

d) Analysiere zwei Schwächen dieses Prototyps, die spätestens dann auffallen, wenn weitere Sensorarten (z. B. Feinstaub) hinzukommen. Skizziere anschließend einen objektorientierten Entwurf mit Klassen, ihren wichtigsten Attributen und Methoden und ihren Beziehungen, der diese Schwächen behebt. (5 Punkte)

Schwächen (je 1 Punkt), z. B.:

  • Jede neue Sensorart verlangt eine Änderung der zentralen if-elif-Kette; die Funktion wächst und jede Änderung kann die bestehenden Prüfungen beschädigen.

  • Grenzwerte stehen als feste Zahlen mitten im Code und lassen sich nicht je Raum oder Sensor einstellen.

  • Die Art ist nur eine Zeichenkette; ein Tippfehler wie "CO2" fällt erst zur Laufzeit auf, weil dann einfach kein Hinweis entsteht.

  • Die Daten liegen offen in Wörterbüchern; jeder Programmteil kann wert oder art beliebig ändern.

Entwurf (3 Punkte), z. B.:

  • Eine abstrakte Klasse Sensor mit den gekapselten Attributen kennung, grenzwert und wert, der Methode messwert_setzen(wert) und der abstrakten Methode hinweis() (1 Punkt).

  • Unterklassen Co2Sensor, TemperaturSensor und FeuchteSensor erben von Sensor und überschreiben hinweis() jeweils mit ihrer eigenen Regel; eine neue Sensorart ist eine neue Unterklasse, bestehender Code bleibt unverändert (1 Punkt).

  • Eine Klasse Raum kennt ihre Sensoren (Aggregation 1 zu 1..*); der Dienst ruft für jeden Sensor hinweis() auf, ohne die Art zu kennen (Polymorphie) (1 Punkt).

from abc import ABC, abstractmethod

class Sensor(ABC):
    def __init__(self, kennung, grenzwert):
        self._kennung = kennung
        self._grenzwert = grenzwert
        self._wert = None

    def messwert_setzen(self, wert):
        self._wert = wert

    @abstractmethod
    def hinweis(self):
        pass

class Co2Sensor(Sensor):
    def hinweis(self):
        if self._wert is not None and self._wert > self._grenzwert:
            return "Bitte lüften"
        return None

Als UML-Klassendiagramm sieht der Entwurf so aus:

UML-Klassendiagramm: abstrakte Klasse Sensor mit kennung, grenzwert, wert, messwert_setzen und abstrakter Methode hinweis; Unterklassen Co2Sensor, TemperaturSensor und FeuchteSensor; ein Raum aggregiert 1..* Sensoren (mit KI erstellt)

Eine Skizze als UML-Klassendiagramm oder als Stichwortliste ist ebenso richtig wie Code.

Für die wöchentliche Prüfung, ob alle Sensoren erreichbar sind, möchte Svenja Krämer ein kleines Administrationsskript schreiben.

e) Erläutere je einen Vorteil einer Skriptsprache und einer Compilersprache für dieses Administrationsprogramm. (4 Punkte)

Je Vorteil 2 Punkte, z. B.:

  • Skriptsprache: Änderungen sind sofort ausführbar, weil nicht kompiliert werden muss; für Administrationsaufgaben gibt es fertige Befehle und Module (Netzwerkzugriffe, Dateien, Zeitpläne), und das Skript lässt sich direkt auf dem Server anpassen.

  • Compilersprache: Das fertige Programm läuft schneller und wird als ausführbare Datei ohne Quelltext und Interpreter verteilt; Syntax- und viele Typfehler werden schon beim Übersetzen gefunden, und meist steht eine leistungsfähige Entwicklungsumgebung zur Verfügung.

f) Auch C# wird weder rein kompiliert noch rein interpretiert. Erläutere, wie ein C#-Programm vom Quelltext bis zur Ausführung gelangt, und nenne einen Vorteil dieses Wegs für die Schul-IT. (3 Punkte)

Der C#-Compiler übersetzt den Quelltext zunächst in eine prozessorunabhängige Zwischensprache (Common Intermediate Language, CIL). Erst beim Start lädt die .NET-Laufzeitumgebung diesen Zwischencode und übersetzt ihn mit einem Just-in-time-Compiler in Maschinencode für den vorhandenen Prozessor (2 Punkte). Vorteil, z. B.: Dasselbe übersetzte Programm läuft auf dem Linux-Server ebenso wie auf einem Windows-Testrechner, und der Compiler findet Typfehler schon vor dem Einsatz (1 Punkt).


Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Übungsaufgaben zu Programmiersprachen und Paradigmen” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/programmiersprachen-uebungsaufgaben veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/programmierung/programmiergrundlagen. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 28.10.2026.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: