Programmieren - aiMOOC


Programmieren - aiMOOC
Einleitung
Programmieren bedeutet, verständliche und überprüfbare Anweisungen für einen Computer zu formulieren. Diese Anweisungen werden in einer Programmiersprache geschrieben und als Quellcode gespeichert. Aus dem Quellcode entsteht ein Computerprogramm, das Daten verarbeitet, Entscheidungen trifft, Abläufe automatisiert oder Menschen bei Aufgaben unterstützt. Programmieren gehört zur Softwareentwicklung und verbindet Informatik, Mathematik, Sprache, Logik, Kreativität und Teamarbeit.

In diesem aiMOOC lernst Du, wie Programmieren funktioniert, welche Grundbegriffe wichtig sind und wie Du vom Problem über den Algorithmus zum eigenen Programm kommst. Du erfährst, was Variablen, Datentypen, Bedingungen, Schleifen, Funktionen, Debugging, Tests und Versionsverwaltung bedeuten. Außerdem lernst Du, warum guter Code nicht nur „funktioniert“, sondern auch lesbar, wartbar, sicher und verantwortungsvoll gestaltet sein sollte.
Lernziele
Nach diesem aiMOOC kannst Du erklären, was Programmieren ist und wie es sich von allgemeiner Computernutzung unterscheidet. Du kannst einfache Probleme in Schritte zerlegen, einen Algorithmus formulieren, Grundstrukturen eines Programms erkennen und einfache Programme planen. Du kannst typische Fehlerarten unterscheiden, einfache Strategien zum Debugging anwenden und beurteilen, warum Datenschutz, IT-Sicherheit, Barrierefreiheit und Nachhaltigkeit auch beim Programmieren wichtig sind.
Was ist Programmieren?
Beim Programmieren übersetzt Du eine Idee oder eine Anforderung in eine genaue Folge von Anweisungen. Ein Mensch kann ungenaue Sätze oft aus dem Zusammenhang verstehen. Ein Computer braucht dagegen eindeutige Befehle. Schon kleine Abweichungen in der Syntax können dazu führen, dass ein Programm nicht startet oder ein anderes Ergebnis liefert als erwartet.
Ein einfaches Alltagsbeispiel hilft: Wenn Du jemandem sagst „Mach mir bitte ein Pausenbrot“, versteht die Person vielleicht automatisch, welches Brot, welcher Belag und welche Menge gemeint sind. Ein Computer würde genauere Angaben benötigen: Brot nehmen, Butter auftragen, Käse darauflegen, Brot zuklappen, Teller bereitstellen. Programmieren bedeutet also, Abläufe so präzise zu beschreiben, dass eine Maschine sie ausführen kann.
Programmieren und Softwareentwicklung
Programmieren ist ein zentraler Teil der Softwareentwicklung, aber nicht ihr einziger Bestandteil. Zur Entwicklung von Software gehören auch Anforderungsanalyse, Softwaredesign, Datenmodellierung, Oberflächengestaltung, Testen, Dokumentation, Projektmanagement, Wartung und Weiterentwicklung. In kleinen Lernprojekten übernimmt oft eine einzelne Person alle Rollen. In größeren Projekten arbeiten viele Menschen zusammen: Entwicklerinnen und Entwickler, Designerinnen und Designer, Testerinnen und Tester, Fachleute für Sicherheit, Projektleitungen und zukünftige Nutzerinnen und Nutzer.
Warum Programmieren wichtig ist
Programmieren ist nicht nur für berufliche Softwareentwicklerinnen und Softwareentwickler wichtig. Wer programmieren lernt, trainiert Problemlösen, Abstraktion, logisches Denken, Kreativität und den bewussten Umgang mit digitalen Systemen. Programmierkenntnisse helfen Dir, digitale Werkzeuge nicht nur zu benutzen, sondern ihre Funktionsweise zu verstehen. Dadurch kannst Du besser beurteilen, wie Apps, Websites, Suchmaschinen, Spiele, Roboter, KI-Systeme und automatisierte Systeme Entscheidungen vorbereiten oder Aufgaben erledigen.
Vom Problem zum Programm
Ein gutes Programm beginnt nicht mit dem Tippen von Code, sondern mit dem Verstehen des Problems. Wer zu früh programmiert, baut leicht eine Lösung für ein Problem, das gar nicht richtig geklärt wurde. Deshalb ist die Reihenfolge wichtig: verstehen, planen, umsetzen, testen, verbessern und dokumentieren.
Problemanalyse
Bei der Problemanalyse fragst Du: Was soll gelöst werden? Für wen soll die Lösung funktionieren? Welche Eingaben gibt es? Welche Ausgaben werden erwartet? Welche Sonderfälle können auftreten? Welche Regeln müssen eingehalten werden? Ein Taschenrechnerprogramm braucht zum Beispiel Zahlen und Rechenarten als Eingabe und ein Ergebnis als Ausgabe. Es muss aber auch berücksichtigen, dass eine Division durch null nicht erlaubt ist.
Algorithmus
Ein Algorithmus ist eine eindeutige Handlungsvorschrift zur Lösung einer Aufgabe. Algorithmen müssen nicht immer als Programm geschrieben werden. Auch ein Kochrezept, eine Wegbeschreibung oder eine Bauanleitung kann algorithmisch betrachtet werden. In der Informatik ist wichtig, dass ein Algorithmus aus klaren Schritten besteht und bei denselben Eingaben zuverlässig dieselben Ergebnisse liefern kann, sofern keine zufälligen Elemente vorgesehen sind.

Pseudocode
Pseudocode ist eine Zwischenform zwischen Alltagssprache und Programmiersprache. Er hilft Dir, eine Lösung zu planen, ohne Dich sofort um jede Einzelheit der Syntax kümmern zu müssen.
Eingabe: Alter
Wenn Alter mindestens 18 ist:
Gib aus: volljährig
Sonst:
Gib aus: minderjährig
Dieser Pseudocode zeigt eine Bedingung. Erst später entscheidest Du, ob Du die Lösung zum Beispiel in Python, JavaScript, Java, C, Scratch oder einer anderen Sprache umsetzt.
Grundbausteine des Programmierens
Quellcode
Quellcode ist der Text, den Programmierende schreiben. Er enthält Anweisungen, Namen, Werte, Kommentare und Strukturen. Der Quellcode ist für Menschen lesbar, muss aber von einem Interpreter direkt ausgeführt oder von einem Compiler in eine maschinennahe Form übersetzt werden.
Syntax und Semantik
Die Syntax beschreibt die formalen Regeln einer Programmiersprache: Welche Zeichen, Wörter und Strukturen sind erlaubt? Die Semantik beschreibt die Bedeutung: Was bewirkt eine Anweisung? Ein Satz kann syntaktisch korrekt sein, aber trotzdem eine falsche Bedeutung haben. Beim Programmieren gilt: Ein Programm kann fehlerfrei starten und trotzdem fachlich falsch rechnen. Deshalb sind Tests so wichtig.
Kommentare
Kommentare sind Textstellen im Quellcode, die nicht als Programm ausgeführt werden. Sie erklären, warum etwas getan wird, oder dokumentieren wichtige Entscheidungen. Kommentare sollten nicht das Offensichtliche wiederholen, sondern beim Verstehen helfen.

Ein hilfreicher Kommentar erklärt zum Beispiel, warum ein Grenzwert gewählt wurde. Ein schwacher Kommentar erklärt nur, was der Code ohnehin zeigt.
# Gut: Der Grenzwert folgt aus der Aufgabenstellung für Erwachsene. mindestalter = 18 # Weniger hilfreich: Setzt mindestalter auf 18. mindestalter = 18
Daten, Variablen und Datentypen
Variablen
Eine Variable ist ein benannter Speicherplatz für einen Wert. Der Name sollte verständlich sein. Ein Name wie `alter` ist klarer als `x`, wenn es um das Alter einer Person geht. Gute Namen machen Programme lesbarer und verringern Fehler.
name = "Mina" alter = 14 ist_schuelerin = True
Datentypen
Ein Datentyp beschreibt, welche Art von Wert gespeichert wird und welche Operationen damit sinnvoll sind. Häufige Datentypen sind ganze Zahlen, Kommazahlen, Zeichenketten und Wahrheitswerte. Eine Zahl kann addiert werden. Eine Zeichenkette kann zusammengesetzt oder durchsucht werden. Ein Wahrheitswert ist entweder wahr oder falsch.
Datenstrukturen
Datenstrukturen helfen, mehrere Werte geordnet zu speichern. Eine Liste kann viele Elemente enthalten, zum Beispiel Namen einer Klasse. Ein Array speichert Elemente oft in fester Reihenfolge. Ein Dictionary oder eine Hashtabelle ordnet Schlüsseln passende Werte zu, zum Beispiel einem Namen eine Telefonnummer. Die Wahl der Datenstruktur beeinflusst, wie einfach, schnell und übersichtlich ein Programm wird.
Kontrollstrukturen
Kontrollstrukturen bestimmen, in welcher Reihenfolge Anweisungen ausgeführt werden. Die drei Grundideen sind Sequenz, Auswahl und Wiederholung.
Sequenz
Eine Sequenz bedeutet: Anweisungen werden nacheinander ausgeführt. Erst wird eine Eingabe gelesen, dann verarbeitet, dann ausgegeben. Viele einfache Programme bestehen aus solchen Schrittfolgen.
Auswahl mit Bedingungen
Eine Bedingte Anweisung entscheidet, welcher Programmteil ausgeführt wird. Sie arbeitet mit Wahrheitswerten. Ein Programm kann zum Beispiel prüfen, ob ein Passwort lang genug ist oder ob ein Punktestand für ein neues Level reicht.
punkte = 85
if punkte >= 50:
print("Bestanden")
else:
print("Noch einmal üben")
Wiederholung mit Schleifen
Eine Schleife wiederholt Anweisungen. Eine Zählschleife eignet sich, wenn die Anzahl der Wiederholungen bekannt ist. Eine Bedingungsschleife eignet sich, wenn die Wiederholung von einer Bedingung abhängt. Schleifen machen Programme mächtig, können aber auch Fehler verursachen, wenn sie nie enden.
for zahl in range(1, 6):
print(zahl)
Funktionen und Modularität
Funktionen
Eine Funktion fasst Anweisungen unter einem Namen zusammen. Sie kann Eingaben erhalten und ein Ergebnis zurückgeben. Funktionen helfen, Code zu strukturieren, Wiederholungen zu vermeiden und Programme besser testbar zu machen.
def begruessung(name):
return "Hallo " + name
text = begruessung("Mina")
print(text)
Modularität
Modularität bedeutet, ein Programm in überschaubare Bausteine aufzuteilen. Jeder Baustein soll eine klare Aufgabe haben. Dadurch lässt sich ein Programm leichter verstehen, verbessern und wiederverwenden. Modularität ist besonders wichtig, wenn mehrere Personen zusammenarbeiten oder wenn ein Programm langfristig gepflegt wird.
Programmierparadigmen
Ein Programmierparadigma ist eine grundlegende Denkweise beim Programmieren. Verschiedene Paradigmen können dieselbe Aufgabe unterschiedlich strukturieren.
Imperative Programmierung
Bei der imperativen Programmierung beschreibst Du Schritt für Schritt, was der Computer tun soll. Viele Einsteigerprogramme arbeiten so: Wert einlesen, Bedingung prüfen, Ergebnis ausgeben.
Objektorientierte Programmierung
Die Objektorientierte Programmierung arbeitet mit Objekten, die Eigenschaften und Methoden besitzen. Ein Objekt `Auto` kann zum Beispiel Eigenschaften wie Farbe und Geschwindigkeit haben und Methoden wie bremsen oder beschleunigen. Objektorientierung eignet sich besonders, wenn ein Programm viele zusammengehörige Daten und Verhaltensweisen modelliert.
Funktionale Programmierung
Die Funktionale Programmierung betrachtet Programme stärker als Kombination von Funktionen. Daten sollen möglichst nicht unkontrolliert verändert werden. Diese Denkweise kann Programme zuverlässiger und besser überprüfbar machen, verlangt aber häufig ein anderes Denken als imperative Programmierung.
Programmiersprachen
Eine Programmiersprache ist eine formale Sprache, mit der Algorithmen und Datenstrukturen so beschrieben werden, dass ein Computer sie ausführen kann. Es gibt nicht die eine beste Sprache für alle Fälle. Die Wahl hängt vom Ziel, der Plattform, dem Vorwissen, dem Team und den vorhandenen Werkzeugen ab.
Beispiele für Programmiersprachen
- Python: Gut lesbar, vielseitig einsetzbar und häufig in Bildung, Datenanalyse, Automatisierung und KI verwendet.
- JavaScript: Wichtig für interaktive Websites und viele moderne Webanwendungen.
- Java: Weit verbreitet in Unternehmen, Apps, Ausbildung und großen Softwaresystemen.
- C: Systemnahe Sprache, wichtig für Betriebssysteme, eingebettete Systeme und Grundlagenverständnis.
- Scratch: Visuelle Programmiersprache, geeignet für erste algorithmische Erfahrungen ohne komplexe Syntax.
- SQL: Sprache zur Arbeit mit Datenbanken und strukturierten Daten.
Sprache und Werkzeug unterscheiden
Die Programmiersprache ist nicht dasselbe wie die Entwicklungsumgebung. Eine IDE oder ein Code-Editor hilft beim Schreiben, Ausführen, Formatieren und Debuggen. Beispiele für Werkzeuge sind Texteditoren, Compiler, Interpreter, Paketmanager, Testwerkzeuge und Versionsverwaltungssysteme.
Debugging und Fehlerkultur
Fehlerarten
Fehler gehören zum Programmieren. Entscheidend ist, wie Du mit ihnen umgehst. Ein Syntaxfehler verletzt die Regeln der Programmiersprache. Ein Laufzeitfehler tritt während der Ausführung auf, zum Beispiel bei einer Division durch null. Ein Logikfehler ist besonders tückisch: Das Programm läuft, liefert aber ein falsches Ergebnis.
Debugging-Strategien
Debugging bedeutet, Fehler systematisch zu finden und zu beheben. Dabei helfen genaue Fehlermeldungen, kleine Testbeispiele, schrittweises Ausführen, Ausgaben zur Kontrolle, das Vereinfachen eines Problems und der Vergleich zwischen erwartetem und tatsächlichem Ergebnis. Gute Programmierende sind nicht fehlerfrei, sondern arbeiten methodisch mit Fehlern.
Tests
Ein Softwaretest prüft, ob ein Programm das erwartete Verhalten zeigt. Tests sollten Normalfälle, Grenzfälle und Fehlerfälle abdecken. Wenn ein Programm die Volljährigkeit prüft, solltest Du nicht nur 20 testen, sondern auch 17, 18 und ungewöhnliche Eingaben. Automatisierte Tests können immer wieder ausgeführt werden und helfen, spätere Änderungen abzusichern.
Lesbarkeit, Stil und Dokumentation
Guter Code wird häufiger gelesen als geschrieben. Deshalb sind Programmierstil, klare Namen, einheitliche Einrückung, kurze Funktionen und verständliche Struktur wichtig. Dokumentation erklärt, wie ein Programm verwendet wird, welche Annahmen gelten und wie man es weiterentwickeln kann. In Teams ist Dokumentation ein Zeichen von Verantwortung, weil andere Menschen Deine Entscheidungen nachvollziehen müssen.
Teamarbeit und Versionsverwaltung
In vielen Projekten arbeiten mehrere Menschen gleichzeitig am gleichen Code. Versionsverwaltung speichert Änderungen nachvollziehbar. Mit Git kann ein Team Änderungen vergleichen, zusammenführen und bei Problemen frühere Versionen wiederherstellen. Versionsverwaltung ist auch für Einzelpersonen nützlich, weil sie Lernfortschritte sichtbar macht und Experimente sicherer macht.
Verantwortung beim Programmieren
Programme wirken in die echte Welt hinein. Sie können Zeit sparen, Menschen unterstützen und neue Möglichkeiten eröffnen. Sie können aber auch ausschließen, Daten missbrauchen, falsche Entscheidungen verstärken oder Sicherheitslücken enthalten. Deshalb gehört zur Programmierung auch Ethik, Datenschutz, IT-Sicherheit, Barrierefreiheit, Nachhaltigkeit und kritisches Denken. Frage Dich beim Programmieren immer: Wer nutzt das Programm? Welche Daten werden verarbeitet? Welche Fehler könnten Schaden anrichten? Wer wird einbezogen und wer vielleicht ausgeschlossen?
Programmieren lernen
Programmieren lernst Du am besten durch aktives Ausprobieren. Kleine Projekte sind besser als nur Theorie. Beginne mit überschaubaren Aufgaben: ein Quiz, ein Taschenrechner, ein Zahlenratespiel, eine kleine Website, eine Animation oder eine Datenanalyse. Wichtig ist, dass Du Dein Programm regelmäßig testest, Fehlermeldungen ernst nimmst und Deine Lösung schrittweise verbesserst.
{{#ev:youtube| https://www.youtube.com/watch?v=_VOK2ljC8Zw |500|center}}
Lernstrategie
- Zielsetzung: Formuliere ein kleines Ziel, das Du in wenigen Schritten erreichen kannst.
- Experiment: Probiere Code aus und verändere bewusst einzelne Stellen.
- Fehleranalyse: Lies Fehlermeldungen genau und suche die Stelle, an der Erwartung und Ergebnis auseinandergehen.
- Reflexion: Schreibe kurz auf, was funktioniert hat und was Du beim nächsten Mal anders machen würdest.
- Projektarbeit: Baue nach und nach eigene Ideen ein, statt nur Beispiele zu kopieren.
Mini-Projekt: Zahlenratespiel planen
Ein Zahlenratespiel ist ein gutes Einstiegsprojekt. Das Programm denkt sich eine Zahl aus. Die spielende Person gibt eine Vermutung ein. Das Programm antwortet, ob die gesuchte Zahl größer, kleiner oder richtig ist. Dabei brauchst Du Variablen, Eingabe, Ausgabe, Bedingungen und eine Schleife.
gesuchte_zahl = 7
versuch = 0
while versuch != gesuchte_zahl:
versuch = int(input("Welche Zahl vermutest Du? "))
if versuch < gesuchte_zahl:
print("Die gesuchte Zahl ist größer.")
elif versuch > gesuchte_zahl:
print("Die gesuchte Zahl ist kleiner.")
else:
print("Richtig geraten.")
Überlege danach, wie Du das Spiel verbessern könntest: Zufallszahl, Zähler für Versuche, Schwierigkeitsgrad, Zeitlimit oder grafische Oberfläche.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Was bedeutet Programmieren im Kern? (Anweisungen für einen Computer präzise formulieren) (!Einen Computer nur ein und ausschalten) (!Texte ausschließlich schöner gestalten) (!Bilder ohne Regeln bearbeiten)
Was ist ein Algorithmus? (Eine eindeutige Schrittfolge zur Lösung eines Problems) (!Ein zufälliges Ergebnis ohne Regel) (!Ein Bauteil im Bildschirm) (!Ein Passwort für ein Programm)
Wofür wird eine Variable verwendet? (Zum Speichern eines Wertes unter einem Namen) (!Zum Löschen des Betriebssystems) (!Zum Anzeigen der Tastatur) (!Zum Verhindern aller Fehler)
Was beschreibt die Syntax einer Programmiersprache? (Die formalen Regeln für gültigen Code) (!Die Farbe des Bildschirms) (!Die Geschwindigkeit des Internets) (!Die Größe einer Datei auf Papier)
Was macht eine bedingte Anweisung? (Sie wählt abhängig von einer Bedingung einen Programmweg) (!Sie wiederholt immer denselben Satz ohne Ende) (!Sie übersetzt automatisch jede Sprache) (!Sie speichert Bilder in einer Kamera)
Wozu dient eine Schleife? (Sie wiederholt Anweisungen) (!Sie ersetzt alle Variablen durch Bilder) (!Sie macht aus Code automatisch Hardware) (!Sie löscht alle Kommentare)
Was ist eine Funktion in der Programmierung? (Ein benannter Programmbaustein mit einer bestimmten Aufgabe) (!Ein Fehler, der nie gefunden werden kann) (!Ein Kabel zwischen Monitor und Maus) (!Ein zufälliger Text ohne Bedeutung)
Was bedeutet Debugging? (Fehler systematisch finden und beheben) (!Ein Programm absichtlich unlesbar machen) (!Ein Passwort öffentlich teilen) (!Eine Datei ohne Prüfung kopieren)
Warum sind Tests beim Programmieren wichtig? (Sie prüfen, ob ein Programm erwartungsgemäß funktioniert) (!Sie ersetzen jede Planung vollständig) (!Sie machen jeden Code automatisch perfekt) (!Sie verhindern, dass Menschen Programme nutzen)
Wofür wird Versionsverwaltung genutzt? (Zum Nachverfolgen und Verwalten von Änderungen am Code) (!Zum Drucken von Bildern ohne Computer) (!Zum Messen der Bildschirmhelligkeit) (!Zum Ersetzen aller Programmiersprachen)
Memory
| Algorithmus | Schrittfolge zur Problemlösung |
| Variable | Benannter Speicherplatz |
| Schleife | Wiederholung von Anweisungen |
| Funktion | Wiederverwendbarer Programmbaustein |
| Debugging | Systematische Fehlersuche |
| Test | Prüfung des erwarteten Verhaltens |
Drag and Drop
| Ordne die richtigen Begriffe zu. | Thema |
|---|---|
| Problem verstehen | Start der Programmentwicklung |
| Algorithmus planen | Lösungsschritte entwerfen |
| Quellcode schreiben | Umsetzung in einer Programmiersprache |
| Programm testen | Verhalten überprüfen |
| Fehler verbessern | Debugging und Überarbeitung |
Kreuzworträtsel
| Algorithmus | Wie nennt man eine eindeutige Schrittfolge zur Lösung eines Problems? |
| Variable | Wie heißt ein benannter Speicherplatz für einen Wert? |
| Schleife | Welche Kontrollstruktur wiederholt Anweisungen? |
| Funktion | Wie heißt ein wiederverwendbarer Programmbaustein? |
| Compiler | Welches Werkzeug übersetzt Quellcode in ausführbaren Code? |
| Debugging | Wie nennt man die systematische Fehlersuche im Programm? |
LearningApps
Lückentext
Offene Aufgaben
Leicht
- Alltagsalgorithmus: Beschreibe einen alltäglichen Ablauf als Algorithmus, zum Beispiel Zähneputzen, Tee kochen oder den Schulweg planen. Achte darauf, dass jeder Schritt eindeutig ist.
- Begriffslandkarte: Erstelle eine Mindmap mit den Begriffen Programm, Quellcode, Algorithmus, Variable, Bedingung, Schleife, Funktion und Test.
- Fehlermeldung verstehen: Suche in einer Lernumgebung oder einem Beispielprogramm eine einfache Fehlermeldung und erkläre mit eigenen Worten, was sie bedeuten könnte.
- Code-Kommentar: Schreibe zu einem kurzen Beispielprogramm drei sinnvolle Kommentare, die nicht nur den Code wiederholen, sondern beim Verstehen helfen.
Standard
- Zahlenratespiel: Plane ein Zahlenratespiel mit Eingabe, Ausgabe, Bedingung und Schleife. Zeichne zuerst ein Flussdiagramm und setze es anschließend in einer Programmiersprache Deiner Wahl um.
- Taschenrechner: Entwickle einen einfachen Taschenrechner für Addition, Subtraktion und Division. Berücksichtige den Sonderfall der Division durch null.
- Testfälle: Erstelle für ein Programm mindestens sechs Testfälle: zwei Normalfälle, zwei Grenzfälle und zwei Fehlerfälle. Begründe, warum diese Tests wichtig sind.
- Pair Programming: Arbeite mit einer anderen Person zusammen. Eine Person schreibt den Code, die andere prüft und stellt Fragen. Wechselt nach einer festgelegten Zeit die Rollen und reflektiert die Zusammenarbeit.
Schwer
- Projekt Dokumentation: Entwickle ein kleines eigenes Programm und dokumentiere Ziel, Zielgruppe, Eingaben, Ausgaben, wichtigste Funktionen, Tests und bekannte Grenzen.
- Refactoring: Verbessere ein unübersichtliches Programm, ohne seine Funktion zu verändern. Achte auf Namen, Funktionen, Kommentare und Struktur.
- Datenschutz Analyse: Untersuche eine App oder Website und beschreibe, welche Daten vermutlich verarbeitet werden. Entwirf anschließend Regeln für eine datensparsame Programmversion.
- Open Source Beitrag: Suche ein kleines frei zugängliches Lernprojekt, lies die Dokumentation und formuliere einen Verbesserungsvorschlag, zum Beispiel für eine Anleitung, einen Kommentar oder einen Testfall.

| <inputbox>
type=create break=no preload=CHAT GPT TEXT HIER EINFÜGEN default= width=30 placeholder= Dein MOOC Titel buttonlabel=MOOC erstellen </inputbox> |

Lernkontrolle
- Transfer Algorithmus: Vergleiche einen Algorithmus aus dem Alltag mit einem Algorithmus im Programm. Erkläre Gemeinsamkeiten, Unterschiede und Grenzen des Vergleichs.
- Programmplanung: Eine Schule möchte ein digitales Ausleihsystem für Bücher erstellen. Beschreibe Eingaben, Ausgaben, wichtige Datenstrukturen, mögliche Fehlerfälle und notwendige Tests.
- Fehleranalyse: Ein Programm zur Altersprüfung gibt für 18 Jahre „minderjährig“ aus. Erkläre, welche Art von Fehler vorliegen könnte und wie Du ihn systematisch untersuchen würdest.
- Codequalität: Beurteile ein kurzes Programm nach Lesbarkeit, Struktur, Namen, Kommentaren und Testbarkeit. Formuliere konkrete Verbesserungsvorschläge.
- Ethik und Verantwortung: Ein Programm sortiert Bewerbungen automatisch vor. Diskutiere Chancen, Risiken, notwendige Kontrollen und mögliche Benachteiligungen.
- Werkzeugwahl: Entscheide begründet, welche Programmiersprache oder Lernumgebung Du für ein bestimmtes Anfängerprojekt wählen würdest. Berücksichtige Ziel, Vorwissen, Hilfsmaterial und Wartbarkeit.
Lernnachweis
Für den Lernnachweis erstellst Du ein kleines Programmierprojekt mit Dokumentation. Das Projekt kann ein Quiz, ein Taschenrechner, ein Zahlenratespiel, eine kleine Website, eine Datenanalyse oder ein anderes überschaubares Programm sein. Dein Lernnachweis soll zeigen, dass Du nicht nur Code kopierst, sondern ein Problem verstehst, eine Lösung planst, testest und reflektierst.
- Projektidee: Beschreibe Ziel, Zielgruppe und Nutzen Deines Programms.
- Algorithmusentwurf: Stelle die wichtigsten Lösungsschritte als Pseudocode oder Flussdiagramm dar.
- Umsetzung: Schreibe ein lauffähiges Programm oder einen nachvollziehbaren Prototyp.
- Testprotokoll: Dokumentiere mindestens fünf Tests mit Eingabe, erwarteter Ausgabe, tatsächlicher Ausgabe und Ergebnis.
- Reflexion: Erkläre, welche Schwierigkeiten auftraten, wie Du sie gelöst hast und was Du bei einer Weiterentwicklung verbessern würdest.
OERs zum Thema
Medien und Vertiefung
{{#ev:youtube| https://www.youtube.com/watch?v=JG-gofSMWGw |500|center}}
Die folgenden Vertiefungsideen helfen Dir beim selbstständigen Lernen: Lies kurze Einführungen zu Programmierung, Programmiersprache, Algorithmus, Python, JavaScript, Git, Softwaretest und IT-Sicherheit. Übe mit kleinen Projekten und schreibe zu jedem Projekt eine kurze Dokumentation. Vergleiche anschließend Deinen ersten Entwurf mit einer verbesserten Version und notiere, wodurch der Code verständlicher wurde.
Links
aiMOOC-Projekte
Schulfach+


aiMOOCs



aiMOOC Projekte


THE MONKEY DANCE





{{#ev:youtube | https://youtu.be/rFhZlg38Zf8?si=9KdMNZYRkRD81YTo%7C 500 | center}}
|
{{#ev:youtube | https://youtu.be/Ob7etf9QuBo?si=t_NBA71bWg3Rq3LI%7C 500 | center}}
| <inputbox>
type=create break=no preload=MOOCit Vorlage default= width=30 placeholder= Dein MOOC Titel buttonlabel=MOOC erstellen </inputbox> |