Skip to content

Instantly share code, notes, and snippets.

@Max-42
Last active April 25, 2024 11:22
Show Gist options
  • Save Max-42/65173ef01c9d8fb2650e20aa4dcc1ce8 to your computer and use it in GitHub Desktop.
Save Max-42/65173ef01c9d8fb2650e20aa4dcc1ce8 to your computer and use it in GitHub Desktop.
Lernzettel: Informatik Abitur 2024

Lernzettel

Caution

Auch ich kann Fehler machen, wenn ihr welche findet, lasst es mich bitte unbedingt wissen.

Note

Legende:

  • Im Lernzettel enthalten
  • Fehlt noch im Lernzettel
  • ⚠️ Wichtig
  • 🚫 Kommt nicht dran

Klausurthemen

Webentwicklung

HTML

Die Hypertext Markup Language ist eine textbasierte Auszeichnungssprache zur Strukturierung elektronischer Dokumente wie Texte mit Hyperlinks, Bildern und anderen Inhalten. HTMLDokumente sind die Grundlage des World Wide Web und werden von Webbrowsern dargestellt.

HTML-Elemente

Grundstruktur
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta stylesheet="./style.css"> <!-- Verlinkung zu einer CSS-Datei -->
    <title>Titel der Webseite</title>
</head>
<body>
    <h1>Überschrift 1</h1>
    <p>Ein Absatz</p>
</body>
</html>
Überschriften
<h1>Überschrift 1</h1>
<h2>Überschrift 2</h2>
<h3>Überschrift 3</h3>
<h4>Überschrift 4</h4>
<h5>Überschrift 5</h5>
<h6>Überschrift 6</h6>
Absätze
<p>Ein Absatz</p>
Links
<a href="https://www.dyren.de">Dyren.de</a>
Bilder
<img src="bild.jpg" alt="Beschreibung des Bildes">
HTML-Listen

Mit <li> beginnt ein neuer Punkt innerhalb der Liste (li = list item = Listeneintrag).

Ungeordnete Liste

Das Element ul, unordered list (englisch für ungeordnete, unsortierte Liste), beschreibt eine Liste, bei der die Reihenfolge der Elemente nur eine untergeordnete oder keine Rolle spielt.

<ul>
  <li>Eintrag 1</li>
  <li>Eintrag 2</li>
</ul>
Geordnete Liste

Das Element ol, ordered list (englisch für geordnete, sortierte Liste), bezeichnet eine Liste, bei der die Reihenfolge der Elemente von Bedeutung ist.

<ol>
  <li>Eintrag 1</li>
  <li>Eintrag 2</li>
</ol>
Tabellen
<table>
  <tr>
    <th>Überschrift 1</th>
    <th>Überschrift 2</th>
  </tr>
  <tr>
    <td>Inhalt 1</td>
    <td>Inhalt 2</td>
  </tr>
</table>

CSS

Definition CSS

${\textsf{\color{yellow}C}}$ascading ${\textsf{\color{yellow}S}}$tyle ${\textsf{\color{yellow}S}}$heets ist eine Stylesheet-Sprache für elektronische Dokumente und zusammen mit HTML und JavaScript eine der Kernsprachen des World Wide Webs. Sie ist ein sogenannter „living standard“ und wird vom World Wide Web Konsortium beständig weiterentwickelt.

CSS-Selektoren

  • Elementselektor
    p {
      color: red;
    }

    Alle <p>-Elemente werden rot dargestellt.

  • Klassenselektor
    .klasse {
      color: red;
    }

    Alle Elemente mit der Klasse klasse werden rot dargestellt.

  • ID-Selektor
    #id {
      color: red;
    }

    Das Element mit der ID id wird rot dargestellt.

  • Nachbarselektor
    h1 + p {
      color: red;
    }
  • Nachfahreselektor
    h1 p {
      color: red;
    }
  • Pseudoklassen
    a:hover {
      color: red;
    }
  • Pseudoelemente
    p::first-line {
      color: red;
    }
  • Attributselektoren
    a[href="https://www.dyren.de"] {
      color: red;
    }
  • Gruppenselektor
    h1, h2, h3 {
      color: red;
    }
  • Universalselektor
    * {
      color: red;
    }
  • Kindselektor
    h1 > p {
      color: red;
    }

Bildbearbeitung

Gimp

Datenbanken

Definition Datenbank

Eine Datenbank ist eine logisch zusammenhängende Sammlung von logisch zusammenhängenden Daten mit einer logisch inhärenten Bedeutung.

Begriffsdefinitionen

Begriff Erklärung
Primärschlüssel Ein Primärschlüssel definiert einen Datensatzeindeutig
Fremdschlüssel Ein Fremdschlüssel ist ein Primärschlüssel in einer anderen Tabelle.
Redundanz Werden dieselben Daten mehrfach gespeichert, dann spricht man von Redundanz. Man sagt, die Daten werden redundant gespeichert.
Konsistenz Unter Konsistenz versteht man dieWiderspruchsfreiheit und Vollständigkeit von Daten in einer Datenbank. Demzufolge bedeutet Dateninkonsistenz, dass z. B. aufgrund von Redundanz zwei (oder mehr) verschiedene Versionen von Daten existieren.
Benutzersichten/Views Benutzer oder Anwendungsprogramme benötigen unterschiedliche Daten, d. h. sie haben unterschiedliche Sichten auf die Daten. Es soll jeder nur das sehen, was er braucht und darf. Es ist nur die Definition der Sicht gespeichert, die Daten werden jedes Mal aus der Tabelle geholt oder abgeleitet
Mehrbenutzerbetrieb/Synchronisation Es entstehen durch Benutzer oder Anwendungsprogramme Zugriffe auf dieselben Daten. Diese Zugriffe müssenorganisiert werden. Auch bei Mehrfachzugriff müssen die Daten in einem konsistenten Zustand bleiben.
Datenschutz Datenschutz dient dem Schutz des Bürgers vor dermissbräuchlichen Verwendung seiner Daten und ist gesetzlich geregelt. Er dient nicht dem Schutz der Daten selbst. Datenschutz heißt Gewährleistung von Vertraulichkeit: Nur berechtigte Personen haben Zugang zu den Daten. Grundsätzlich dürfen Daten von Personen nur dann verwendet werden, wenn dazu ein gesetzlicher Auftrag besteht. Im Normalfall besitzen lediglich einige öffentliche Institutionen derartige Rechte. Firmen und Privatpersonen dürfen solche Daten nicht verwenden.
Datensicherheit Datensicherheit umfasst die technischen und organisatorischen Maßnahmen zum Schutz von Daten gegen Beschädigung, Sie zielt dabei besonders auf die Sicherstellung der Verfügbarkeit, der Integrität und der Verbindlichkeit der Daten ab.
Programm-Daten-Abhängigkeit Bei der traditionellen Dateiverarbeitung ist die Struktur von Datendateien in den Anwendungsprogrammen eingebettet, so dass Änderungen der Struktur einer Datei möglicherweise zur Änderung aller Programme führen, die auf diese Datei zugreifen. Man nennt dieses Merkmal Programm/Daten-Abhängigkeit.

Datenbank Datentypen

  • INT / INTEGER Ganzzahlen von 0 bis ~4,3 Mill. oder von -2.147.483.648 bis 2.147.483.647.
  • FLOAT Fließkommazahl mit Vorzeichen.
  • DECIMAL Fließkommazahl mit Vorzeichen
  • DATE Datum im Format 'YYYY-MM-DD'.
  • TIMESTAMP Zeitstempel.
  • CHAR Zeichenkette fester Länge
  • VARCHAR Zeichenkette variabler Länge
  • BLOB Binäres Objekt mit variablen Daten
  • TEXT Wie BLOB. Ignoriert beim Sortieren & Vergleichen Groß- und Keinschreibung
  • ENUM Liste von Werten

Datenbank Anomalien

Redundanz

(redundant = überflüssig; Wiederholung von Information) Beispiel: Bei einem Bringdienst werden alle Produkte mit einer ausgeschriebenen Kategorie versehen. Wirkung: Diese Daten werden mehrfach gespeichert und so wird unnötig Speicherplatz belegt. Die folgenden Fehler in Datenbanken werden als Anomalien bezeichnet (anomal = unregelmäßig; Fehlverhalten der Datenbanken)

Einfüge (Insert)-Anomalie

Beispiel: Die Kategorie Fleischgericht soll neu aufgenommen werden. Wirkung: Die neue Kategorie kann nur aufgenommen werden, wenn gleichzeitig ein neuer Artikel aufgenommen wird

Änderungs (Update)-Anomalie

Beispiel: Die Kategorie Pizza wird in Steinofenpizza umbenannt. Wirkung: Es müssen die gesamten Artikel nach Pizza durchsucht und geändert werden. Es ist fraglich, ob der Schreibfehler PizA dabei erkannt wird. Diese Anomalie führt zur Inkonsistenz (Widerspruch) innerhalb der Datenbank. Einige Daten widersprechen sich also.

Lösch (Delete)-Anomalie

Beispiel: Der Artikel 308 wird gelöscht. Wirkung: Auch die zugehörige Kategorie wird gelöscht, obwohl sie vielleicht im nächsten Arbeitsschritt (neues Produkt Pommes Frites - klein) wieder benötigt wird.

ER-Modelle

ER-Modelle (auch kurz ERM) stehen für Entity-Relationship-Modell. Ein ERM ist eine Anschauliche und leicht kommunizierbare Beschreibung der Daten Welt. Es ist Ergebnis der konzeptionellen Modellierung und Stellt ein Ausschnitt der Realität dar.

Das Entity-Relationship-Modell ist der Standard zur semantischen Datenmodellierung. Mit Hilfe des Modells kann wird u. a. der logische Aufbau einer Datenbank dargestellt. So wird es unterstützend zur Verständigung zwischen Anwendern und Entwicklern eingesetzt, um ein Projekt darzustellen

Ziele von ER-Modellen

  • Intigrität
  • Korrektheit
  • Generalisierung
  • Abstimmung mit dem Organisation Entwurf
  • Wirtschaftlichkeit
  • Redundanzarmut
  • Einfachheit
Entitäten

Eine Entität ist ein individuelles Objekt der realen oder Vorstellungswelt. Das eindeutig von anderen Objekten unterscheidbar ist.

Entität

Entitätstyp

Ein Entitätstyp repräsentiert eine Klasse von Entitäten mit gehen Attributen, aber unterschiedlichen Attributswerten.

Attribut

Ein Attribut beschreibt eine bestimmte Eigenschaft eines Entitätstyp. Es besitzt einen eindeutigen Namen.

Attribut

Attributswert

Ein Attributs Wert ist eine konkrete Ausprägung eines Attributs (einer Eigenschaft eine Entität)

Kardinalität

Die Kardinalität (Komplexitätsgrad) gibt an, wie viele Entitäten eines Entitätstypen mit einer Entität des anderen Entitätstypen in Beziehung stehen können.

Kardinalitäten

Caution

#todo Hier fehlt noch einiges

  • Arten von Kardinalitäten
  • Entitätssymbole:

Allgemeines

Phasen der Programmierung

  • Analysieren
  • Modellieren
  • Implementieren
  • Testen

Ziele der Programmierung

FEHLT!

Alogorithmen

Definition Algorithmus

Ein Algorithmus ist eine Arbeitsanleitung zum Lösen eines Problems bzw. einer Aufgabe, die so präzise formuliert ist, dass sie von einem Computer ausgeführt werden kann.

Eigenschaften von Algorithmen

  • Allgemeingültigkeit (Die Anweisungen besitzen Gültigkeit für die Lösung einer ganzen Problemklasse, nicht nur für ein Einzelproblem)
  • Ausführbarkeit (Die Anweisungen müssen verständlich formuliert sein für den Befehlsempfänger (Mensch oder Maschine) und für diesen ausführbar sein)
  • Eindeutigkeit (An jeder Stelle muss der Ablauf der Anweisungen eindeutig sein)
  • Endlichkeit /Terminiertheit (Nach endlich vielen Schritten liefert die Anweisungsfolge eine Lösung des gestellten Problems.)

Prinzipiell kann jeder Algorithmus auch durch einen Menschen ausgeführt werden. Computer haben gegenüber uns Menschen jedoch gewisse Vorteile:

  • Ihre hohe Rechengeschwindigkeit: Computer können heutzutage einige Millionen Rechenoperationen pro Sekunde ausführen.
  • Ihre große Zuverlässigkeit: Computer ermüden nicht und führen fehlerlos genau die Anweisungen durch, die ihnen der Mensch vorschreibt.
  • Ihre gewaltige Speicherfähigkeit: Computer können Milliarden Daten dauerhaft abspeichern und sie auch sehr schnell wiederfinden.

Programme

Als Programm wird ein in einer Programmiersprache formulierter Algorithmus bezeichnet. Die Formulierung von Programmen erfolgt in sehr konkreter und eingeschränkter Form:

  • Programme werden im exakt definierten und eindeutigen Formalismus einer Programmiersprache verfasst.
  • Daten, auf denen Programme operieren, unterliegen einer festgelegten Darstellungsform. Unter Programmieren versteht man also das Erstellen von Programmen.

Struktogramme

Struktogramme sind eine Möglichkeit, Algorithmen ${\textsf{\color{yellow}unabhängig von einer Programmiersprache}}$ aufzuschreiben. Sie werden nach ihren Entwicklern auch Nassi-Shneiderman-Diagramme genannt. In Deutschland sind dies sogar genormt nach DIN 66261.

Tip

Mehr infos zu Struktogrammen: Struktogramme Aufgerufen am: 24.06.2021 und überprüft am 22.04.2024

Operatoren

Arithmetische Operatoren

  • + Addition
  • - Subtraktion
  • * Multiplikation
  • / Division
  • // Ganzzahldivision
  • % Modulo
  • ** Potenz

Logische Operatoren

  • and logisches UND
  • or logisches ODER
  • not logisches NICHT
  • == Gleichheit
  • != Ungleichheit
  • < kleiner als
  • > größer als
  • <= kleiner gleich
  • >= größer gleich
  • in Mitgliedschaftsoperator
  • is Identitätsoperator
  • not in Negierter Mitgliedschaftsoperator
  • is not Negierter Identitätsoperator
  • & Bitweises UND
  • | Bitweises ODER
  • ^ Bitweises XOR
  • ~ Bitweises NICHT
  • << Linksshift
  • >> Rechtsshift
  • += Zuweisungsoperator

Variablen

Datentypen

ein_integer = 5
ein_float = -5.5
ein_anderes_float = 5.0
ein_string = "Hallo"
ein_boolean = True
ein_boolean = False
eine_leere_liste = []
eine_liste = ["Kiwis", "Äpfel", "Bananen"]
eine_liste_mit_verschiedenen_datentypen = [5, 5.5, "Hallo", True]

Diese Datentypen kann man mit type() überprüfen.

Beispiel:

print(type(5))
print(type(-5.5))
print(type(5.0))
print(type("Hallo"))
print(type(True))

Ausgabe: <class 'int'>; <class 'float'>; <class 'float'>; <class 'str'>; <class 'bool'>

Strings

Strings sind Zeichenketten. Ein Beispiel für einen String ist "Hallo". ein_string = "Hallo"

String-Methoden

  • .len() gibt die Länge des Strings zurück
    • "Hallo".len() gibt 5 zurück
  • .lower() gibt den String in Kleinbuchstaben zurück
    • "Hallo".lower() gibt "hallo" zurück
  • .upper() gibt den String in Großbuchstaben zurück
    • `"Hallo".upper() gibt "HALLO" zurück
  • .replace() ersetzt einen Teil des Strings durch einen anderen
    • "Hallo".replace("a", "e") gibt "Hello" zurück
  • .split() teilt den String anhand eines Trennzeichens in eine Liste auf
    • "Hallo".split("a") gibt ["H", "llo"] zurück
  • .join() fügt die Elemente einer Liste zu einem String zusammen
    • " ".join(["Hallo", "Welt"]) gibt "Hallo Welt" zurück

String Formatierung

angenommen name = "Max"

  • print(f"Mein Name ist {name}") gibt "Mein Name ist Max" zurück
  • print("Mein Name ist {}".format(name)) gibt "Mein Name ist Max" zurück
  • print("Mein Name ist " + name) gibt "Mein Name ist Max" zurück
  • print("Mein Name ist %s" % name) gibt "Mein Name ist Max" zurück
  • print("Mein Name ist {0}".format(name)) gibt "Mein Name ist Max" zurück

Integer

Integer sind ganze Zahlen. Sie können positive und negative Werte annehmen. Ein Integer hat keinen Nachkommawert. Ein Beispiel für einen Integer ist 5. ein_integer = 5

Floats

Floats sind Zahlen mit Nachkommawert. Ein Beispiel für einen Float ist 5.5. ein_float = 5.5

Boolean

Booleans sind Wahrheitswerte. Sie können entweder wahr oder falsch sein. Ein Beispiel für einen Boolean ist True oder False. ein_boolean = True oder ein_boolean = False

Listen

Listen sind eine geordnete Sammlung von Elementen. Ein Beispiel für eine Liste ist ["Kiwis", "Äpfel", "Bananen"]. Eine Liste kann Elemente von verschiedenen Datentypen enthalten. eine_liste = ["Kiwis", "Äpfel", "Bananen"] eine kann aber z.B. auch leer sein eine_leere_liste = []

Listen-Methoden

  • .append() fügt ein Element am Ende der Liste hinzu
    • eine_liste.append("Erdbeeren") fügt "Erdbeeren" am Ende der Liste hinzu
    • eine_liste gibt ["Kiwis", "Äpfel", "Bananen", "Erdbeeren"] zurück

Fehler

Bugs

Ein Bug ist ein Fehler im Programm, der dazu führt, dass das Programm nicht das tut, was es tun soll. Ein Beispiel für einen Bug ist, wenn ein Programmierer eine falsche Formel verwendet. Ein Bug kann auch durch eine falsche Eingabe des Benutzers entstehen. Ein Beispiel für einen Bug ist, wenn der Benutzer eine Buchstaben eingibt, obwohl eine Zahl erwartet wird.

Der Begriff "Bug" ist Englisch und bedeutet Käfer / Insekt und stammt aus der Zeit, als Computer noch mit Relais und Röhren gebaut wurden. Damals gab es tatsächlich Käfer, die in den Computer krochen und die Verbindungen störten. Dieser Begiff wird heute noch verwendet, obwohl es keine Käfer mehr gibt, die in Computer kriechen.

Syntaxfehler

In Python werden Sie einen Syntaxfehler schnell bemerken, wenn der Interpreter die nervige Meldung ‚syntax error‘ ausgibt. Syntaxfehler entsprechen grammatischen Fehlern in natürlichen Sprachen. Das heißt, Sie haben etwas eingetippt, das die Konventionen für die korrekte Schreibweise in Python verletzt. Zum Glück sind Syntaxfehler normalerweise leicht zu beheben. Finden Sie einfach die entsprechenden Codezeile und überprüfen Sie die Syntax noch einmal.

Laufzeitfehler

Laufzeitfehler treten auf, wenn Sie ein syntaktisch korrektes Programm geschrieben haben, aber Python beim Ausführen ein Problem findet. Ein Beispiel für einen Laufzeitfehler ist, irgendwo im Code versehentlich zu versuchen, eine Zahl durch null zu teilen (in allen Sprachen eine ungültige mathematische Operation). Um Laufzeitfehler zu beheben, sehen Sie sich die entsprechende Fehlermeldung an und gehen zu der Stelle in Ihrem Code, an der der Laufzeitfehler auftritt.

Symantische Fehler

Semantische Fehler werden auch als logische Fehler bezeichnet. Bei einem semantischen Fehler scheint Ihr Programm korrekt zu laufen. Der Interpreter beschwert sich weder über Syntaxfehler, noch gibt es Probleme zur Laufzeit. Trotzdem hat das Programm nicht das erwartete Ergebnis. Diese Fehler passieren immer, wenn Sie glauben, Ihrem Programm die richtigen Anweisungen gegeben zu haben, was dann aber nicht stimmt. Semantische Fehler sind oft am schwersten zu finden (oder zu »debuggen«).

Verzweigungen

(Denkt daran, dass die Einrückung in Python wichtig ist!)

if

if bedingung:
    anweisung

else

if bedingung:
    anweisung
else:
    anweisung

elif

if bedingung:
    anweisung
elif bedingung:
    anweisung
elif bedingung:
    anweisung
else:
    anweisung

beispiel:

punkte = input("Wie viele Notenpunkte hast du?")
if punkte > 5:
    print("Macher 🤝")
elif punkte < 5:
    print("Aua, der nächste Unterkurs ;(")
else:
    print("Das war knapp, gerade noch so bestanden!")

Schleifen

(Denkt daran, dass die Einrückung in Python wichtig ist!) Das passiert eigentlich nach dem : und dann Enter automatisch.

for

for element in liste:
    anweisung

Beispiele:

for i in range(5):
    print(i)

Ausgabe: 0, 1, 2, 3, 4

for i in range(5, 10):
    print(i)

Ausgabe: 5, 6, 7, 8, 9

for i in range(5, 10, 2):
    print(i)

Ausgabe: 5, 7, 9

while

while bedingung:
    anweisung

Beispiel:

i = 0
while i < 5:
    print(i)
    i += 1

Ausgabe: 0, 1, 2, 3, 4

random Modul

Das Random modul ermöglicht es z.B. zufällige Zahlen zu generieren oder zufällige Elemente aus einer Liste auszuwählen.

Dazu muss das Modul zuerst importiert werden:

import random

random.choice

random.choice(liste)

Beispiel:

import random
liste = ["Kiwis", "Äpfel", "Bananen"]
print(random.choice(liste))

Mögliche Ausgaben: "Kiwis" oder "Äpfel" oder "Bananen"

random.randint

random.randint(start, end)

Beispiel:

import random
print(random.randint(1, 10))

Mögliche Ausgaben: 1 oder 2 oder 3 oder 4 oder 5 oder 6 oder 7 oder 8 oder 9 oder 10

random.shuffle

liste = ["Kiwis", "Äpfel", "Bananen"]
random.shuffle(liste)

Mögliche Ausgabe z.B: ["Äpfel", "Bananen", "Kiwis"] oder andere zufällige Reihenfolge

Warning

Leute, auch ich kann Fehler machen, es kann sein, dass sich Fehler eingeschlichen haben. Lasst es mich dann bitte unbedingt wissen. Ich korrigiere die dann.

@Max-42
Copy link
Author

Max-42 commented Feb 22, 2024

Leute, auch ich kann Fehler machen, es kann sein, dass sich Fehler eingeschlichen haben.
Lasst es mich dann bitte unbedingt wissen. Ich korrigiere die dann.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment