Informatik Fachbegriffe: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
Zeile 152: Zeile 152:
==reguläre Grammatik==
==reguläre Grammatik==
* G = {N, T, S, P} ''Nerds testen Sonys Playstation''
* G = {N, T, S, P} ''Nerds testen Sonys Playstation''
* linkslineare Grammatik
* linkslineare Grammatik: Nicht-Terminal links
* rechtslineare Grammatik
* rechtslineare Grammatik: Nicht-Terminal rechts
** <i>linkslineare und rechtslineare Regeln nicht mischen!!!<br/>z.B.: <code>S → aS | Sb</code><br/>ist nicht regulär!!!</i>
* Terminal-Symbol
* Terminal-Symbol
* Nicht-Terminal-Symbol
* Nicht-Terminal-Symbol

Version vom 3. März 2022, 17:39 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

  • Kardinalität
  • 1:n
  • n:m
  • Primärschlüssel
  • Attribut
  • Entitätsmenge
  • Entität
  • Relation

relationales Datenmodell

  • Tabelle
  • Attribut
  • Primärschlüssel
  • Fremdschlüssel
    ...bezieht sich auf den Primärschlüssel der Tabelle ...
  • kombinierter Primärschlüssel
  • Relationenschema (damit meint das Zentralabitur eine Tabelle)

Normalisierung

  • atomar
  • nicht eindeutiger Primärschlüssel
  • funktional abhängig von einem Teil des Primärschlüssel (2. NF)
  • funktional abhängig von einem Nicht-Schlüssel-Attribut (3. NF)

SQL

  • Kartesisches Produkt
  • 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

  • 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

  • erbt von (bzw. "ist ein")
  • Super-Klasse
  • Sub-Klasse
  • Polymorphie
    • polymorphe Methode
  • abstrakte Methode
  • abstrakte Klasse (=Klasse mit mind. einer abstrakten Methode)
  • hat/kennt-Beziehung
  • Attribut
  • lokale Variable
  • Methode
  • Parameter
  • Rückgabetyp
  • public / private
  • Konstruktor
  • Klasse
  • Schnittstelle (interface, vgl. ComparableContent)
  • Objekt
  • ContentType
  • Struktogramm
  • Anweisung
  • Methodenaufruf
  • Bedingung
  • Schleife
    • Zählschleife (for)
    • bedingte Schleife (while)
    • mit Schleife ein Array durchlaufen: for(int i=0; i<array.length; i++)

Java-Programmierung mit linearen Datenstrukturen

  • Schlange (vorne - hinten): Queue
  • Stapel (oben): Stack
  • Liste: List
    • anhängen: pList.append(...)
    • einfügen vor dem aktuellen Element: pList.insert(...);
  • 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();
  • Hilfs-Stack
  • Hilfs-Queue
  • erzeugen eines Objektes: Person p = new Person("Mustermann", "Max");
  • erzeugen eines Arrays: int[] zahlen = new int[1000];
  • Schleife
    • mit einer for-Schleife ein Array durchlaufen: for(int i=0; i<array.length; i++)
  • Schleife verlassen: break;
  • Schleife beim nächsten Element fortsetzen: continue;
  • lokale Variable
  • Attribut
  • 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 Sprache
  • Der DEA überprüft ein Wort.
  • Nicht-deterministischer endlicher Automat (NEA)
    • "es gibt einen Weg"
  • Zustand
    • Anfangszustand
    • Endzustände
  • Übergang
  • Epsilon (€):
    damit kann man den Endzustand erreichen. (Das vereinfacht das "Übersetzen" einer regulären Grammatik in einen Automaten.)
  • Alphabet
  • Zustands-Übergangs-Graph
  • Zustands-Übergangs-Tabelle
  • Zustandsfolge
  • Senke (=ein Zustand, aus dem es keinen Ausweg mehr gibt)
  • Potenzmengenkonstruktion
  • Potenzmenge (=eine Menge von Zuständen)

Kellerautomaten (nur LK)

  • Keller-Alphabet
  • Keller-Zeichen

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

kontextfreie Grammatik (nur LK)

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)

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