Informatik Fachbegriffe: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
Zeile 113: Zeile 113:


=Java-Programmierung mit linearen Datenstrukturen=
=Java-Programmierung mit linearen Datenstrukturen=
'''zum Nachlesen:'''
* [[Queue#Verwendung_von_Queues|Verwendung von Queues]]
* [[Stack#Verwendung_von_Stacks|Verwendung von Stacks]]
* [[List#Standardvorgehen_im_Umgang_mit_Listen|List: Standardvorgehen]]
* [[Array#Ein_Array_mit_einer_for-Schleife_durchlaufen|Array: durchlaufen]]
'''Fachbegriffe:'''
* <u>statische</u> Datenstruktur (Array): <br/>''Man muss vorher angeben, wie viele Einträge das Array hat.''
* <u>statische</u> Datenstruktur (Array): <br/>''Man muss vorher angeben, wie viele Einträge das Array hat.''
* <u>dynamische</u> Datenstrukturen: Stack, List, Queue (und auch BinaryTree, BinarySearchTree, Graph)<br/>''Dynamische Datenstrukturen können während der Laufzeit "wachsen" und "schrumpfen".''
* <u>dynamische</u> Datenstrukturen: Stack, List, Queue (und auch BinaryTree, BinarySearchTree, Graph)<br/>''Dynamische Datenstrukturen können während der Laufzeit "wachsen" und "schrumpfen".''

Version vom 14. Januar 2024, 13:07 Uhr


Hier werden die wesentlichen Fachbegriffe zusammengestellt, die für das Informatik-Abitur relevant sind.

Kursiv sind "interne" Begriffe, die anschaulich sind, aber keine echten Fachbegriffe.

Datenbanken

Entity-Relationship-Modellierung

zum Nachlesen hier klicken

  • Kardinalität
  • 1:n
  • n:m
  • Primärschlüssel
  • Attribut
  • Entitätsmenge
  • Entität (=ein Objekt einer Entitätsmenge)
  • Relation (=Beziehung)

relationales Datenmodell

zum Nachlesen hier klicken

  • Tabelle
  • Relationenschema (damit meint das Zentralabitur eine Tabelle)
  • Datenbankschema (damit meint das Zentralabitur das ganze relationale Datenmodell)
  • Attribut
  • Primärschlüssel: unterstrichen
  • Fremdschlüssel: ↑
    ...bezieht sich auf den Primärschlüssel der Tabelle ...
  • kombinierter Primärschlüssel

Normalisierung

zum Nachlesen hier klicken

  • atomar
  • nicht eindeutiger Primärschlüssel
  • funktional abhängig von einem Teil des Primärschlüssel (Verstoß gegen 2. NF)
  • funktional abhängig von einem Nicht-Schlüssel-Attribut (Verstoß gegen 3. NF)
  • Anomalien
    • Einfüge-Anomalie
    • Änderungs-Anomalie
    • Lösch-Anomalie
    • die können nach Normalisierung nicht mehr auftreten!

SQL

zum Nachlesen hier klicken

  • Kartesisches Produkt: "jede(r) mit jedem"
  • Abgleich zwischen Tabellen
  • Verknüpfen (Join) von zwei Tabellen, wobei ... mit ... abgeglichen wird.
  • "Drückeberger": ... LEFT JOIN ... WHERE ... IS NULL
  • Differenz: NOT IN
  • Vereinigung: UNION
  • selbstdefinierte Tabelle
  • Alias: AS
  • zusammenfassen von Zeilen: GROUP BY
  • sortieren nach: ORDER BY

mit Java auf Datenbanken zugreifen

zum Nachlesen hier klicken

  • DatabaseConnector
  • Query (=Abfrage)
  • Variablen (z.B. Parameter) im SQL-Statement
  • Zeilenzahl: int zeilenZahl = queryResult.getRowCount();
  • Array (2-dim): String[][] data = queryResult.getData();
    • durchlaufen:
      for(int i=0; i<data.length; i++){
         String name = data[i][0];
         String vorname = data[i][1];
  • In Zahl konvertieren: int zahl = Integer.parseInt(data[i][0]);

Objektorientierte Modellierung und Programmierung

zum Nachlesen:

Fachbegriffe:

Java-Programmierung mit linearen Datenstrukturen

zum Nachlesen:

Fachbegriffe:

  • statische Datenstruktur (Array):
    Man muss vorher angeben, wie viele Einträge das Array hat.
  • dynamische Datenstrukturen: Stack, List, Queue (und auch BinaryTree, BinarySearchTree, Graph)
    Dynamische Datenstrukturen können während der Laufzeit "wachsen" und "schrumpfen".
  • Queue: Schlange (vorne - hinten)
    • vorderstes Element: pQueue.front()
    • anhängen: pQueue.enqueue(...)
    • vorderstes Element entfernen: pQueue.dequeue()
    • ist leer: pQueue.isEmpty()
    • Hilfs-Queue: z.B. um einen Queue zu durchlaufen, ohne ihn zu zustören
  • Stack: Stapel (oben)
    • oberstes Element: pStack.top()
    • oben drauflegen: pStack.push(...)
    • oberstes Element entfernen: pStack.pop()
    • ist leer: pStack.isEmpty()
    • Hilfs-Stack: z.B. um einen Stack zu durchlaufen, ohne ihn zu zustören
  • List: Liste.
    Listen kann man einfach durchlaufen und irgendwo einfügen.
    • anhängen: pList.append(...)
    • einfügen vor dem aktuellen Element: pList.insert(...);
  • Array:
    statische Datenstruktur - man muss die Anzahl der Elemente vorher festlegen.
  • durchlaufen (Liste, Array)
    • ein Array durchlaufen: for(int i=0; i<array.length; i++)
    • eine Liste durchlaufen: for(pList.toFirst(); pList.hasAccess(); pList.next())
  • aktuelles Element:
    • Array: array[i];
    • Liste: pList.getContent();
  • erzeugen
    • erzeugen eines Objektes: Person p = new Person("Mustermann", "Max");
    • erzeugen einer Liste: List<Person> ergebnisListe = new List<>();
    • erzeugen eines Arrays:
      z.B. Person[] einwohner = new int[1000];
      Vorsicht! In jedem der 1000 Werte steht null!
    • erzeugen eines zweidimensionalen Arrays: int[][] einmalEinsTabelle = new int[10][10];
  • Schleife
    • Schleife verlassen: break;
    • Schleife beim nächsten Element fortsetzen: continue;
  • Methode verlassen return;
  • zurückgeben: return ergebnis;
  • ausgeben: System.out.println("Hallo");

Binärbäume und binäre Suchbäume

  • Rahmenmethode
  • rekursive Methode
  • Abbruchbedingung
  • Wurzelbehandlung
  • Sachlogik
  • rekursive Aufrufe
  • Traversierung
  • Preorder
  • Inorder (=im Suchbaum: Sortierte Ausgabe!)
  • Levelorder (nur LK)
  • Baumliste für Levelorder (nur LK)
  • ComparableContent
  • implementiert die Schnittstelle (ComparableContent)
  • Dummy: zum Suchen in Suchbäumen.

Automaten und Grammatiken

endliche Automaten

  • Deterministischer endlicher Automat (DEA)
    • A, Z, d, Q0, E: allen Zuhörern doofen Quatsch erzählen
  • Der DEA erkennt eine reguläre Sprache
  • Der DEA überprüft ein Wort, ob es zur Sprache gehört.
  • Nicht-deterministischer endlicher Automat (NEA)
    • "es gibt einen Weg"
  • Zustand
    • Anfangszustand
    • Endzustände
  • Übergang
  • Epsilon (ε):
    damit kann man den Endzustand erreichen. (Nur bei Keller-Automaten im LK.)
  • Alphabet
  • Zustands-Übergangs-Graph
  • Zustands-Übergangs-Tabelle
  • Zustandsfolge
    • für einen NEA ggf. mit geschweifter Klammer mehrere Zustände zusammenfassen.
  • Senke (=ein Zustand, aus dem es keinen Ausweg mehr gibt)
  • Potenzmengenkonstruktion
  • Potenzmenge (=eine Menge von Zuständen)

reguläre Grammatik

  • G = {N, T, S, P} Nerds testen Sonys Playstation
  • linkslineare Grammatik: Nicht-Terminal links
  • rechtslineare Grammatik: Nicht-Terminal rechts
    • linkslineare und rechtslineare Regeln nicht mischen!!!
      z.B.: S → aS | Sb
      ist nicht regulär!!!
  • Terminal-Symbol
  • Nicht-Terminal-Symbol
    • Startsymbol
  • Produktionsregeln
  • Produktion eines Wortes
  • die RG erzeugt eine (reguläre) Sprache

Kellerautomaten (nur LK)

  • Keller-Alphabet
  • Keller-Zeichen

kontextfreie Grammatik (nur LK)

  • lässt sich durch Kellerautomaten prüfen

Parser

  • für DEA
    • mit switch-case:
      switch(zustand){
         case 1: ...
    • mit if-else if:
      if(zustand == 1){
         ...
      }
      else if(zustand == 2){
         ...
      }
      else{
         ...
      }
  • für Kellerautomaten (nur LK)
    • Keller (=Stack)

Graph (nur LK!)

  • Knoten
  • Kante
  • markieren (Knoten oder Kante)
  • Markierung aufheben
  • Gewicht
  • Traversierung
  • Breitendurchlauf
  • Tiefendurchlauf
  • rekursiv (für Tiefendurchlauf)
  • Knotenliste (für Breitendurchlauf)
  • rote Liste (für Dijkstra-Algo)
  • gelbe Liste (für Dijkstra-Algo)

Datenschutz

  • Erlaubnisvorbehalt
  • Erforderlichkeit

Backtracking (nur LK!)

  • Stufe
  • Teillösungsschritt
  • Abbruchbedingung
    • Lösung erreicht
    • Lösung nicht mehr erreichbar
    • maximale Stufenzahl überschritten
  • rückgängig machen