<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://staging.moocwiki.org/index.php?action=history&amp;feed=atom&amp;title=Programmieren_-_aiMOOC</id>
	<title>Programmieren - aiMOOC - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://staging.moocwiki.org/index.php?action=history&amp;feed=atom&amp;title=Programmieren_-_aiMOOC"/>
	<link rel="alternate" type="text/html" href="https://staging.moocwiki.org/index.php?title=Programmieren_-_aiMOOC&amp;action=history"/>
	<updated>2026-06-14T09:08:31Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in MOOCsWiki Staging</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://staging.moocwiki.org/index.php?title=Programmieren_-_aiMOOC&amp;diff=28569&amp;oldid=prev</id>
		<title>Glanz: aiMOOC über GPT aiMOOC Action erstellt</title>
		<link rel="alternate" type="text/html" href="https://staging.moocwiki.org/index.php?title=Programmieren_-_aiMOOC&amp;diff=28569&amp;oldid=prev"/>
		<updated>2026-06-14T00:00:37Z</updated>

		<summary type="html">&lt;p&gt;aiMOOC über GPT aiMOOC Action erstellt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{T}}&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Einleitung =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Programmieren]]&amp;#039;&amp;#039;&amp;#039; 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]].&lt;br /&gt;
&lt;br /&gt;
[[Datei:Programming code.jpg|500px|rahmenlos|center]]&lt;br /&gt;
&lt;br /&gt;
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 [[Variable|Variablen]], [[Datentyp|Datentypen]], [[Bedingte Anweisung|Bedingungen]], [[Schleife|Schleifen]], [[Funktion (Programmierung)|Funktionen]], [[Debugging]], [[Softwaretest|Tests]] und [[Versionsverwaltung]] bedeuten. Außerdem lernst Du, warum guter Code nicht nur „funktioniert“, sondern auch lesbar, wartbar, sicher und verantwortungsvoll gestaltet sein sollte.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lernziele =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Was ist Programmieren? =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Programmieren und Softwareentwicklung ==&lt;br /&gt;
&lt;br /&gt;
[[Programmieren]] ist ein zentraler Teil der [[Softwareentwicklung]], aber nicht ihr einziger Bestandteil. Zur Entwicklung von [[Software]] gehören auch [[Anforderungsanalyse]], [[Softwaredesign]], [[Datenmodellierung]], [[Benutzerschnittstelle|Oberflächengestaltung]], [[Softwaretest|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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Warum Programmieren wichtig ist ==&lt;br /&gt;
&lt;br /&gt;
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 [[App|Apps]], [[Website|Websites]], [[Suchmaschine|Suchmaschinen]], [[Computerspiel|Spiele]], [[Roboter]], [[Künstliche Intelligenz|KI-Systeme]] und [[Automatisierung|automatisierte Systeme]] Entscheidungen vorbereiten oder Aufgaben erledigen.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Vom Problem zum Programm =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Problemanalyse ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Algorithmus ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Flowchart structured programming.svg|500px|rahmenlos|center]]&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Pseudocode ==&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Eingabe: Alter&lt;br /&gt;
Wenn Alter mindestens 18 ist:&lt;br /&gt;
    Gib aus: volljährig&lt;br /&gt;
Sonst:&lt;br /&gt;
    Gib aus: minderjährig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Pseudocode zeigt eine [[Bedingte Anweisung|Bedingung]]. Erst später entscheidest Du, ob Du die Lösung zum Beispiel in [[Python (Programmiersprache)|Python]], [[JavaScript]], [[Java (Programmiersprache)|Java]], [[C (Programmiersprache)|C]], [[Scratch (Programmiersprache)|Scratch]] oder einer anderen Sprache umsetzt.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Grundbausteine des Programmierens =&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Quellcode ==&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Syntax und Semantik ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
&lt;br /&gt;
[[Kommentar (Programmierung)|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.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Code comments.svg|500px|rahmenlos|center]]&lt;br /&gt;
&lt;br /&gt;
Ein hilfreicher Kommentar erklärt zum Beispiel, warum ein Grenzwert gewählt wurde. Ein schwacher Kommentar erklärt nur, was der Code ohnehin zeigt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Gut: Der Grenzwert folgt aus der Aufgabenstellung für Erwachsene.&lt;br /&gt;
mindestalter = 18&lt;br /&gt;
&lt;br /&gt;
# Weniger hilfreich: Setzt mindestalter auf 18.&lt;br /&gt;
mindestalter = 18&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Daten, Variablen und Datentypen =&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Variablen ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;Mina&amp;quot;&lt;br /&gt;
alter = 14&lt;br /&gt;
ist_schuelerin = True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Datentypen ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Datenstrukturen ==&lt;br /&gt;
&lt;br /&gt;
[[Datenstruktur|Datenstrukturen]] helfen, mehrere Werte geordnet zu speichern. Eine [[Liste (Datenstruktur)|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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Kontrollstrukturen =&lt;br /&gt;
&lt;br /&gt;
[[Kontrollstruktur|Kontrollstrukturen]] bestimmen, in welcher Reihenfolge Anweisungen ausgeführt werden. Die drei Grundideen sind Sequenz, Auswahl und Wiederholung.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Sequenz ==&lt;br /&gt;
&lt;br /&gt;
Eine [[Sequenz (Programmierung)|Sequenz]] bedeutet: Anweisungen werden nacheinander ausgeführt. Erst wird eine Eingabe gelesen, dann verarbeitet, dann ausgegeben. Viele einfache Programme bestehen aus solchen Schrittfolgen.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Auswahl mit Bedingungen ==&lt;br /&gt;
&lt;br /&gt;
Eine [[Bedingte Anweisung]] entscheidet, welcher Programmteil ausgeführt wird. Sie arbeitet mit [[Boolescher Wert|Wahrheitswerten]]. Ein Programm kann zum Beispiel prüfen, ob ein Passwort lang genug ist oder ob ein Punktestand für ein neues Level reicht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
punkte = 85&lt;br /&gt;
&lt;br /&gt;
if punkte &amp;gt;= 50:&lt;br /&gt;
    print(&amp;quot;Bestanden&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Noch einmal üben&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Wiederholung mit Schleifen ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for zahl in range(1, 6):&lt;br /&gt;
    print(zahl)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Funktionen und Modularität =&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Funktionen ==&lt;br /&gt;
&lt;br /&gt;
Eine [[Funktion (Programmierung)|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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def begruessung(name):&lt;br /&gt;
    return &amp;quot;Hallo &amp;quot; + name&lt;br /&gt;
&lt;br /&gt;
text = begruessung(&amp;quot;Mina&amp;quot;)&lt;br /&gt;
print(text)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Modularität ==&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Programmierparadigmen =&lt;br /&gt;
&lt;br /&gt;
Ein [[Programmierparadigma]] ist eine grundlegende Denkweise beim Programmieren. Verschiedene Paradigmen können dieselbe Aufgabe unterschiedlich strukturieren.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Imperative Programmierung ==&lt;br /&gt;
&lt;br /&gt;
Bei der [[Imperative Programmierung|imperativen Programmierung]] beschreibst Du Schritt für Schritt, was der Computer tun soll. Viele Einsteigerprogramme arbeiten so: Wert einlesen, Bedingung prüfen, Ergebnis ausgeben.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Objektorientierte Programmierung ==&lt;br /&gt;
&lt;br /&gt;
Die [[Objektorientierte Programmierung]] arbeitet mit [[Objekt (Programmierung)|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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Funktionale Programmierung ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Programmiersprachen =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Beispiele für Programmiersprachen ==&lt;br /&gt;
&lt;br /&gt;
# [[Python (Programmiersprache)|Python]]: Gut lesbar, vielseitig einsetzbar und häufig in Bildung, Datenanalyse, Automatisierung und [[Künstliche Intelligenz|KI]] verwendet.&lt;br /&gt;
# [[JavaScript]]: Wichtig für interaktive [[Website|Websites]] und viele moderne Webanwendungen.&lt;br /&gt;
# [[Java (Programmiersprache)|Java]]: Weit verbreitet in Unternehmen, Apps, Ausbildung und großen Softwaresystemen.&lt;br /&gt;
# [[C (Programmiersprache)|C]]: Systemnahe Sprache, wichtig für Betriebssysteme, eingebettete Systeme und Grundlagenverständnis.&lt;br /&gt;
# [[Scratch (Programmiersprache)|Scratch]]: Visuelle Programmiersprache, geeignet für erste algorithmische Erfahrungen ohne komplexe Syntax.&lt;br /&gt;
# [[SQL]]: Sprache zur Arbeit mit [[Datenbank|Datenbanken]] und strukturierten Daten.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Sprache und Werkzeug unterscheiden ==&lt;br /&gt;
&lt;br /&gt;
Die [[Programmiersprache]] ist nicht dasselbe wie die Entwicklungsumgebung. Eine [[Integrierte Entwicklungsumgebung|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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Debugging und Fehlerkultur =&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Fehlerarten ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Debugging-Strategien ==&lt;br /&gt;
&lt;br /&gt;
[[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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Tests ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lesbarkeit, Stil und Dokumentation =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Teamarbeit und Versionsverwaltung =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Verantwortung beim Programmieren =&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Programmieren lernen =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|   https://www.youtube.com/watch?v=_VOK2ljC8Zw   |500|center}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Lernstrategie ==&lt;br /&gt;
&lt;br /&gt;
# [[Zielsetzung]]: Formuliere ein kleines Ziel, das Du in wenigen Schritten erreichen kannst.&lt;br /&gt;
# [[Experiment]]: Probiere Code aus und verändere bewusst einzelne Stellen.&lt;br /&gt;
# [[Fehleranalyse]]: Lies Fehlermeldungen genau und suche die Stelle, an der Erwartung und Ergebnis auseinandergehen.&lt;br /&gt;
# [[Reflexion]]: Schreibe kurz auf, was funktioniert hat und was Du beim nächsten Mal anders machen würdest.&lt;br /&gt;
# [[Projektarbeit]]: Baue nach und nach eigene Ideen ein, statt nur Beispiele zu kopieren.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Mini-Projekt: Zahlenratespiel planen ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gesuchte_zahl = 7&lt;br /&gt;
versuch = 0&lt;br /&gt;
&lt;br /&gt;
while versuch != gesuchte_zahl:&lt;br /&gt;
    versuch = int(input(&amp;quot;Welche Zahl vermutest Du? &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    if versuch &amp;lt; gesuchte_zahl:&lt;br /&gt;
        print(&amp;quot;Die gesuchte Zahl ist größer.&amp;quot;)&lt;br /&gt;
    elif versuch &amp;gt; gesuchte_zahl:&lt;br /&gt;
        print(&amp;quot;Die gesuchte Zahl ist kleiner.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Richtig geraten.&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege danach, wie Du das Spiel verbessern könntest: Zufallszahl, Zähler für Versuche, Schwierigkeitsgrad, Zeitlimit oder grafische Oberfläche.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Interaktive Aufgaben =&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Quiz: Teste Dein Wissen ==&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was bedeutet Programmieren im Kern?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Anweisungen für einen Computer präzise formulieren)&lt;br /&gt;
(!Einen Computer nur ein und ausschalten)&lt;br /&gt;
(!Texte ausschließlich schöner gestalten)&lt;br /&gt;
(!Bilder ohne Regeln bearbeiten)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was ist ein Algorithmus?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Eine eindeutige Schrittfolge zur Lösung eines Problems)&lt;br /&gt;
(!Ein zufälliges Ergebnis ohne Regel)&lt;br /&gt;
(!Ein Bauteil im Bildschirm)&lt;br /&gt;
(!Ein Passwort für ein Programm)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Wofür wird eine Variable verwendet?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Zum Speichern eines Wertes unter einem Namen)&lt;br /&gt;
(!Zum Löschen des Betriebssystems)&lt;br /&gt;
(!Zum Anzeigen der Tastatur)&lt;br /&gt;
(!Zum Verhindern aller Fehler)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was beschreibt die Syntax einer Programmiersprache?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Die formalen Regeln für gültigen Code)&lt;br /&gt;
(!Die Farbe des Bildschirms)&lt;br /&gt;
(!Die Geschwindigkeit des Internets)&lt;br /&gt;
(!Die Größe einer Datei auf Papier)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was macht eine bedingte Anweisung?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Sie wählt abhängig von einer Bedingung einen Programmweg)&lt;br /&gt;
(!Sie wiederholt immer denselben Satz ohne Ende)&lt;br /&gt;
(!Sie übersetzt automatisch jede Sprache)&lt;br /&gt;
(!Sie speichert Bilder in einer Kamera)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Wozu dient eine Schleife?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Sie wiederholt Anweisungen)&lt;br /&gt;
(!Sie ersetzt alle Variablen durch Bilder)&lt;br /&gt;
(!Sie macht aus Code automatisch Hardware)&lt;br /&gt;
(!Sie löscht alle Kommentare)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was ist eine Funktion in der Programmierung?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Ein benannter Programmbaustein mit einer bestimmten Aufgabe)&lt;br /&gt;
(!Ein Fehler, der nie gefunden werden kann)&lt;br /&gt;
(!Ein Kabel zwischen Monitor und Maus)&lt;br /&gt;
(!Ein zufälliger Text ohne Bedeutung)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was bedeutet Debugging?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Fehler systematisch finden und beheben)&lt;br /&gt;
(!Ein Programm absichtlich unlesbar machen)&lt;br /&gt;
(!Ein Passwort öffentlich teilen)&lt;br /&gt;
(!Eine Datei ohne Prüfung kopieren)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Warum sind Tests beim Programmieren wichtig?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Sie prüfen, ob ein Programm erwartungsgemäß funktioniert)&lt;br /&gt;
(!Sie ersetzen jede Planung vollständig)&lt;br /&gt;
(!Sie machen jeden Code automatisch perfekt)&lt;br /&gt;
(!Sie verhindern, dass Menschen Programme nutzen)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Wofür wird Versionsverwaltung genutzt?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Zum Nachverfolgen und Verwalten von Änderungen am Code)&lt;br /&gt;
(!Zum Drucken von Bildern ohne Computer)&lt;br /&gt;
(!Zum Messen der Bildschirmhelligkeit)&lt;br /&gt;
(!Zum Ersetzen aller Programmiersprachen)&lt;br /&gt;
&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;memo-quiz&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Algorithmus || Schrittfolge zur Problemlösung&lt;br /&gt;
|-&lt;br /&gt;
| Variable || Benannter Speicherplatz&lt;br /&gt;
|-&lt;br /&gt;
| Schleife || Wiederholung von Anweisungen&lt;br /&gt;
|-&lt;br /&gt;
| Funktion || Wiederverwendbarer Programmbaustein&lt;br /&gt;
|-&lt;br /&gt;
| Debugging || Systematische Fehlersuche&lt;br /&gt;
|-&lt;br /&gt;
| Test || Prüfung des erwarteten Verhaltens&lt;br /&gt;
|}&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Drag and Drop ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;lueckentext-quiz&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! Ordne die richtigen Begriffe zu.&lt;br /&gt;
! Thema&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Problem verstehen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Start der Programmentwicklung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Algorithmus planen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Lösungsschritte entwerfen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Quellcode schreiben&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Umsetzung in einer Programmiersprache&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Programm testen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Verhalten überprüfen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Fehler verbessern&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Debugging und Überarbeitung&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{{E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Kreuzworträtsel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;kreuzwort-quiz&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Algorithmus || Wie nennt man eine eindeutige Schrittfolge zur Lösung eines Problems?&lt;br /&gt;
|-&lt;br /&gt;
| Variable || Wie heißt ein benannter Speicherplatz für einen Wert?&lt;br /&gt;
|-&lt;br /&gt;
| Schleife || Welche Kontrollstruktur wiederholt Anweisungen?&lt;br /&gt;
|-&lt;br /&gt;
| Funktion || Wie heißt ein wiederverwendbarer Programmbaustein?&lt;br /&gt;
|-&lt;br /&gt;
| Compiler || Welches Werkzeug übersetzt Quellcode in ausführbaren Code?&lt;br /&gt;
|-&lt;br /&gt;
| Debugging || Wie nennt man die systematische Fehlersuche im Programm?&lt;br /&gt;
|}&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== LearningApps ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;iframe&amp;gt; https://learningapps.org/index.php?s=Programmieren &amp;lt;/iframe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Lückentext ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quiz display=simple&amp;gt;&lt;br /&gt;
{&amp;#039;&amp;#039;&amp;#039;Vervollständige den Text.&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
|type=&amp;quot;{}&amp;quot;}&lt;br /&gt;
Programmieren bedeutet, Anweisungen für einen { Computer } präzise zu formulieren.&lt;br /&gt;
Ein Algorithmus beschreibt eine eindeutige { Schrittfolge } zur Lösung eines Problems.&lt;br /&gt;
Der Quellcode wird in einer { Programmiersprache } geschrieben.&lt;br /&gt;
Eine Variable speichert einen { Wert } unter einem Namen.&lt;br /&gt;
Eine Bedingung entscheidet zwischen verschiedenen { Programmwegen }.&lt;br /&gt;
Eine Schleife wiederholt Anweisungen, solange eine { Bedingung } erfüllt ist.&lt;br /&gt;
Eine Funktion bündelt Code zu einem wiederverwendbaren { Baustein }.&lt;br /&gt;
Debugging bezeichnet die systematische Suche nach { Fehlern }.&lt;br /&gt;
Tests prüfen, ob ein Programm das erwartete { Verhalten } zeigt.&lt;br /&gt;
Versionsverwaltung macht Änderungen am { Quellcode } nachvollziehbar.&lt;br /&gt;
&amp;lt;/quiz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Offene Aufgaben =&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
=== Leicht ===&lt;br /&gt;
&lt;br /&gt;
# [[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.&lt;br /&gt;
# [[Begriffslandkarte]]: Erstelle eine Mindmap mit den Begriffen Programm, Quellcode, Algorithmus, Variable, Bedingung, Schleife, Funktion und Test.&lt;br /&gt;
# [[Fehlermeldung verstehen]]: Suche in einer Lernumgebung oder einem Beispielprogramm eine einfache Fehlermeldung und erkläre mit eigenen Worten, was sie bedeuten könnte.&lt;br /&gt;
# [[Code-Kommentar]]: Schreibe zu einem kurzen Beispielprogramm drei sinnvolle Kommentare, die nicht nur den Code wiederholen, sondern beim Verstehen helfen.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
=== Standard ===&lt;br /&gt;
&lt;br /&gt;
# [[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.&lt;br /&gt;
# [[Taschenrechner]]: Entwickle einen einfachen Taschenrechner für Addition, Subtraktion und Division. Berücksichtige den Sonderfall der Division durch null.&lt;br /&gt;
# [[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.&lt;br /&gt;
# [[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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
=== Schwer ===&lt;br /&gt;
&lt;br /&gt;
# [[Projekt Dokumentation]]: Entwickle ein kleines eigenes Programm und dokumentiere Ziel, Zielgruppe, Eingaben, Ausgaben, wichtigste Funktionen, Tests und bekannte Grenzen.&lt;br /&gt;
# [[Refactoring]]: Verbessere ein unübersichtliches Programm, ohne seine Funktion zu verändern. Achte auf Namen, Funktionen, Kommentare und Struktur.&lt;br /&gt;
# [[Datenschutz Analyse]]: Untersuche eine App oder Website und beschreibe, welche Daten vermutlich verarbeitet werden. Entwirf anschließend Regeln für eine datensparsame Programmversion.&lt;br /&gt;
# [[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.&lt;br /&gt;
&lt;br /&gt;
{{:Offene Aufgabe - MOOC erstellen}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lernkontrolle =&lt;br /&gt;
&lt;br /&gt;
# [[Transfer Algorithmus]]: Vergleiche einen Algorithmus aus dem Alltag mit einem Algorithmus im Programm. Erkläre Gemeinsamkeiten, Unterschiede und Grenzen des Vergleichs.&lt;br /&gt;
# [[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.&lt;br /&gt;
# [[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.&lt;br /&gt;
# [[Codequalität]]: Beurteile ein kurzes Programm nach Lesbarkeit, Struktur, Namen, Kommentaren und Testbarkeit. Formuliere konkrete Verbesserungsvorschläge.&lt;br /&gt;
# [[Ethik und Verantwortung]]: Ein Programm sortiert Bewerbungen automatisch vor. Diskutiere Chancen, Risiken, notwendige Kontrollen und mögliche Benachteiligungen.&lt;br /&gt;
# [[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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lernnachweis =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
# [[Projektidee]]: Beschreibe Ziel, Zielgruppe und Nutzen Deines Programms.&lt;br /&gt;
# [[Algorithmusentwurf]]: Stelle die wichtigsten Lösungsschritte als Pseudocode oder Flussdiagramm dar.&lt;br /&gt;
# [[Umsetzung]]: Schreibe ein lauffähiges Programm oder einen nachvollziehbaren Prototyp.&lt;br /&gt;
# [[Testprotokoll]]: Dokumentiere mindestens fünf Tests mit Eingabe, erwarteter Ausgabe, tatsächlicher Ausgabe und Ergebnis.&lt;br /&gt;
# [[Reflexion]]: Erkläre, welche Schwierigkeiten auftraten, wie Du sie gelöst hast und was Du bei einer Weiterentwicklung verbessern würdest.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
= OERs zum Thema =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;iframe&amp;gt; https://de.m.wikipedia.org/wiki/Programmierung &amp;lt;/iframe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Medien und Vertiefung =&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|   https://www.youtube.com/watch?v=JG-gofSMWGw   |500|center}}&lt;br /&gt;
&lt;br /&gt;
Die folgenden Vertiefungsideen helfen Dir beim selbstständigen Lernen: Lies kurze Einführungen zu [[Programmierung]], [[Programmiersprache]], [[Algorithmus]], [[Python (Programmiersprache)|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.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
{{:D-Tab}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Programmieren]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# [[Programmierung]]&lt;br /&gt;
# [[Computerprogramm]]&lt;br /&gt;
# [[Quellcode]]&lt;br /&gt;
# [[Programmiersprache]]&lt;br /&gt;
# [[Algorithmus]]&lt;br /&gt;
# [[Variable]]&lt;br /&gt;
# [[Datentyp]]&lt;br /&gt;
# [[Kontrollstruktur]]&lt;br /&gt;
# [[Bedingte Anweisung]]&lt;br /&gt;
# [[Schleife]]&lt;br /&gt;
# [[Funktion (Programmierung)]]&lt;br /&gt;
# [[Objektorientierte Programmierung]]&lt;br /&gt;
# [[Funktionale Programmierung]]&lt;br /&gt;
# [[Debugging]]&lt;br /&gt;
# [[Softwaretest]]&lt;br /&gt;
# [[Versionsverwaltung]]&lt;br /&gt;
# [[Git]]&lt;br /&gt;
# [[Softwareentwicklung]]&lt;br /&gt;
# [[Open Source]]&lt;br /&gt;
# [[IT-Sicherheit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Informatik]]&lt;br /&gt;
[[Kategorie:Programmieren]]&lt;br /&gt;
[[Kategorie:Softwareentwicklung]]&lt;br /&gt;
[[Kategorie:Medienbildung]]&lt;br /&gt;
[[Kategorie:Digitalisierung]]&lt;br /&gt;
[[Kategorie:Technik]]&lt;br /&gt;
[[Kategorie:Klasse 7-8]]&lt;br /&gt;
[[Kategorie:Klasse 9-10]]&lt;br /&gt;
[[Kategorie:Berufliche Bildung]]&lt;br /&gt;
[[Kategorie:Studium]]&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= aiMOOC-Projekte =&lt;br /&gt;
[[Kategorie:AI_MOOC]] [[Kategorie:GPT aiMOOC]]&lt;br /&gt;
{{MT}}&lt;/div&gt;</summary>
		<author><name>Glanz</name></author>
	</entry>
</feed>