Informatik-Abitur-2021: Unterschied zwischen den Versionen
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 23: | Zeile 23: | ||
## <i><code>String[][] data = queryResult.getData()</code> und dann das 2-dim Array <code>data</code> mit einer Schleife auswerten.</i> | ## <i><code>String[][] data = queryResult.getData()</code> und dann das 2-dim Array <code>data</code> mit einer Schleife auswerten.</i> | ||
## <i>(in einer anderen Aufgabe:) ein eindimensionales Array, das Objekte enthält (wie z.B. <code>private Kunde[] alleKunden;</code>) . <br/>Dafür muss man einen Schleifendurchlauf lesen/schreiben können.</i> | ## <i>(in einer anderen Aufgabe:) ein eindimensionales Array, das Objekte enthält (wie z.B. <code>private Kunde[] alleKunden;</code>) . <br/>Dafür muss man einen Schleifendurchlauf lesen/schreiben können.</i> | ||
# <font color="red">NEU: </font>[[Rekursion]] | # <font color="red">NEU: </font>[[Rekursion]]: <br/>Man muss nur eine rekursive Methode analysieren können, d.h. nicht selber schreiben! | ||
# <font color="red">NEU: </font>[[Wrapper-Klassen]] | # <font color="red">NEU: </font>[[Wrapper-Klassen]] | ||
# <strike>NEU: Struktogramme für Programmabläufe verstehen/erweitern.</strike> | # <strike>NEU: Struktogramme für Programmabläufe verstehen/erweitern.</strike> | ||
Zeile 53: | Zeile 53: | ||
* '''%''' : z.B.: <code>int a = x%4;</code><br/>Mit % berechnet man den Rest beim Teilen. <br/>D.h. für x = 14 wird dann a = 14%4 = 2. | * '''%''' : z.B.: <code>int a = x%4;</code><br/>Mit % berechnet man den Rest beim Teilen. <br/>D.h. für x = 14 wird dann a = 14%4 = 2. | ||
* '''!''' : z.B.: <code>if(!pTree.isEmpty())</code><br/>bedeutet "nicht". <br/>D.h. hier: Wenn pTree nicht leer ist. | |||
* '''||''' : z.B.: <code>if(zahl < 0 || zahl > 10) </code><br/>bedeutet "oder".<br/>D.h. hier: Wenn zahl kleiner als 0 oder zahl größer als 10 ist . | |||
* '''&&''' : z.B.: <code>if(zahl > 0 && zahl < 10) </code><br/>bedeutet "und".<br/>D.h. hier: Wenn zahl größer als 0 und zahl kleiner als 10 ist (d.h. für Zahlen zwischen 0 und 10, jeweils ausschließlich). | |||
* '''Integer.parseInt(...)''': Wandelt einen String in eine Ganzzahl um.Z.B.<br/><code>String zahlString = "12345";<br/><code>int zahl = Integer.parseInt(zahlString);</code><br/>Entsprechend gibt es Double.parseDouble(...) und Boolean.parseBoolean(...) | * '''Integer.parseInt(...)''': Wandelt einen String in eine Ganzzahl um.Z.B.<br/><code>String zahlString = "12345";<br/><code>int zahl = Integer.parseInt(zahlString);</code><br/>Entsprechend gibt es Double.parseDouble(...) und Boolean.parseBoolean(...) | ||
Zeile 68: | Zeile 74: | ||
* '''continue;''' Macht sofort beim nächsten Schleifendurchlauf weiter | * '''continue;''' Macht sofort beim nächsten Schleifendurchlauf weiter | ||
* '''BETWEEN''': | * '''BETWEEN''': SQL: bedeutet "zwischen".<br/> Beispiel: SELECT f.name FROM film f WHERE f.jahr BETWEEN 1980 and 1990. | ||
* '''UNION''': SQL: Schlüsselwort für Vereinigung:<br/>SELECT s.name, s.vorname FROM schueler s UNION SELECT l.name, l.vorname FROM lehrer l<br/>Die Namen und Vornamen von allen Schülern und allen Lehrern.<br/>Die durch UNION verbundenen Abfragen müssen gleich viele Spalten haben. | |||
* '''DISTINCT''': SQL. Sorgt dafür, dass alles, was dahinter steht, nur 1x aufgeführt wird:<br/>SELECT DISTINCT k.vorname, k.name FROM kunde k.<br/>Wenn es mehrere "Stefan Meyer" gibt, wird nur einer ausgegeben. (Aber andere Stefans werden ausgegeben!) | * '''DISTINCT''': SQL. Sorgt dafür, dass alles, was dahinter steht, nur 1x aufgeführt wird:<br/>SELECT DISTINCT k.vorname, k.name FROM kunde k.<br/>Wenn es mehrere "Stefan Meyer" gibt, wird nur einer ausgegeben. (Aber andere Stefans werden ausgegeben!) | ||
* '''AVG''': SQL. Berechnet den Durchschnitt Beispiel:<br/>SELECT AVG(u.stunden) FROM unterricht u. | * '''AVG''': SQL. Berechnet den Durchschnitt Beispiel:<br/>SELECT AVG(u.stunden) FROM unterricht u. | ||
* '''GROUP BY''': SQL. Fasst jeweils mehrere Zeilen zu einer zusammen. Beispiel:<br/>SELECT u.fach, SUM(u.stunden) FROM unterricht u GROUP BY u.fach | * '''GROUP BY''': SQL. Fasst jeweils mehrere Zeilen zu einer zusammen. Beispiel:<br/>SELECT u.fach, SUM(u.stunden) FROM unterricht u GROUP BY u.fach | ||
* '''LIKE''' in Kombination mit '''%''': SQL. LIKE mit Prozent ermöglicht einen "ungefähren" Abgleich. Beispiel: <br/>SELECT k.name, k.ort FROM kunde k WHERE k.ort LIKE 'Bad%'<br>Sucht alle Kunden aus Orten, die mit "Bad" anfangen. | * '''LIKE''' in Kombination mit '''%''': SQL. LIKE mit Prozent ermöglicht einen "ungefähren" Abgleich. Beispiel: <br/>SELECT k.name, k.ort FROM kunde k WHERE k.ort LIKE 'Bad%'<br>Sucht alle Kunden aus Orten, die mit "Bad" anfangen. | ||
* '''Wrapper-Klassen:''' Das sind Klassen zu den einfachen Datentypen int, double, char und boolean. D.h. so kann man zu den einfachen Datentypen Objekte erzeugen, z.B.: <br/><code>Double d = new Double(3.1415927);</code> | * '''Wrapper-Klassen:''' Das sind Klassen zu den einfachen Datentypen int, double, char und boolean. D.h. so kann man zu den einfachen Datentypen Objekte erzeugen, z.B.: <br/><code>Double d = new Double(3.1415927);</code> | ||
* '''Reguläre Sprache:''' Für jede reguläre Sprache '''gibt''' es eine reguläre Grammatik und einen DEA. <br/><u>ABER:</u>Eine nicht-reguläre Grammatik kann eine reguläre Sprache erzeugen! | * '''Reguläre Sprache:''' Für jede reguläre Sprache '''gibt''' es eine reguläre Grammatik und einen DEA. <br/><u>ABER:</u>Eine nicht-reguläre Grammatik kann eine reguläre Sprache erzeugen! | ||
Zeile 93: | Zeile 106: | ||
* '''Objektorientierte Modellierung:''' | * '''Objektorientierte Modellierung:''' | ||
** <u>[[Implementationsdiagramm]]</u> | ** <u>[[Implementationsdiagramm]]</u> | ||
** <u>Erläutern mit Fachbegriffen</u> (Klasse, Attribut, Methode, Konstruktor, Parameter, Rückgabetyp, kennt-Beziehung, erbt-von-Beziehung) | ** <u>Erläutern mit Fachbegriffen</u><br/>(Klasse, Attribut, Methode, Konstruktor, Parameter, Rückgabetyp, kennt-Beziehung, erbt-von-Beziehung, abstrakte Klasse, Schnittstelle, implementiert, polymorphe Methode) | ||
* '''lineare Datenstrukturen:''' | * '''lineare Datenstrukturen:''' | ||
** <u>[[List]]</u> | ** <u>[[List]]</u> | ||
Zeile 99: | Zeile 112: | ||
** [[Selectionsort]] bzw. [[Insertionsort]] | ** [[Selectionsort]] bzw. [[Insertionsort]] | ||
** [[Array]]: 1-dim und 2-dim, durchlaufen | ** [[Array]]: 1-dim und 2-dim, durchlaufen | ||
** <u>Methoden erläutern mit Fachbegriffen: [[Quelltextanalyse_Java]]</u> | ** <u>Methoden erläutern mit Fachbegriffen: [[Quelltextanalyse_Java]]</u><br/>Die Methode kann auch <u>rekursiv</u> sein. | ||
* '''[[Binärbaum | * '''[[Binärbaum]]''' | ||
** Traversierungen (Inorder, Preorder) | ** Bäume, die Objekte enthalten (vgl. Abi-Aufgabe "Ahnenbaum") | ||
** | ** Traversierungen (Inorder, Preorder, Levelorder): | ||
** | *** Prinzip | ||
*** Implementierung (mit Rahmenmethode!) | |||
** (nur LK:) Linearisierung für Levelorder | ** (nur LK:) Linearisierung für Levelorder | ||
** <u> | *** Prinzip | ||
*** Implementierung (mit "Baumliste"!) | |||
** <u>rekursive Methoden</u>: | |||
*** analysieren | |||
*** implementieren | |||
** <u>Methoden erläutern mit Fachbegriffen: [[Quelltextanalyse_Java]]</u> | ** <u>Methoden erläutern mit Fachbegriffen: [[Quelltextanalyse_Java]]</u> | ||
* '''[[Binärer Suchbaum]]''' | |||
** Pfaddurchlauf... | |||
*** ...für Suche in einem sortierten Baum | |||
*** ...für Einfügen in einen sortierten Baum | |||
** <u>Schnittstelle Comparable (für die Klasse BinarySearchTree)</u>: | |||
*** <u>Begriff [[Interface]]</u> | |||
*** ComparableContent im Implementationsdiagramm: Wer das implementiert, muss die Methoden von ComparableContent implementieren! | |||
*** ComparableContent in der Implementierung (... implements ComparableContent und die drei Methoden implementieren) | |||
*** Suchen im Binären Suchbaum mithilfe eines "Dummy-Elementes": Prinzip / Implementierung | |||
*** Sortieren der Elemente eines Binären Suchbaumes mithilfe des Inorder-Durchlaufes | |||
*** Laufzeit für Suchen im Binären Suchbaum (Laufzeit log<sub>2</sub>n, wobei n die Anzahl der Elemente im Baum ist) | |||
* '''Automaten und Grammatiken:''' | * '''Automaten und Grammatiken:''' | ||
Zeile 119: | Zeile 149: | ||
** (nur LK:) [[Kellerautomat]] und Parser für Kellerautomat | ** (nur LK:) [[Kellerautomat]] und Parser für Kellerautomat | ||
** (nur LK:) [[Kontextfreie Grammatik]] (Anforderungen kennen!) | ** (nur LK:) [[Kontextfreie Grammatik]] (Anforderungen kennen!) | ||
* (nur LK:) '''[[Graph]]''' | |||
** Breitendurchlauf, Tiefendurchlauf: | |||
*** Prinzip | |||
*** Implementierung | |||
** [[Dijkstra-Algorithmus]]: nur Prinzip! (d.h. nicht Implementierung) | |||
** [[Backtracking]], z.B. für die kürzeste Rundreise | |||
** <u>Methoden erläutern mit Fachbegriffen: [[Quelltextanalyse_Java]]</u> | |||
=Wiederholungsaufgaben= | =Wiederholungsaufgaben= | ||
Zeile 154: | Zeile 192: | ||
Der Lehrer muss aus 4 Aufgaben 3 auswählen und den Schülern vorlegen. Die Schüler haben keine Auswahl. Die Aufgaben können aus folgenden 6 Schwerpunkten stammen, d.h. es stehen nicht immer alle Schwerpunkte zur Auswahl. | Der Lehrer muss aus 4 Aufgaben 3 auswählen und den Schülern vorlegen. Die Schüler haben keine Auswahl. Die Aufgaben können aus folgenden 6 Schwerpunkten stammen, d.h. es stehen nicht immer alle Schwerpunkte zur Auswahl. | ||
Die Jahreszahlen geben an, ob dieses Thema | Die Jahreszahlen geben an, ob dieses Thema seit 2013 (inklusive) zur Auswahl stand. | ||
# Datenbanken: | # Datenbanken: immer | ||
# Automaten und Grammatiken: | # Automaten und Grammatiken: immer | ||
# lineare Datenstrukturen, Implementationsdiagramme, Objektorientierte Programmierung: | # lineare Datenstrukturen, Implementationsdiagramme, Objektorientierte Programmierung: immer | ||
# Binärbäume und Binäre Suchbäume: 2019, 2018(Suchbäume!), 2016, 2015, 2013 '' aber '''nicht''' 2020, 2018, 2017, 2014''. | |||
# Binärbäume und Binäre Suchbäume: 2019, '' aber '''nicht''' 2018 | # Graphen: 2020, 2017, 2014 '' aber '''nicht''' 2019, 2018, 2016, 2015, 2013''. | ||
# Graphen: 2017, '' aber '''nicht''' 2019 |
Aktuelle Version vom 20. April 2021, 19:43 Uhr
Auf dieser Seite wird alles gesammelt, was für das Abitur 2021 (LK) wichtig ist.
Vorabi-Klausur (LK)
a) Datenbanken:
- Entity-Relationship-Modell, relationales Datenmodell
- SQL
- Normalisierung
- mit Java auf SQL zugreifen
Grundprinzipien des Datenschutzes:Verbot mit ErlaubnisvorbehaltErforderlichkeit
b) lineare Datenstrukturen, Implementationsdiagramme, Vererbung
- Erstellen / Erweitern von Implementationsdiagrammen
- Anwendung von linearen Datenstrukturen in der Programmierung: List, Stack, Queue
- Vererbung und Polymorphie
und Interface - Arrays :
Von Arrays kommt im Vorabi nur dran:String[][] data = queryResult.getData()
und dann das 2-dim Arraydata
mit einer Schleife auswerten.- (in einer anderen Aufgabe:) ein eindimensionales Array, das Objekte enthält (wie z.B.
private Kunde[] alleKunden;
) .
Dafür muss man einen Schleifendurchlauf lesen/schreiben können.
- NEU: Rekursion:
Man muss nur eine rekursive Methode analysieren können, d.h. nicht selber schreiben! - NEU: Wrapper-Klassen
NEU: Struktogramme für Programmabläufe verstehen/erweitern.
c) Automaten und Grammatiken:
- Deterministischer Endlicher Automat (DEA)
- reguläre Grammatik (linkslinear bzw. rechtslinear): Anforderungen kennen!
- DEA in reguläre Grammatik umwandeln
- reguläre Grammatik in NEA umwandeln
- Potenzmengenkonstruktion (um NEA in DEA zu verwandeln)
- Grenzen von DEA: Darf nur endlich viele Zustände haben!
- Parser programmieren: Am einfachsten mit if-else
- Kellerautomat und Parser für Kellerautomat
- Kontextfreie Grammatik (Anforderungen kennen!)
Finale
Für das Finale lohnt sich ein Blick auf die "nervigen Sprachelemente" - einfach um sie in der Klausur parat zu haben!
Es reicht in der Regel, wenn man sie "passiv" beherrscht, d.h. lesen kann. Notfalls schreibe man an den Rand: Dafür gibt es eine Methode, aber sie fällt mir im Moment nicht ein. (Das kostet in der Regel keinen Punkt, es sei denn man macht das häufiger...
Außerdem sollte man sich die Standard-Themen nochmal anschauen, die eigentlich so gut wie immer dran kommen - entweder hier auf dem sibiwiki, oder - wenn vorhanden - auf youtube: Erklärvideos auf Youtube
nervige Sprachelemente
Hier wird aufgeführt, was sich kurz vor der Abiturklausur zu wiederholen lohnt - einfach um darüber Bescheid zu wissen!
Datei:Dokumentation-Informatik-Seite-1-3.pdf:
Hier sind alle Java- und SQL-Sprachelemente aufgeführt, die im Zentralabitur vorausgesetzt werden.
Einmal durchlesen und checken, ob man etwas nicht kennt / kann!*
Aus dieser Datei werden einige wichtige Sprachelemente hier nochmal kurz erklärt. Wichtig sind sie insofern, als sie schon häufiger im Abitur vorkamen!
- Teilen von ganzen Zahlen : z.B.:
int a = 11/4;
Beim Teilen von ganzen Zahlen wird immer abgerundet. D.h. a hat den Wert 2.
- % : z.B.:
int a = x%4;
Mit % berechnet man den Rest beim Teilen.
D.h. für x = 14 wird dann a = 14%4 = 2.
- ! : z.B.:
if(!pTree.isEmpty())
bedeutet "nicht".
D.h. hier: Wenn pTree nicht leer ist.
- || : z.B.:
if(zahl < 0 || zahl > 10)
bedeutet "oder".
D.h. hier: Wenn zahl kleiner als 0 oder zahl größer als 10 ist .
- && : z.B.:
if(zahl > 0 && zahl < 10)
bedeutet "und".
D.h. hier: Wenn zahl größer als 0 und zahl kleiner als 10 ist (d.h. für Zahlen zwischen 0 und 10, jeweils ausschließlich).
- Integer.parseInt(...): Wandelt einen String in eine Ganzzahl um.Z.B.
String zahlString = "12345";
int zahl = Integer.parseInt(zahlString);
Entsprechend gibt es Double.parseDouble(...) und Boolean.parseBoolean(...)
- charAt(n): Eine Methode der Klasse String: Gibt den n-ten Buchstaben eines Strings zurück. Z.B.:
String wort = "Hallo";
char buchstabe = wort.charAt(1);
buchstabe hat dann den Wert 'a' (Denn der erste Buchstabe hat immer den Index 0!)
- indexOf(teilString): Methode der Klasse String. Gibt die Position des Teilstrings an. Z.B.:
String wort = "Hallo";
int position = wort.indexOf("ll");
position hat dann den Wert 2.
- compareTo(andererString): Methode der Klasse String. Vergleicht die zwei Strings alphabetisch und gibt eine negative Zahl, 0 oder eine positive Zahl zurück.
- substring(int beginIndex) bzw. substring(int beginIndex, int endIndex): Methoden der Klasse String. Sie geben einen Teilstring zurück.
- continue; Macht beim nächsten Schleifendurchlauf weiter.
- break; Verlässt eine Schleife.
- continue; Macht sofort beim nächsten Schleifendurchlauf weiter
- BETWEEN: SQL: bedeutet "zwischen".
Beispiel: SELECT f.name FROM film f WHERE f.jahr BETWEEN 1980 and 1990.
- UNION: SQL: Schlüsselwort für Vereinigung:
SELECT s.name, s.vorname FROM schueler s UNION SELECT l.name, l.vorname FROM lehrer l
Die Namen und Vornamen von allen Schülern und allen Lehrern.
Die durch UNION verbundenen Abfragen müssen gleich viele Spalten haben.
- DISTINCT: SQL. Sorgt dafür, dass alles, was dahinter steht, nur 1x aufgeführt wird:
SELECT DISTINCT k.vorname, k.name FROM kunde k.
Wenn es mehrere "Stefan Meyer" gibt, wird nur einer ausgegeben. (Aber andere Stefans werden ausgegeben!)
- AVG: SQL. Berechnet den Durchschnitt Beispiel:
SELECT AVG(u.stunden) FROM unterricht u.
- GROUP BY: SQL. Fasst jeweils mehrere Zeilen zu einer zusammen. Beispiel:
SELECT u.fach, SUM(u.stunden) FROM unterricht u GROUP BY u.fach
- LIKE in Kombination mit %: SQL. LIKE mit Prozent ermöglicht einen "ungefähren" Abgleich. Beispiel:
SELECT k.name, k.ort FROM kunde k WHERE k.ort LIKE 'Bad%'
Sucht alle Kunden aus Orten, die mit "Bad" anfangen.
- Wrapper-Klassen: Das sind Klassen zu den einfachen Datentypen int, double, char und boolean. D.h. so kann man zu den einfachen Datentypen Objekte erzeugen, z.B.:
Double d = new Double(3.1415927);
- Reguläre Sprache: Für jede reguläre Sprache gibt es eine reguläre Grammatik und einen DEA.
ABER:Eine nicht-reguläre Grammatik kann eine reguläre Sprache erzeugen!
Fachbegriffe
Eine Liste der Fachbegriffe für das Informatik-Abitur findet sich hier:
Informatik_Fachbegriffe.
Standard-Themen
Unterstrichen sind Teilthemen, die eigentlich immer drankommen.
Bei dieser Liste wird keine Garantie für Vollständigkeit übernommen - das ist aus der Erfahrung der letzten Jahre...
- Datenbanken
- Entity-Relationship-Modell
- relationales Datenmodell
- SQL
- Normalisierung
- mit Java auf Datenbanken zugreifen: Java-SQL
- Objektorientierte Modellierung:
- Implementationsdiagramm
- Erläutern mit Fachbegriffen
(Klasse, Attribut, Methode, Konstruktor, Parameter, Rückgabetyp, kennt-Beziehung, erbt-von-Beziehung, abstrakte Klasse, Schnittstelle, implementiert, polymorphe Methode)
- lineare Datenstrukturen:
- List
- Java-Programmierung für Szenarien mit Listen
- Selectionsort bzw. Insertionsort
- Array: 1-dim und 2-dim, durchlaufen
- Methoden erläutern mit Fachbegriffen: Quelltextanalyse_Java
Die Methode kann auch rekursiv sein.
- Binärbaum
- Bäume, die Objekte enthalten (vgl. Abi-Aufgabe "Ahnenbaum")
- Traversierungen (Inorder, Preorder, Levelorder):
- Prinzip
- Implementierung (mit Rahmenmethode!)
- (nur LK:) Linearisierung für Levelorder
- Prinzip
- Implementierung (mit "Baumliste"!)
- rekursive Methoden:
- analysieren
- implementieren
- Methoden erläutern mit Fachbegriffen: Quelltextanalyse_Java
- Binärer Suchbaum
- Pfaddurchlauf...
- ...für Suche in einem sortierten Baum
- ...für Einfügen in einen sortierten Baum
- Schnittstelle Comparable (für die Klasse BinarySearchTree):
- Begriff Interface
- ComparableContent im Implementationsdiagramm: Wer das implementiert, muss die Methoden von ComparableContent implementieren!
- ComparableContent in der Implementierung (... implements ComparableContent und die drei Methoden implementieren)
- Suchen im Binären Suchbaum mithilfe eines "Dummy-Elementes": Prinzip / Implementierung
- Sortieren der Elemente eines Binären Suchbaumes mithilfe des Inorder-Durchlaufes
- Laufzeit für Suchen im Binären Suchbaum (Laufzeit log2n, wobei n die Anzahl der Elemente im Baum ist)
- Automaten und Grammatiken:
- Deterministischer Endlicher Automat (DEA)
- reguläre Grammatik (linkslinear bzw. rechtslinear): Anforderungen kennen!
- DEA in reguläre Grammatik umwandeln
- reguläre Grammatik in NEA umwandeln
- Potenzmengenkonstruktion (um NEA in DEA zu verwandeln)
- Grenzen von DEA: Darf nur endlich viele Zustände haben!
- Parser programmieren: Am einfachsten mit if-else
- (nur LK:) Kellerautomat und Parser für Kellerautomat
- (nur LK:) Kontextfreie Grammatik (Anforderungen kennen!)
- (nur LK:) Graph
- Breitendurchlauf, Tiefendurchlauf:
- Prinzip
- Implementierung
- Dijkstra-Algorithmus: nur Prinzip! (d.h. nicht Implementierung)
- Backtracking, z.B. für die kürzeste Rundreise
- Methoden erläutern mit Fachbegriffen: Quelltextanalyse_Java
Wiederholungsaufgaben
Auf der Seite Informatik-Abitur-Wiederholung finden sich Wiederholungsaufgaben mit Lösungen zu den verschiedenen Themenbereichen!
Materialien des Ministeriums für das Abi 2020
Vorgaben für das Abitur 2020
Die kann man hier herunterladen: Datei:Informatik 2021.pdf
- GK: Besonders wichtig ist die Tabelle auf S. 4/5!
- LK: Besonders wichtig ist die Tabelle auf S. 5/5!
Operatoren für die Aufgaben
Die kann man hier herunterladen: Datei:IF Operatoren.pdf
Hier werden die sog. Operatoren (z.B. "implementieren", "beschreiben", "benennen"...) erläutert.
Vorschlag zur Umgehensweise: Ausdrucken, durchlesen, ungewohnte Operatoren anstreichen, später nochmal anschauen.
Dokumentationen
- GK:: Die Dokumentationen für den GK kann man hier herunterladen: Datei:2017-11-28 Dokumentation GK ab Abitur 2018.pdf
- LK:: Die Dokumentationen für den LK kann man hier herunterladen: Datei:2017-11-28 Dokumentation LK ab Abitur 2018.pdf
Im Abitur bekommt man zu fast allen Klassen eine Dokumentation.
Ausnahmen:
die folgenden Teile der Dokumentation liegen nicht der Klausur bei:
- Basis-Sprachelemente und -Datentypen
- SQL
- Klassendiagramme (d.h. Entwurfsdiagramme und Implementationsdiagramme)
Abiklausur (LK)
Der Lehrer muss aus 4 Aufgaben 3 auswählen und den Schülern vorlegen. Die Schüler haben keine Auswahl. Die Aufgaben können aus folgenden 6 Schwerpunkten stammen, d.h. es stehen nicht immer alle Schwerpunkte zur Auswahl.
Die Jahreszahlen geben an, ob dieses Thema seit 2013 (inklusive) zur Auswahl stand.
- Datenbanken: immer
- Automaten und Grammatiken: immer
- lineare Datenstrukturen, Implementationsdiagramme, Objektorientierte Programmierung: immer
- Binärbäume und Binäre Suchbäume: 2019, 2018(Suchbäume!), 2016, 2015, 2013 aber nicht 2020, 2018, 2017, 2014.
- Graphen: 2020, 2017, 2014 aber nicht 2019, 2018, 2016, 2015, 2013.