Keine Kompetenz enthält diesen Suchbegriff.
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)
textuelle und grafische Modellierungssprachen zur Beschreibung und Entwicklung von Strukturen und Prozessen verwenden
ihre eigenen Arbeitsprozesse in Projekten planen und strukturieren, auf Abweichungen reagieren und den Verlauf dokumentieren
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, Komponenten und ihre Beziehungen in informatischen Modellen darstellen
passende Komponenten, Strukturen und Lösungsstrategien für gegebene Problemstellungen auswählen und adaptieren
geeignete Programme und Hilfsmittel zur grafisch gestützten Modellierung einsetzen
unterschiedliche Perspektiven in die Entwicklung einer Lösung miteinbeziehen
Strukturen und Abläufe in einer Programmiersprache implementieren
geeignete Codebausteine aus verschiedenen Quellen auswählen, gegebenenfalls adaptieren und in eigene Programme einbauen und dabei rechtliche Rahmenbedingungen berücksichtigen
Programme gezielt gegen vorab formulierte Testfälle testen
Fehler in der Implementierung systematisch aufspüren und beheben
die Angemessenheit von Lösungen und die erreichten Resultate bewerten
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 kollaborativen Arbeiten verwenden
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
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 sachgerecht 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
Klassen 9/10 (Brückenkurs)
die Überführung von Zahlen zwischen ihrer Darstellung im Hexadezimalzahlsystem, Binärsystem und Dezimalsystem durchführen
Verfahren zur Datenreduktion beziehungsweise verlustbehafteten Datenkompression (zum Beispiel Verringerung von Farbtiefe, Auflösung, Samplingtiefe, Samplingrate) beschreiben
die Lauflängencodierung als Beispiel für ein verlustfreies Datenkompressionsverfahren erläutern und an einem Beispiel händisch durchführen (zum Beispiel Kompression von s/w-Bildern)
Einsatzbereiche und Beispiele für verlustbehaftete und verlustfreie Datenkompressionsverfahren nennen (zum Beispiel Kompression von Videos, Grafiken, Musik, Programmcode oder Textdokumenten)
Klassen 11/12 (Basisfach) · Bitebene
negative Zahlen in ihrer Einerkomplement- und Zweierkomplementdarstellung angeben und interpretieren
Addition und Subtraktion von Binärzahlen in Zweierkomplementdarstellung schriftlich durchführen und das Ergebnis interpretieren
Einschränkungen beim Rechnen mit endlicher Stellenzahl erläutern (zum Beispiel Overflow, Genauigkeit)
Merkmale von Codes (unter anderem Umkehrbarkeit, Präfixfreiheit, feste/variable Bitlänge) erläutern
das Huffmanverfahren als Beispiel für ein verlustfreies Datenkompressionsverfahren erläutern und die Codierung durch Erzeugung eines Huffmanbaums sowie Decodierung von Hand durchführen
Klassen 11/12 (Basisfach) · Datenstrukturen
einfach verkettete Listen als Beispiel einer linearen Struktur und Grundoperationen (zum Beispiel Einfügen, Löschen) implementieren
Binärbäume als Beispiel einer Baumstruktur implementieren
Graphen in den Repräsentationsformen Adjazenzmatrix und Adjazenzliste beschreiben
Begriffe aus der Graphentheorie (unter anderem Knoten, Kanten, Knotengrad, Kreis/Zyklus) und Eigenschaften von Graphen (unter anderem gerichtet/ungerichtet, gewichtet/ungewichtet, zyklisch/azyklisch) verwenden
den Abstrakten Datentyp (ADT) Stack beschreiben (LIFO-Prinzip)
den Abstrakten Datentyp (ADT) Queue beschreiben (FIFO-Prinzip)
Klassen 11/12 (Basisfach) · Relationale Datenbanksysteme
Komponenten (unter anderem Datenbank, Datenbankschnittstelle, Datenbankverwaltungssystem) und deren Funktionen von Datenbanksystemen beschreiben
das relationale Datenbankmodell und wesentliche Begriffe (Entität, Entitätstyp, Attribut, Relation, Kardinalität, Tabelle, Datensatz, Datenfeld) beschreiben
die Begriffe Schlüssel, Primärschlüssel und Fremdschlüssel erläutern
Ausschnitte der Realität in einem Diagramm (Entity-Relationship-Diagramm oder UML-Klassendiagramm) modellieren
ein relationales Datenbankschema in 3. Normalform erstellen, um unerwünschte Redundanzen zu vermeiden und damit das Risiko für Inkonsistenzen zu minimieren
Diagramme und relationale Datenbankschemata ineinander überführen
ein Datenbankverwaltungsprogramm zur Erstellung und Administration von Datenbanken nutzen
Abfragen auf Datenbanken in der Datenbanksprache SQL (Projektion, Selektion und Verbund über WHERE) auch über mehrere Tabellen durchführen
Manipulationen auf Datenbanken in der Datenbanksprache SQL (unter anderem Ändern, Einfügen und Löschen) durchführen
Klassen 11/12 (Leistungsfach) · Bitebene
negative Zahlen in ihrer Einerkomplement- und Zweierkomplementdarstellung angeben und interpretieren
Addition und Subtraktion von Binärzahlen in Zweierkomplementdarstellung schriftlich durchführen und das Ergebnis interpretieren
Einschränkungen beim Rechnen mit endlicher Stellenzahl erläutern (zum Beispiel Overflow, Genauigkeit)
die Festkommadarstellung als Beispiel für eine Codierung nichtganzer Zahlen erläutern
am Beispiel von Textcodierungen Erweiterungsmöglichkeiten von Codierungen beschreiben (zum Beispiel Biterweiterung, Escapezeichen, Codepages)
Merkmale von Codes (unter anderem Umkehrbarkeit, Präfixfreiheit, feste/variable Bitlänge) erläutern
das Huffmanverfahren als Beispiel für ein verlustfreies Datenkompressionsverfahren erläutern und die Codierung durch Erzeugung eines Huffmanbaums sowie Decodierung von Hand durchführen
das LZW-Verfahren als Beispiel für ein Wörterbuchverfahren erläutern und von Hand durchführen
das Konzept von Hashfunktionen und Anforderungen an diese (unter anderem Nichtumkehrbarkeit, Vermeidung von Kollisionen) beschreiben und dieses an Beispielen (zum Beispiel Fingerprint, Integritätsprüfung, ISBN-Prüfsumme) erläutern
Klassen 11/12 (Leistungsfach) · Datenstrukturen
zweidimensionale Arrays in ihrer Implementierung verwenden
einfach verkettete Listen als Beispiel einer linearen Struktur und Grundoperationen (zum Beispiel Einfügen, Löschen) implementieren
Binärbäume als Beispiel einer Baumstruktur implementieren
Graphen in den Repräsentationsformen Adjazenzmatrix und Adjazenzliste beschreiben
Begriffe aus der Graphentheorie (unter anderem Knoten, Kanten, Knotengrad, Kreis/Zyklus) und Eigenschaften von Graphen (unter anderem gerichtet/ungerichtet, gewichtet/ungewichtet, zyklisch/azyklisch) verwenden
erläutern, dass Bäume spezielle Graphen sind (Begriffe: Wurzel, innerer Knoten, Blatt)
das Konzept des Abstrakten Datentyps (unter anderem anhand von Set) erläutern
den Abstrakten Datentyp (ADT) Stack mit den Operationen isEmpty, push, pop und top beschreiben (LIFO-Prinzip) und mithilfe einer geeigneten Datenstruktur implementieren
den Abstrakten Datentyp (ADT) Queue mit den Operationen isEmpty, enqueue, dequeue und front beschreiben (FIFO-Prinzip) und mithilfe einer geeigneten Datenstruktur implementieren
Datenstrukturen zur Modellierung und Lösung ausgewählter Anwendungsfälle (zum Beispiel Straßennetz, Geldflüsse, Freundschaftsbeziehungen in sozialen Netzwerken, Organigramm, To-do-Liste, Klammerausdrücke, Rangierbahnhof) nutzen
einen Algorithmus auf Graphen implementieren (unter Verwendung geeigneter Bibliotheken oder Frameworks)
Klassen 11/12 (Leistungsfach) · Relationale Datenbanksysteme
Komponenten (unter anderem Datenbank, Datenbankschnittstelle, Datenbankverwaltungssystem) und deren Funktionen von Datenbanksystemen beschreiben
das relationale Datenbankmodell und wesentliche Begriffe (Entität, Entitätstyp, Attribut, Relation, Kardinalität, Tabelle, Datensatz, Datenfeld) beschreiben
die Begriffe Schlüssel, Primärschlüssel und Fremdschlüssel erläutern
Ausschnitte der Realität in einem Diagramm (Entity-Relationship-Diagramm und UML-Klassendiagramm) modellieren
ein relationales Datenbankschema in 3. Normalform erstellen, um unerwünschte Redundanzen zu vermeiden und damit das Risiko für Inkonsistenzen zu minimieren
Diagramme und relationale Datenbankschemata ineinander überführen
ein Datenbankverwaltungsprogramm zur Erstellung und Administration von Datenbanken nutzen
Abfragen auf Datenbanken in der Datenbanksprache SQL (Aggregatfunktion, Gruppierung, Projektion, Selektion und Verbund über WHERE) auch über mehrere Tabellen durchführen
Manipulationen auf Datenbanken in der Datenbanksprache SQL (unter anderem Ändern, Einfügen und Löschen) durchführen
Klassen 9/10 (Brückenkurs)
Algorithmen mit den Grundbausteinen Anweisung, Bedingung, Schleife und Verzweigung sowie unter Verwendung von Variablen in einer geeigneten textuellen Programmiersprache implementieren
die Datentypen für Ganzzahl, Gleitkommazahl, Wahrheitswert und Zeichenkette beschreiben und anwenden
logische Verknpüfungen (UND, ODER, NICHT) in Bedingungen von Schleifen und Verzweigungen verwenden und deren Wahrheitstafeln angeben
Zufallszahlen in eigenen Programmen verwenden
Unterprogramme – auch mit Parametern und Rückgabewerten – sinnvoll verwenden
den Unterschied zwischen verschiedenen Fehlerarten (Compilerfehler/Laufzeitfehler und syntaktisch/semantisch) erläutern
vorgegebenen Code auf seine Funktionsweise hin analysieren und dessen Wirkung beschreiben
Anpassungen zu vorgegebenem Code implementieren
vorgegebene Programmbibliotheken für eigene Programme sinnvoll verwenden
Algorithmen entwerfen und implementieren, die Benutzereingaben anfordern und auswerten
Programmcode implementieren, der Daten aus Dateien einliest, verarbeitet und in Dateien schreibt (mittels geeigneter Bibliotheken)
Arrays zur Speicherung und Verarbeitung von Daten verwenden
grundlegende Algorithmen auf Arrays (zum Beispiel Füllen mit Werten, Maximumsuche, Summenbildung, Bubblesort) erläutern und implementieren
Strategien (zum Beispiel Debugger, schrittweise Ausführung, Logging) anwenden, um das Verhalten von Programmcode zur Laufzeit zu beobachten
ein interaktives Programm (zum Beispiel App, Webanwendung, Desktopanwendung) mit einer einfachen grafischen Benutzerschnittstelle (zum Beispiel mit Buttons, Texteingabe und Ausgabe) implementieren, je nach Sprache unter Verwendung geeigneter (didaktischer) Toolkits und/oder GUI-Builder
Klassen 11/12 (Basisfach) · Strukturierte und objektorientierte Programmierung
die Begriffe Variable, Bezeichner, Datentyp, Wert, Deklaration, Initialisierung, Wertzuweisung und Gültigkeitsbereich erläutern
primitive Datentypen für ganzzahlige Werte, Gleitkommawerte und boolesche Werte unter Beachtung ihres Wertebereichs verwenden
implizite und explizite Typumwandlungen (type casts) zur Konvertierung von Werten unterschiedlicher Datentypen ineinander verwenden und dabei auftretende Probleme beschreiben
Operationen auf Zeichenketten durchführen (unter anderem Verketten)
eigene Klassendefinitionen mit Attributen und Methoden implementieren
Referenzvariablen/Referenztypen mit primitiven Variablen / primitiven Datentypen vergleichen
Methoden mit und ohne Rückgabewert sowie mit und ohne Parameter implementieren und den Begriff der Methodensignatur erläutern
die Funktion von Zugriffsmodifikatoren (public, private, protected) erläutern und diese verwenden
die Kapselung von Attributen und Methoden (Geheimnisprinzip) erläutern und in eigenen Implementierungen verwenden (unter anderem Zugriff auf Attribute über Zugriffsmethoden)
die Rolle von Konstruktoren beim Erzeugen von Instanzen einer Klasse (Objekten) erläutern und diese implementieren
das Konzept der Vererbung erläutern und in Modellierungen und Implementierungen anwenden
Algorithmen in den Notationsformen Nassi-Shneiderman-Diagramm und Pseudocode darstellen und interpretieren
UML-Klassendiagramme mit Vererbung und Assoziation (auch rekursiv) entwerfen und zur Modellierung nutzen
ihren Programmcode nach gängigen Standards kommentieren und dazu vorhandene Hilfsmittel der Entwicklungsumgebung nutzen
Dokumentationen zu gegebenem Quellcode und Bibliotheken nutzen
Klassen 11/12 (Basisfach) · Algorithmen auf Datenstrukturen
die lineare Suche auf Array und Liste implementieren
die binäre Suche auf sortierten Arrays implementieren
Breitensuche und Tiefensuche auf Bäumen beschreiben
elementare vergleichsbasierte Sortierverfahren (Bubblesort, Selectionsort, Insertionsort) beschreiben, händisch durchführen und eines davon implementieren
ein höheres vergleichsbasiertes rekursives Sortierverfahren (zum Beispiel Mergesort, Quicksort) beschreiben
Sortierverfahren hinsichtlich der Eigenschaften Laufzeit (in O-Notation), Speicherbedarf und Stabilität vergleichen und die Begriffe best case, worst case und average case erläutern
einen Algorithmus zur Lösung des Problems des kürzesten Pfades (zum Beispiel Dijkstra) beschreiben und an Beispielen von Hand durchführen
Klassen 11/12 (Basisfach) · Rekursion
zu geeigneten Problemstellungen (zum Beispiel Türme von Hanoi, Baumtraversierung) rekursive Algorithmen unter Angabe von Rekursionsschritt und Rekursionsbasis entwerfen und von Hand durchführen
das Divide-and-Conquer-Prinzip an geeigneten Problemstellungen erläutern
rekursive Algorithmen zu unterschiedlichen Problemstellungen (zum Beispiel Fakultätsfunktion, Fibonacci-Zahlen, Kochsche Schneeflocke) implementieren
Klassen 11/12 (Leistungsfach) · Strukturierte und objektorientierte Programmierung
die Begriffe Variable, Bezeichner, Datentyp, Wert, Deklaration, Initialisierung, Wertzuweisung und Gültigkeitsbereich erläutern
primitive Datentypen für ganzzahlige Werte, Gleitkommawerte und boolesche Werte unter Beachtung ihres Wertebereichs verwenden
implizite und explizite Typumwandlungen (type casts) zur Konvertierung von Werten unterschiedlicher Datentypen ineinander verwenden und dabei auftretende Probleme beschreiben
Operationen auf Zeichenketten (unter anderem Vergleichen, Verketten, Zugriff auf einzelne Zeichen, Umwandlung in Zahlen) durchführen
eigene Klassendefinitionen mit Attributen und Methoden implementieren
Referenzvariablen/Referenztypen mit primitiven Variablen / primitiven Datentypen vergleichen
mögliche Ursachen und Auswirkungen von Nullpointerfehlern erläutern
Methoden mit und ohne Rückgabewert sowie mit und ohne Parameter implementieren und den Begriff der Methodensignatur erläutern
die Funktion von Zugriffsmodifikatoren (public, private, protected) erläutern und diese verwenden
die Kapselung von Attributen und Methoden (Geheimnisprinzip) erläutern und in eigenen Implementierungen verwenden (unter anderem Zugriff auf Attribute über Zugriffsmethoden)
den Unterschied zwischen Objektattributen/Objektmethoden und Klassenattributen/Klassenmethoden erklären
den Lebenszyklus von Objekten (unter anderem Instanziierung, Verwendung, Zerstörung) beschreiben
die Rolle von Konstruktoren beim Erzeugen von Instanzen einer Klasse (Objekten) erläutern und diese implementieren
generische Datentypen bei der Instanziierung vorgegebener Klassen verwenden
sprachliche Mittel zur Sammlung gleichartiger Objekte (Collection) und zum Durchlaufen aller Elemente der Sammlung (zum Beispiel Iteration, foreach, Lambdaausdrücke etc.) nutzen
das Konzept der Vererbung erläutern und in Modellierungen und Implementierungen anwenden
das Prinzip der Polymorphie erläutern und anwenden und dabei auch sichere class casts verwenden
abstrakte Klassen und abstrakte Methoden nutzen
Algorithmen in den Notationsformen Nassi-Shneiderman-Diagramm und Pseudocode darstellen und interpretieren
UML-Klassendiagramme mit Vererbung und Assoziation (auch rekursiv) entwerfen und zur Modellierung nutzen
ihren Programmcode nach gängigen Standards kommentieren und dazu vorhandene Hilfsmittel der Entwicklungsumgebung nutzen
Dokumentationen zu gegebenem Quellcode und Bibliotheken nutzen
Klassen 11/12 (Leistungsfach) · Algorithmen auf Datenstrukturen
die lineare Suche auf Array und Liste implementieren
die binäre Suche auf sortierten Arrays implementieren
Inorder‑, Postorder- und Preorder-Traversierung auf Binärbäumen händisch durchführen und Anwendungsbeispiele nennen
Breitensuche und Tiefensuche auf Bäumen beschreiben und implementieren
elementare vergleichsbasierte Sortierverfahren (Bubblesort, Selectionsort, Insertionsort) beschreiben, händisch durchführen und implementieren
höhere vergleichsbasierte rekursive Sortierverfahren (Mergesort, Quicksort) beschreiben, händisch durchführen und eines davon implementieren
ein nicht-vergleichsbasiertes Verfahren (zum Beispiel Bucketsort, Countingsort, Radixsort, …) beschreiben
Sortierverfahren hinsichtlich der Eigenschaften Laufzeit (in O-Notation), Speicherbedarf und Stabilität vergleichen und die Begriffe best case, worst case und average case erläutern
Breitensuche und Tiefensuche auf Graphen beschreiben, auf reale Problemstellungen anwenden und händisch durchführen
einen Algorithmus (zum Beispiel Prim, Kruskal) zur Bestimmung eines Minimum Spanning Tree und einen zur Lösung des Problems des kürzesten Pfades (zum Beispiel Dijkstra, Bellman-Ford) beschreiben und an Beispielen von Hand durchführen
erläutern, dass nicht bekannt ist, ob für jedes Problem eine in Polynomialzeit berechenbare Lösung existiert, und können dafür Beispiele angeben
Strategien (zum Beispiel Greedy) zur Bestimmung von Näherungslösungen in polynomieller Laufzeit beschreiben und an geeigneten Problemstellungen (zum Beispiel 4-Farben-Problem, Dominating Sets) von Hand durchführen
Klassen 11/12 (Leistungsfach) · Rekursion
zu geeigneten Problemstellungen (zum Beispiel Türme von Hanoi, Baumtraversierung) rekursive Algorithmen unter Angabe von Rekursionsschritt und Rekursionsbasis entwerfen und von Hand durchführen
das Divide-and-Conquer-Prinzip an geeigneten Problemstellungen erläutern
rekursive Algorithmen zu unterschiedlichen Problemstellungen (zum Beispiel Fakultätsfunktion, Fibonacci-Zahlen, Kochsche Schneeflocke) implementieren
Rekursionsabläufe darstellen (unter anderem am call stack, Baum)
iterative Algorithmen und rekursive Algorithmen zur Lösung derselben Problemstellung vergleichen (unter anderem hinsichtlich Laufzeit) und bewerten
das Prinzip des Backtrackings anhand einer geeigneten Problemstellung (zum Beispiel Acht-Damen-Problem, Magische Quadrate, Zyklensuche) erläutern
Klassen 9/10 (Brückenkurs)
den grundlegenden Aufbau eines lokalen Rechnernetzes und die Rolle seiner Komponenten (Endgerät, Verbindung, Verteiler) erklären
die Notwendigkeit einer eindeutigen Adressierung zur Kommunikation in Netzen erläutern und hierfür Beispiele nennen (IP-Adresse und zum Beispiel Handynummer, E-Mail-Adresse)
das Prinzip der Namensauflösung (DNS und zum Beispiel Kontaktliste, Telefonbuch) erläutern
ein lokales Rechnernetz mit DNS und Webserver in einer geeigneten Simulationsumgebung entwerfen und untersuchen
Schemata beschreiben, mit denen eine Unterscheidung von Adressen in Netzwerken nach lokal/global möglich ist (zum Beispiel Subnetzmaske in IP-Netzen, Vorwahl im Telefonnetz, Länderkennung bei Postanschrift)
das Problem des Routings zwischen Netzen erläutern und in einer geeigneten Simulationsumgebung ein Routingszenario durchführen
Klassen 11/12 (Basisfach)
Aufbau, Funktionsweise (unter anderem Befehlszyklus) und Komponenten (unter anderem Adressbus, Datenbus, Rechenwerk, Register, Steuerwerk, Speicherwerk) einer Von-Neumann-Modellmaschine beschreiben
Mikroprogramme für Assemblerbefehle (zum Beispiel ADD, SUB, JMP) in einer Simulationsumgebung implementieren
Klassen 11/12 (Leistungsfach)
aus logischen Gattern (unter anderem AND, OR, XOR, NOT) Schaltnetze entwerfen, diese untersuchen und ihre Wahrheitstafeln ermitteln
Aufbau und Funktion von Halbaddierer und Volladdierer beschreiben und daraus in einer Simulationsumgebung einen Mehrbitaddierer erstellen
Aufbau und Funktion eines bistabilen Bauteils (zum Beispiel Latch, Flipflop) als Beispiel für einen 1-Bit-Speicher beschreiben und in einer Simulationsumgebung SR-Latch und D-Latch erstellen
Begriffe der booleschen Algebra (boolescher Wert, Verknüpfungen, Basis) erklären
Boolesche Terme mithilfe der Rechengesetze (unter anderem De Morgan’sche Regeln) in eine vereinfachte Darstellung überführen
Boolesche Funktionen in disjunktiver Normalform (DNF) und konjunktiver Normalform (KNF) angeben, auch kanonisch
Boolesche Funktionen in bis zu vier Variablen mithilfe von KV-Diagrammen in Minimalform überführen
Aufbau, Funktionsweise (unter anderem Befehlszyklus) und Komponenten (unter anderem Adressbus, Datenbus, Rechenwerk, Register, Steuerwerk, Speicherwerk) einer Von-Neumann-Modellmaschine beschreiben
Mikroprogramme für Assemblerbefehle (zum Beispiel ADD, SUB, JMP) in einer Simulationsumgebung implementieren
Assembler-Programme für eine Von-Neumann-Modellmaschine (zum Beispiel Multiplikation natürlicher Zahlen) in einer Simulationsumgebung implementieren
das Prinzip der paketorientierten Übertragung (unter anderem Adressierung, Segmentierung) erläutern
das Zusammenwirken von Protokollschichten (unter anderem am Beispiel von TCP/IP) am vereinfachten Schichtenmodell (Netzwerkschicht, Vermittlungsschicht, Transportschicht, Anwendungsschicht) erläutern
den Kommunikationsablauf über ein Protokoll (unter anderem TCP mit Verbindungsaufbau und ‑abbau) in einem Sequenzdiagramm darstellen
Klassen 9/10 (Brückenkurs)
das Vigenère-Verfahren erklären und durchführen
Transpositionsverfahren (zum Beispiel Skytale), monoalphabetische Substitution und polyalphabetische Substitution vergleichen
eine grundlegende Angriffsstrategie auf das Vigenère-Verfahren erklären und an einfachen Beispielen durchführen
das One-Time-Pad-Verfahren erklären und begründen, dass es sich um ein absolut sicheres Verschlüsselungsverfahren handelt
erläutern, dass die Sicherheit von Verschlüsselungsverfahren nicht von der Geheimhaltung des Algorithmus abhängen darf (Kerckhoffs’sches Prinzip)
Anwendungsbereiche beschreiben, in denen Verschlüsselung eingesetzt wird (zum Beispiel verschlüsselte Speicherung von Daten, Kommunikation über https oder Messenger)
eine aktuell eingesetzte Technologie erläutern, mit der personenbezogene Daten gesammelt werden (zum Beispiel Webtracking, Cookies, Geodaten)
Möglichkeiten erläutern, um das Sammeln personenbezogener Daten einzuschränken (zum Beispiel anonymes Surfen, Rechteverwaltung von Apps, Standortfreigabe)
das Konzept der asymmetrischen Verschlüsselung (privater/öffentlicher Schlüssel) erklären
Klassen 11/12 (Basisfach)
asymmetrische und symmetrische Verschlüsselung vergleichen (Schlüsselverwaltung, Schlüsseltausch, Geschwindigkeit)
erklären, wie Nachrichten mit asymmetrischer Verschlüsselung signiert werden können
erläutern, dass die Sicherheit asymmetrischer Kryptoverfahren auf Einwegfunktionen basiert, für die ausschließlich Angriffe mit exponentieller Laufzeit bekannt sind
Kryptographische Ziele (Geheimhaltung, Authentifizierung, Integritätssicherung) erläutern
Anwendungsbereiche von Public-Key-Infrastrukturen beschreiben (zum Beispiel digitaler Personalausweis, Transportverschlüsselung, Mailverschlüsselung) und im Hinblick auf Sicherheitsaspekte bewerten
Maßnahmen zur Gewährleistung von Datensicherheit und Datenschutz beim Einsatz von Informatiksystemen erläutern
Szenarien bewerten, in denen Daten massenweise erhoben, gespeichert und weiterverarbeitet werden
Klassen 11/12 (Leistungsfach)
asymmetrische und symmetrische Verschlüsselung vergleichen (Schlüsselverwaltung, Schlüsseltausch, Geschwindigkeit)
erklären, wie Nachrichten mit asymmetrischer Verschlüsselung signiert werden können
erläutern, dass die Sicherheit asymmetrischer Kryptoverfahren auf Einwegfunktionen basiert, für die ausschließlich Angriffe mit exponentieller Laufzeit bekannt sind
spezielle Anforderungen an kryptologische Hashfunktionen und Anwendungen in der Kryptologie erläutern (zum Beispiel Fingerprint, Signatur, Passworthashes)
Kryptographische Ziele (Geheimhaltung, Authentifizierung, Integritätssicherung) und ihre Umsetzung mit kryptographischen Methoden (Chiffren, Signaturen, Hashfunktionen) erläutern
Anwendungsbereiche von Public-Key-Infrastrukturen beschreiben (zum Beispiel digitaler Personalausweis, Transportverschlüsselung, Mailverschlüsselung) und im Hinblick auf Sicherheitsaspekte bewerten
erläutern, dass digitale Zertifikate auf Vertrauensmodellen (zum Beispiel hierarchisches Modell, Web of Trust) basieren
Angriffe auf Informatiksysteme beschreiben (zum Beispiel SQL-Injections auf Datenbanksysteme, DDOS auf Netzwerkinfrastrukturen oder Phishing auf Zugangskontrollsysteme)
Maßnahmen zur Gewährleistung von Datensicherheit und Datenschutz beim Einsatz von Informatiksystemen erläutern
Szenarien bewerten, in denen Daten massenweise erhoben, gespeichert und weiterverarbeitet werden
Klassen 11/12 (Basisfach)
Anwendungsbereiche beschreiben, in denen Automatenmodelle eingesetzt werden
einen endlichen Automaten mit und ohne Ausgabe (unter anderem Mealy-Automat als Zustandsdiagramm) zur Modellierung von Abläufen verwenden
zu einem endlichen Automaten die Darstellungsformen Zustandsdiagramm und Zustandsübergangstabelle ineinander überführen
Einsatzbereiche für endliche Automaten (zum Beispiel Substringproblem, GUI, zustandsbasierte Protokolle) erläutern
Klassen 11/12 (Leistungsfach)
Anwendungsbereiche beschreiben, in denen formale Sprachen und Automatenmodelle eingesetzt werden
die Definition einer formalen Sprache erläutern
den Unterschied zwischen Semantik und Syntax einer formalen Sprache erläutern
Syntaxdiagramme unter Verwendung von Terminalsymbolen und Nichtterminalsymbolen zur Beschreibung einer formalen Sprache entwerfen
eine Grammatik unter Verwendung von Terminalsymbolen, Nichtterminalsymbolen, Startsymbol und Produktionsregeln (auch unter Verwendung von EBNF) zur Beschreibung einer formalen Sprache angeben
für verschiedene Sprachtypen überprüfen, ob ein Wort einer formalen Sprache angehört (Wortproblem), eine Ableitung für ein Wort der Sprache angeben und Wörter der Sprache angeben
einen endlichen Automaten mit und ohne Ausgabe (unter anderem Mealy-Automat als Zustandsdiagramm) zur Modellierung von Abläufen verwenden
zu einem endlichen Automaten die Darstellungsformen Zustandsdiagramm und Zustandsübergangstabelle ineinander überführen
die Definition einer regulären Sprache erläutern
reguläre Sprachen durch deterministische endliche Automaten (DEA), reguläre Grammatiken und reguläre Ausdrücke beschreiben
die Grenzen regulärer Sprachen erläutern
die Definition einer kontextfreien Sprache angeben
kontextfreie Sprachen durch Kellerautomaten und kontextfreie Grammatiken beschreiben
Grenzen kontextfreier Sprachen erläutern
Einsatzbereiche für reguläre Automaten (zum Beispiel Substringproblem, GUI, zustandsbasierte Protokolle) und Kellerautomaten (Parsen von Klammersprachen) erläutern
Klassen 11/12 (Basisfach)
Aspekte des Projektmanagements (unter anderem Projekt, Projektauftrag, Projektphasen, Anforderungen, Abnahme) und ein Vorgehensmodell (zum Beispiel agiles Vorgehen, iterativ, Wasserfallmodell) erklären
einen Projektentwurf erstellen und Anforderungen an das Projekt in geeigneter Form (zum Beispiel Lastenheft, Pflichtenheft, User Stories, Systemfunktionen) beschreiben, ein (Teil‑)Projekt durchführen und einen Prototyp erstellen
Klassen 11/12 (Leistungsfach)
Aspekte des Projektmanagements (unter anderem Projekt, Projektauftrag, Projektphasen, Anforderungen, Abnahme) und ein Vorgehensmodell (zum Beispiel agiles Vorgehen, iterativ, Wasserfallmodell) erklären
Vorgehensweisen und Herausforderungen bei der kollaborativen Softwareentwicklung (zum Beispiel Nutzung von Bibliotheken und APIs, Versionsverwaltung, Bereitstellung selbst erstellter Bibliotheken, Bugtracking, Updates) beschreiben
Methoden testgetriebener oder testgestützter Entwicklung beschreiben und verwenden
einen Projektentwurf erstellen und Anforderungen an das Projekt in geeigneter Form (zum Beispiel Lastenheft, Pflichtenheft, User Stories, Systemfunktionen) beschreiben, ein (Teil‑)Projekt durchführen und einen Prototyp erstellen