Informatik (Wahlfach)
Leitgedanken zum Kompetenzerwerb
Prozessbezogene Kompetenzen zurücksetzen
  • 2.1 Strukturieren und Vernetzen
    • 2.1 Strukturieren und Vernetzen
    • mit dem Schulnetz (zum Beispiel Homeverzeichnis, Tauschverzeichnis, mobile Datenträger, Netzwerkdrucker) zielorientiert arbeiten
    • Dateien und Bezeichner (zum Beispiel für Variablen, Unterprogramme) aussagekräftig benennen
    • Beziehungen zwischen Daten/Objekten (zum Beispiel Hierarchien in Verzeichnisbäumen oder Stammbäumen, die Struktur des Internets, Verkehrsnetz als Graph) erkennen und erläutern
    • gleichartige Daten in geeigneten Datenstrukturen zusammenfassen (zum Beispiel Namensliste einer Klasse, Pixel einer Rastergrafik etc.)
    • Handlungsschritte chronologisch ordnen (auch aufgrund von kausalen Zusammenhängen)
    • Teillösungen zur Lösung des Gesamtproblems nutzen
    • Schnittstellen für Teilbereiche definieren, die unabhängig voneinander bearbeitet werden (zum Beispiel Gruppenarbeit, Protokolle bei Client-Server, Parameter und Rückgabewerte bei Unterprogrammen)
  • 2.2 Modellieren und Implementieren
    • 2.2 Modellieren und Implementieren
    • die für die Problemstellung relevanten Informationen herausarbeiten und fehlende beziehungsweise ergänzende Informationen beschaffen
    • für (Teil‑)Abläufe notwendige Eingabedaten und Ergebnisse beschreiben und in Form von Testfällen formalisieren
    • vorliegende Informationen für die Lösung geeignet aufbereiten (zum Beispiel durch Filtern, Reduktion, Kategorisieren)
    • charakteristische und verallgemeinerbare Bestandteile herausarbeiten (Abstraktion)
    • relevante Abläufe, Daten und ihre Beziehungen in informatischen Modellen darstellen
    • passende Strukturen und Lösungsstrategien für gegebene Problemstellungen auswählen
    • geeignete Programme und Hilfsmittel zur grafisch gestützten Modellierung einsetzen
    • unterschiedliche Perspektiven in die Entwicklung einer Lösung miteinbeziehen
    • Abläufe in einer (zum Beispiel grafischen) Programmiersprache implementieren
    • geeignete Codebausteine aus verschiedenen Quellen auswählen, gegebenenfalls adaptieren und in eigene Programme einbauen
    • Programme gezielt gegen vorab formulierte Testfälle testen
    • Fehler in der Implementierung systematisch aufspüren und beheben (zum Beispiel Debugger)
    • die Angemessenheit von Lösungen und die erreichten Resultate bewerten
  • 2.3 Kommunizieren und Kooperieren
    • 2.3 Kommunizieren und Kooperieren
    • fachspezifische Schreib- und Notationsweisen verwenden
    • Sachverhalte, eigene Ideen, Lösungswege und Ergebnisse zielgruppenorientiert und unter Beachtung der informatischen Terminologie erläutern und strukturiert darstellen
    • eigenen und fremden Programmcode in geeigneter Weise kommentieren und dokumentieren
    • vorhandene Dokumentationen und kommentierten Programmcode lesen und verstehen
    • arbeitsteilig als Team ihre Aufgaben planen, strukturieren, ausführen, reflektieren und präsentieren
    • zielorientiert auf einer vorhandenen Infrastruktur kommunizieren und geeignete digitale Werkzeuge zum Teilen von Informationen (zum Beispiel Arbeitsergebnisse, Fragen, Programmcode) einsetzen
    • in Erarbeitung, Kooperation und Darstellung alltagsrelevante rechtliche Regelungen befolgen und verantwortungsvoll mit eigenen und fremden personenbezogenen Daten umgehen
    • charakteristische Merkmale verschiedener Kommunikationsformen (Mensch-Mensch, Mensch-Maschine, Maschine-Maschine) auf Gemeinsamkeiten und Unterschiede analysieren und deren gesellschaftliche Auswirkungen bewerten
    • Sicherheitsaspekte bei ihrem Kommunikationsverhalten berücksichtigen und die gesellschaftliche Relevanz von verschlüsselter Kommunikation reflektieren
    • Aspekte von Toleranz und Akzeptanz von Vielfalt im Kontext informatischer Fragestellungen diskutieren
  • 2.4 Analysieren und Bewerten
    • 2.4 Analysieren und Bewerten
    • durch Analyse (zum Beispiel „gezieltes Anwenden“/Blackbox oder auch Codebetrachtung/Whitebox) Erkenntnisse über das Verhalten von informatischen Systemen gewinnen
    • informatische Modelle mit der jeweiligen Realsituation vergleichen
    • unterschiedliche Lösungsansätze und Vorgehensweisen miteinander vergleichen und bewerten
    • Optimierungsbedarf ermitteln und gegebenenfalls Lösungswege optimieren
    • Kenntnisse über den inneren Ablauf informatischer Systeme im Alltag nutzen
    • Einsatzbereiche und Grenzen von Modellen erkennen
    • Entscheidungen auf der Grundlage informatischen Sachverstands treffen und diese sachegrecht begründen
    • Auswirkungen von Computersystemen auf Gesellschaft, Berufswelt und persönliches Lebensumfeld aus verschiedenen Perspektiven bewerten
    • im Zusammenhang einer digitalisierten Gesellschaft einen eigenen Standpunkt zu ethischen Fragen in der Informatik einnehmen und ihn argumentativ vertreten

Operatoren

Anhänge zu Fachplänen

3.2.2 Al­go­rith­men

In Klas­se 9 er­folgt der Um­stieg auf ei­ne tex­tu­el­le Pro­gram­mier­spra­che. Die Schü­le­rin­nen und Schü­ler ler­nen die Syn­tax der schon be­kann­ten al­go­rith­mi­schen Grund­bau­stei­ne ken­nen und wen­den die­se in neu­en Kon­tex­ten an. Die Schü­le­rin­nen und Schü­ler ler­nen lo­gi­sche Ver­knüp­fun­gen und Wahr­heits­ta­feln ken­nen und nut­zen boo­le­sche Aus­drü­cke in Be­din­gun­gen von Schlei­fen oder Ver­zwei­gun­gen.

Sie nut­zen Va­ria­blen mit un­ter­schied­li­chen Da­ten­ty­pen wie auch Ar­rays zur Spei­che­rung und Ver­ar­bei­tung gleich­ar­ti­ger Da­ten. Sie nut­zen Un­ter­pro­gram­me mit Pa­ra­me­tern und Rück­ga­be­wer­ten. Die Schü­le­rin­nen und Schü­ler be­schrei­ben An­for­de­run­gen an Un­ter­pro­gram­me und ent­wer­fen ge­eig­ne­te Test­rou­ti­nen, um ih­re Im­ple­men­tie­run­gen da­ge­gen zu tes­ten. Sie ent­wi­ckeln Stra­te­gi­en und nut­zen auch die Mög­lich­kei­ten der Ent­wick­lungs­um­ge­bung, um feh­ler­frei­en Code zu schrei­ben. Der Fo­kus liegt auf den grund­le­gen­den Sprach­ele­men­ten ei­ner tex­tu­el­len Pro­gram­mier­spra­che. Für spe­zi­el­le Auf­ga­ben­be­rei­che (zum Bei­spiel Tex­t-IO, Gra­fik, Sen­sor­ab­fra­ge) kön­nen ge­eig­ne­te Pro­gramm­bi­blio­the­ken zum Ein­satz kom­men.

Die Schü­le­rin­nen und Schü­ler kön­nen

G

M

E

(1)

Al­go­rith­men mit den Grund­bau­stei­nen An­wei­sung, Be­din­gung, Schlei­fe und Ver­zwei­gung so­wie un­ter Ver­wen­dung von Va­ria­blen in ei­ner ge­eig­ne­ten tex­tu­el­len Pro­gram­mier­spra­che im­ple­men­tie­ren

(1)

Al­go­rith­men mit den Grund­bau­stei­nen An­wei­sung, Be­din­gung, Schlei­fe und Ver­zwei­gung so­wie un­ter Ver­wen­dung von Va­ria­blen in ei­ner ge­eig­ne­ten tex­tu­el­len Pro­gram­mier­spra­che im­ple­men­tie­ren

(1)

Al­go­rith­men mit den Grund­bau­stei­nen An­wei­sung, Be­din­gung, Schlei­fe und Ver­zwei­gung so­wie un­ter Ver­wen­dung von Va­ria­blen in ei­ner ge­eig­ne­ten tex­tu­el­len Pro­gram­mier­spra­che im­ple­men­tie­ren

(2)

die Da­ten­ty­pen für Ganz­zahl, Gleit­kom­ma­zahl, Wahr­heits­wert und Zei­chen­ket­te be­schrei­ben und an­wen­den

(2)

die Da­ten­ty­pen für Ganz­zahl, Gleit­kom­ma­zahl, Wahr­heits­wert und Zei­chen­ket­te be­schrei­ben und an­wen­den

(2)

die Da­ten­ty­pen für Ganz­zahl, Gleit­kom­ma­zahl, Wahr­heits­wert und Zei­chen­ket­te be­schrei­ben und an­wen­den

(3)

Zu­falls­zah­len in ei­ge­nen Pro­gram­men ver­wen­den

(3)

Zu­falls­zah­len in ei­ge­nen Pro­gram­men ver­wen­den

(3)

Zu­falls­zah­len in ei­ge­nen Pro­gram­men ver­wen­den

(4)

Un­ter­pro­gram­me – auch mit Pa­ra­me­tern und Rück­ga­be­wer­ten – sinn­voll ein­set­zen

(4)

Un­ter­pro­gram­me – auch mit Pa­ra­me­tern und Rück­ga­be­wer­ten – sinn­voll ein­set­zen

(4)

Un­ter­pro­gram­me – auch mit Pa­ra­me­tern und Rück­ga­be­wer­ten – sinn­voll ein­set­zen

(5)

An­for­de­run­gen an Un­ter­pro­gram­me be­schrei­ben

(5)

An­for­de­run­gen an Un­ter­pro­gram­me be­schrei­ben und die­se au­to­ma­ti­siert (z. B. mit Test­rou­ti­nen) tes­ten

(5)

An­for­de­run­gen an Un­ter­pro­gram­me be­schrei­ben und die­se au­to­ma­ti­siert (z. B. mit Test­rou­ti­nen) tes­ten

(6)

Feh­ler­mel­dun­gen der Ent­wick­lungs­um­ge­bung (z. B. Com­pi­l­er­feh­ler, Lauf­zeit­feh­ler) nut­zen, um Pro­gram­me feh­ler­frei zu im­ple­men­tie­ren

(6)

Feh­ler­mel­dun­gen der Ent­wick­lungs­um­ge­bung (z. B. Com­pi­l­er­feh­ler, Lauf­zeit­feh­ler) nut­zen, um Pro­gram­me feh­ler­frei zu im­ple­men­tie­ren

(6)

Feh­ler­mel­dun­gen der Ent­wick­lungs­um­ge­bung (z. B. Com­pi­l­er­feh­ler, Lauf­zeit­feh­ler) nut­zen, um Pro­gram­me feh­ler­frei zu im­ple­men­tie­ren

(7)

vor­ge­ge­be­nen Code auf des­sen Funk­ti­ons­wei­se hin ana­ly­sie­ren und des­sen Wir­kung be­schrei­ben

(7)

vor­ge­ge­be­nen Code auf des­sen Funk­ti­ons­wei­se hin ana­ly­sie­ren und des­sen Wir­kung be­schrei­ben

(7)

vor­ge­ge­be­nen Code auf des­sen Funk­ti­ons­wei­se hin ana­ly­sie­ren und des­sen Wir­kung be­schrei­ben

(8)

An­pas­sun­gen zu vor­ge­ge­be­nem Code im­ple­men­tie­ren

(8)

An­pas­sun­gen zu vor­ge­ge­be­nem Code im­ple­men­tie­ren

(8)

An­pas­sun­gen zu vor­ge­ge­be­nem Code im­ple­men­tie­ren

(9)

Pro­gramm­code sinn­voll kom­men­tie­ren

(9)

Pro­gramm­code sinn­voll kom­men­tie­ren

(9)

Pro­gramm­code sinn­voll kom­men­tie­ren

(10)

syn­tak­ti­sche und se­man­ti­sche Feh­ler iden­ti­fi­zie­ren

(10)

den Un­ter­schied zwi­schen syn­tak­ti­schen und se­man­ti­schen Feh­lern er­läu­tern

(10)

den Un­ter­schied zwi­schen syn­tak­ti­schen und se­man­ti­schen Feh­lern er­läu­tern

(11)

Pro­gram­me auf se­man­ti­sche Feh­ler tes­ten

(11)

Pro­gram­me auf se­man­ti­sche Feh­ler tes­ten

(11)

Pro­gram­me auf se­man­ti­sche Feh­ler tes­ten

(12)

Stra­te­gi­en (z. B. De­bug­ger, schritt­wei­se Aus­füh­rung, Log­ging) an­wen­den, um das Ver­hal­ten von
Pro­gramm­code zur Lauf­zeit zu be­ob­ach­ten

(12)

Stra­te­gi­en (z. B. De­bug­ger, schritt­wei­se Aus­füh­rung, Log­ging) an­wen­den, um das Ver­hal­ten von
Pro­gramm­code zur Lauf­zeit zu be­ob­ach­ten

(12)

Stra­te­gi­en (z. B. De­bug­ger, schritt­wei­se Aus­füh­rung, Log­ging) an­wen­den, um das Ver­hal­ten von
Pro­gramm­code zur Lauf­zeit zu be­ob­ach­ten

(13)

vor­ge­ge­be­ne Pro­gramm­bi­blio­the­ken für ei­ge­ne Pro­gram­me sinn­voll ver­wen­den

(13)

vor­ge­ge­be­ne Pro­gramm­bi­blio­the­ken für ei­ge­ne Pro­gram­me sinn­voll ver­wen­den

(13)

vor­ge­ge­be­ne Pro­gramm­bi­blio­the­ken für ei­ge­ne Pro­gram­me sinn­voll ver­wen­den

(14)

Al­go­rith­men ent­wer­fen und im­ple­men­tie­ren, die zur Lauf­zeit Da­ten (z. B. Be­nut­zer­ein­ga­ben oder Sensor­da­ten) an­for­dern und aus­wer­ten

(14)

Al­go­rith­men ent­wer­fen und im­ple­men­tie­ren, die zur Lauf­zeit Da­ten (z. B. Be­nut­zer­ein­ga­ben oder Sensor­da­ten) an­for­dern und aus­wer­ten


Umsetzungshilfen
Hinweis
Die Beispielcurricula, Synopsen und Kompetenzraster sind bei den inhaltsbezogenen Kompetenzen des jeweiligen Faches zu finden.