Fundamentals of Computer Science Study Guide
Begriff und Definitionen
Definition der Informatik: Die Informatik ist die Wissenschaft von der systematischen Darstellung, Speicherung, Verarbeitung und Übertragung von Informationen, wobei in der Regel die automatische Verarbeitung mit Computern betrachtet wird.
Kernbereiche: Die Informatik liefert das grundlegende Verständnis für Computer, Apps, das Internet, künstliche Intelligenz (KI), Hacking, Algorithmen, Videospiele, Kryptowährungen und digitale Logik.
Unterscheidung zentraler Begriffe:
Informationstechnik (IT) / Elektronische Datenverarbeitung (EDV): Bezeichnet die gesamte Computer-Infrastruktur innerhalb einer Organisation. Zum Beispiel umfasst die IT an der KZU alle Computer, Netzwerkgeräte, Webseiten, Anwendungen und das IT-Fachpersonal.
Information and Communications Technology (ICT): Konzentriert sich auf die Vermittlung der praktischen Anwendung und Nutzung von Computer-Software und -Hardware (z. B. Nutzung von Office-Anwendungen, Grafikbearbeitung, Tastaturschreiben). ICT repräsentiert die praktische Anwendung, während sich die Informatik auf das grundlegende theoretische und technische Verständnis konzentriert.
Computer Science: Der englische Begriff für Informatik.
Geschichte der Informatik
Menschliche Computer: Ursprünglich beschrieb das Wort „Computer“ menschliche Rechner, die vor der Erfindung elektronischer Rechner komplexe mathematische Berechnungen manuell als Beruf ausführten.
Das EVA(S)-Prinzip
Eingabe-Verarbeitung-Ausgabe-(Speicher): Die Datenverarbeitung in jedem Computer folgt strikt einem dreistufigen Ablauf, der durch einen Speicher unterstützt wird:
Eingabe (Input): Empfang externer Rohdaten in das System.
Verarbeitung (Processing): Ausführung von Rechenoperationen auf den Daten.
Ausgabe (Output): Senden oder Darstellen der Rechenergebnisse.
Speicher (Storage): Konsultieren oder Beschreiben des Datenspeichers während der Verarbeitungsschritte.
Grundlegende Hardware-Komponenten
Stromversorgung:
Versorgt alle internen Komponenten mit elektrischer Energie.
Verwendet wiederaufladbare Batterien (Akku) in mobilen Geräten und Netzteile in stationären Systemen.
Hauptprozessor (CPU / Central Processing Unit):
Das zentrale Rechenwerk („Kernstück“) des Computers.
Koordiniert alle mathematischen und logischen Berechnungen, führt Befehle direkt aus oder steuert andere Hardware-Komponenten.
Leistungsbestimmende Faktoren:
Prozessorkerne: Einzelne Verarbeitungseinheiten, die parallel innerhalb einer einzigen CPU arbeiten. Eine 8-Kern-CPU kann bis zu 8-mal schneller arbeiten als eine Einzelkern-CPU.
Taktfrequenz: Gibt die Geschwindigkeit der Befehlsausführung an. Eine CPU mit einer Taktfrequenz von verarbeitet Befehle pro Kern und Sekunde.
Hauptplatine (Motherboard / Mainboard):
Die primäre physische Leiterplatte, auf der die CPU und sekundäre Komponenten installiert sind.
Stellt Hochgeschwindigkeitsbusse und physische Verbindungen zwischen CPU, RAM, Speicher und externen Eingabe-/Ausgabegeräten bereit.
Arbeitsspeicher (RAM / Random Access Memory):
Das temporäre Kurzzeitgedächtnis des Computers.
Hält aktive Programmanweisungen und unmittelbar benötigte Datensätze bereit.
Bietet einen gleichmäßigen, extrem schnellen Lese-/Schreibzugriff unabhängig von der Sequenz der Speicherorte.
Flüchtiger Speicher: Funktioniert nur bei aktiver Stromversorgung; alle Daten gehen sofort verloren, wenn die Stromzufuhr unterbrochen wird.
Permanenter Speicher:
Das nicht-flüchtige Langzeitgedächtnis des Computers.
Behält gespeicherte Dateien, Anwendungen und Betriebssystemdaten auch ohne Stromversorgung bei.
Arbeitet deutlich langsamer als der RAM, bietet jedoch eine riesige Speicherkapazität zu wesentlich geringeren Kosten pro Byte.
Historisch durch Festplattenlaufwerke (HDD mit rotierenden Magnetplatten) realisiert; moderne Geräte verwenden Solid-State-Drives (SSD).
Mooresches Gesetz (Moore's Law): Beschreibt den historischen Trend des exponentiellen Wachstums der Transistordichte und Rechenkapazität in den letzten Jahrzehnten.
Sekundäre Hardware-Komponenten
Grafikprozessor (GPU / Graphics Processing Unit):
Hochspezialisierter Prozessor, der für mathematische Operationen optimiert ist, die für das Rendering von Computergrafiken (3D-Simulationen, Spiele) erforderlich sind.
Die Architektur besteht aus Tausenden kleiner, unabhängiger Prozessorkerne (), die gleichzeitig parallel arbeiten.
Übertrifft CPUs bei massiv parallelen Rechenaufgaben wie dem Training von Modellen der Künstlichen Intelligenz (KI) und dem Mining von Kryptowährungen bei Weitem.
Netzwerkanbindung:
Ermöglicht Netzwerkkommunikation und die Übertragung/Empfang von Internetdaten.
Häufig über drahtlose WLAN-/Wi-Fi-Module integriert; hocheffiziente oder sichere Umgebungen (Serverräume) nutzen physische Ethernet-Verkabelungen.
Wechseldatenträger:
Externe Medien, die spezifische Laufwerke oder Steckplätze erfordern: SD-Karten, optische Disks (CDs, DVDs, Blu-rays).
Magnetbänder (früher in Tonkassetten verwendet) werden in Unternehmensrechenzentren aufgrund ihrer extremen physischen Langlebigkeit zur Langzeitarchivierung weiterhin eingesetzt.
Einplatinencomputer wie der Raspberry Pi lassen diese einzelnen strukturellen Komponenten für Bildungszwecke offen sichtbar.
Software-Architektur
Natur und Klassifizierung von Software
Software-Definition: Nicht-physische Befehlssätze, die auf Hardware (z. B. SSD) gespeichert sind und den Hardware-Komponenten Anweisungen für den Betrieb geben.
Primäre Kategorien:
Anwendungssoftware (Applikationen / Anwendungsprogramme): Programme zur Ausführung spezifischer Benutzeraufgaben (Webbrowser, E-Mail-Clients, Office-Suites, Videoplayer, Spiele).
Betriebssystem (Operating System).
Programmiersprachen vs. natürliche Sprachen
Ungeeignetheit natürlicher Sprache: Gesprochene menschliche Sprachen (z. B. Deutsch, Englisch) sind von Natur aus zweideutig, kontextabhängig und unpräzise.
Demonstration von Zweideutigkeit:
Befehl in natürlicher Sprache: „Schreibe eine Funktion, die 1 zu jeder Zahl in einer Liste addiert und das Ergebnis ausgibt.“
Inhärente Zweideutigkeiten:
Was definiert „eine Liste“? Handelt es sich um einen übergebenen Eingabeparameter oder um Text in der Benutzeroberfläche?
Was bedeutet „jede Zahl“? Sind negative Werte oder Dezimalzahlen enthalten? Was passiert, wenn nicht-numerische Zeichenketten vorkommen?
Was definiert „das Ergebnis“? Soll das Ausgabeformat
1 2 3 4oder[1, 2, 3, 4]sein?Wohin soll die Ausgabe erfolgen? Im Code zurückgegeben, auf der Benutzeroberfläche gedruckt oder auf der Festplatte gespeichert?
Präzision von Programmiersprachen: Höhere Programmiersprachen liefern exakte, eindeutige Ausführungsanweisungen.
def funktion(numbers):
return [x + 1 for x in numbers]
Programmiersprachen sind strikt so konzipiert, dass jedes syntaktisch gültige Programm genau eine Interpretation für die Ausführung hat.
Sprachabstraktionsebenen
Höhere Sprachen (High-Level): Sprachen, die auf menschliche Lesbarkeit und Entwicklereffizienz ausgerichtet sind (z. B. Python, Java). Sie abstrahieren von Hardware-Management-Details, was zu etwas langsameren Ausführungsgeschwindigkeiten führt.
Niedere Sprachen (Low-Level): Sprachen, die eng an der physischen Hardwarearchitektur ausgerichtet sind (z. B. C, C++, Rust). Sie bieten geringen Overhead und maximale Ausführungsgeschwindigkeit, erfordern jedoch manuelles Speicher- und Hardwaremanagement.
Beispiel für eine Übersetzungshierarchie (Werte tauschen
swap(x, y)):Höhere Funktion:
swap(x, y)Algorithmitische Abstraktion:
text temp = x x = y y = tempAssemblersprache (Assembly):
assembly mov rax, [rdi] mov rbx, [rsi] mov [rdi], rbx mov [rsi], raxMaschinencode (Hexadezimale Darstellung von Binärcode):
text 48 8B 07 48 8B 1E 48 89 1F 48 89 07 C3
Betriebssysteme (OS)
Die zentrale Systemsoftware, die für die Hardwaresteuerung und die Anwendungsausführung verantwortlich ist.
Drei Kernfunktionen:
Hardware-Brücke / Abstraktionsschicht: Standardisiert Hardware-Schnittstellen (Tastatur, Touchscreen, Netzwerk) über verschiedene Hardware-Konfigurationen hinweg, sodass Software nicht für jede physische Komponente angepasst werden muss.
Anwendungsmanager / Schiedsrichter: Verwaltet Multitasking, teilt CPU-/RAM-Ressourcen fair auf, verhindert Gesamtsystemabstürze bei Anwendungsfehlern und setzt Security-Sandboxing zum Schutz privater Daten durch.
Benutzeroberfläche (UI): Rendert grafische Benutzeroberflächen (GUI) für die menschliche Interaktion.
Gängige Plattformen:
Mobil: iOS, Android.
Desktop/Laptop: Windows, macOS, Linux (z. B. Ubuntu, Debian).
Webserver: Enterprise-Linux-Distributionen.
Zahlensysteme
Systemklassifizierungen und Notation
Dezimalsystem (Zehnersystem): Basis-10-System unter Verwendung der Ziffern . Historisch vom Zählen an zehn menschlichen Fingern abgeleitet.
Historische Systeme: Römische Zahlen (); Das Basis-8-System der indigenen Yuki (Zählen der acht physischen Zwischenräume zwischen den Fingern).
Explizite Indexnotation (Definition 2.1): Verhindert numerische Zweideutigkeiten zwischen verschiedenen Basen:
stellt die Zahl Zwei im Binärsystem dar.
stellt die Zahl Zehn im Dezimalsystem dar.
stellt die Zahl Einundzwanzig im Hexadezimalsystem dar.
Das Binärsystem (Zweiersystem)
Positionelles Zahlensystem zur Basis 2 unter Verwendung der Ziffern und . Spiegelt die binären Zustände des elektrischen Stroms (EIN/AUS) wider.
Stellenwerte steigen als aufsteigende Zweierpotenzen ():
Zähläquivalenz zwischen Binär- und Dezimalsystem:
Binär
Dezimal
Beispiele für die Stellenwertentwicklung:
Dezimal ():
Binär ():
Umrechnungsalgorithmen
Binär zu Dezimal: Summation der Stellenwerte, bei denen die Ziffer ist.
Dezimal zu Binär (Variante A: Divisionsmethode):
Dividiere die Dezimalzahl durch 2.
Notiere den ganzzahligen Quotienten und den Rest ( oder ).
Wiederhole die Division mit dem verbleibenden Quotienten, bis 0 erreicht ist.
Lies die Reste von unten nach oben ab, um die Binärzahl zu bilden.
Beispiel (Umrechnung von in Binär):
Das Ablesen von unten nach oben ergibt
Dezimal zu Binär (Variante B: Subtraktions- / Potenzmethode):
Bestimme die größte Zweierpotenz, die in der Dezimalzahl enthalten ist.
Subtrahiere diesen Potenzwert und notiere die binäre Ziffer .
Prüfe jede nachfolgende absteigende Zweierpotenz:
Passt die Potenz in den verbleibenden Wert: Subtrahiere den Potenzwert und notiere .
Übersteigt die Potenz den verbleibenden Wert: Notiere .
Fahre fort bis
Beispiel (Umrechnung von in Binär):
Potenz subtrahiere 16 (Rest 3), notiere
Potenz notiere
Potenz notiere
Potenz subtrahiere 2 (Rest 1), notiere
Potenz subtrahiere 1 (Rest 0), notiere
Das Ergebnis lautet
Binäre Arithmetik
Schriftliche Addition: Funktioniert nach denselben spaltenweisen Übertragsregeln wie die dezimale Addition.
Beispiel ():
\begin{array}{rccccc} & 1 & 0 & 0 & 12 & (9{10}) \ + & 1 & 1 & 0 & 12 & (13{10}) \ \text{Überträge:} & 1 & 1 & 0 & 1 & \ \hline = & 1 & 0 & 1 & 1 & 02 & (22{10}) \end{array}
Bitverschiebungen (Bit Shifts):
Multiplikation von Binärzahlen mit Zweierpotenzen () verschiebt die Ziffern nach links und hängt Nullen an:
Ganzzahlige Division durch Zweierpotenzen verschiebt die Ziffern nach rechts:
Hexadezimalsystem (Sechzehnersystem)
Basis-16-Zahlensystem mit 16 verschiedenen Ziffernsymbolen: .
Werte:
Byte-Ausrichtung: Zwei Hexadezimalziffern repräsentieren genau ein Byte ().
Zuordnungstabelle für die direkte Umrechnung von Hexadezimal in Binär:
Hexadezimal
Binär
Dezimal
Berechnungen zur Hexadezimalumrechnung:
Hexadezimal zu Dezimal ():
Hexadezimal zu Binär durch direkte Substitution ():
Ersetze jede Hex-Ziffer durch die entsprechende 4-Bit-Binärfolge:
Ergebnis:
Logik und digitale Schaltungen
Aussagenlogik
Logische Aussagen nehmen entweder den Wert Wahr () oder Falsch () an.
Physische Zuordnung: Logische Wahr-/Falsch-Werte korrelieren direkt mit physischen Schalterzuständen (EIN = , AUS = ).
Schaltungen und Wahrheitstabellen
Definition 3.1 (Digitale Schaltung): Eine Schaltungsstruktur mit binären Eingangs- und Ausgangsanschlüssen, die die Werte oder akzeptiert, um eine festgelegte logische Operation auszuführen.
Wahrheitstabelle: Tabellarische Auflistung, die die Ausgangswerte für alle möglichen Eingangskombinationen definiert.
Beispiel 3.2 (Lichtschaltung mit zwei Schaltern):
Zwei Eingangsschalter und steuern eine Lampe . Die Lampe leuchtet, wenn mindestens ein Schalter eingeschaltet ist ().
Wahrheitstabelle:
| A | B | L |
| :---: | :---: | :---: |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Physische Schalt-Hardware
Regeln für den elektrischen Stromfluss:
Strom fließt vom positiven () zum negativen () Pol.
Strom benötigt durchgehende leitfähige Materialien (z. B. Kupfer). Eine physische Unterbrechung stoppt den Stromfluss.
Relais:
Elektromechanischer Schalter, der durch eine elektromagnetische Spule betätigt wird.
Verwendet einen Steuerstrom (), um einen separaten Hochleistungs-Laststrompfad () zu öffnen oder zu schließen.
Schaltungsrückkopplung und Speicher
Definition 3.2 (Rückkopplung / Feedback): Das Zurückführen des Ausgangssignals einer Schaltung in einen ihrer Eingangsanschlüsse.
Funktion: Ermöglicht es Schaltungen, den historischen Zustand beizubehalten (Datenspeicherung) und programmierbare Logiksysteme zu konstruieren.
Beispiel Einbruchalarm: Die Kombination eines Bewegungsmelders und einer Sirene über ein OR-Gatter mit Ausgangsrückkopplung garantiert, dass das OR-Gatter nach dem Auslösen dauerhaft den Wert speichert und die Sirene eingeschaltet bleibt, selbst wenn der Bewegungsmelder wieder auf zurückfällt.