Grundlagen der Informatik und objektorientierten Programmierung
Gesendet von Anonym und eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 4,42 KB
1. Einführung in die Informatik
Computer: Eine Zusammenstellung wissenschaftlicher Erkenntnisse, Techniken und Technologien, die die automatisierte Datenverarbeitung ermöglichen.
Computer-System: Ein System zur Informationsverarbeitung, bestehend aus zusammenhängenden Einheiten: Hardware (Prozessor), Software (Programme) und Peopleware (Anwender).
2. Programmieren und Sprachen
Software: Ein Satz von Anweisungen, die dem Computer präzise vorgeben, was zu tun ist. Programme besitzen keine Intelligenz, Initiative, Phantasie oder Erfindungsgabe.
Modell: Eine Vereinfachung der Realität, die es ermöglicht, überflüssige Details zu abstrahieren und sich auf das Wesentliche zu konzentrieren.
Programmiersprachen
Klassifizierung nach Abstraktionsebene:
- Maschinensprache
- Assembler-Code
- High-Level-Sprachen (z. B. C, C++)
- 4G-Sprachen (z. B. SQL)
- Komponentenbasierte Sprachen (z. B. NesC)
- Modellierungssprachen
Klassifizierung nach Programmierstil:
- Deklarativ (z. B. Prolog, Lisp)
- Imperativ (z. B. C, Java, C++)
Syntax: Die Regeln, wie man Code schreibt. Semantik: Die Bedeutung des geschriebenen Codes.
Fehlerarten
- Kompilierungsfehler: Syntaxfehler, die vom Compiler erkannt werden.
- Laufzeitfehler: Fehler, die während der Ausführung auftreten.
3. Algorithmen und Software Engineering
Algorithmus: Ein präzises Rezept zur Lösung eines Problems. Die Effizienz eines Algorithmus wird durch seine Komplexität gemessen.
Software Engineering: Grundlagen und Techniken für die professionelle Softwareentwicklung, unterteilt in:
- Analyse: Erfassung funktionaler und nicht-funktionaler Anforderungen.
- Design: Erstellung von Entwürfen.
- Durchführung: Codierung des Designs.
- Tests (V&V): Validierung und Verifizierung.
- Wartung: Erweiterungen, Fehlerbehebung und regelmäßige Prüfungen.
4. Strukturierte Programmierung
Grundlagen:
- Ein Programm ist eine Abfolge von Anweisungen.
- Stacking-Prinzip: Aktionen können durch Sequenzen ersetzt werden.
- Schachtelungsprinzip: Verwendung von Kontrollstrukturen (Sequenz, Selektion/Gabelung, Iteration/Wiederholung).
5. Modulare Programmierung und Java
Das Prinzip „Teile und herrsche“ ermöglicht:
- Algorithmische Kapselung: Module als wiederverwendbare Einheiten.
- Prozedurale Abstraktion: Module als „Black Boxes“ zur Reduzierung von Code-Duplikaten.
Methoden in Java
- Statische Methoden: Gehören zur Klasse, kein Objekt erforderlich.
- Nicht-statische Methoden: Erfordern ein Objekt (Instanz).
- Überladung: Mehrere Methoden mit gleichem Namen, aber unterschiedlicher Signatur (Anzahl/Typ der Parameter).
6. Rekursion vs. Iteration
Rekursion ist ein Prozess, der sich selbst aufruft. Jede rekursive Lösung kann durch eine iterative Lösung ersetzt werden, jedoch nicht immer umgekehrt. Backtracking nutzt rekursive Ansätze zur systematischen Suche.
Theorie des 2. Semesters: Objektorientierung
Kapselung: Daten und Methoden werden in Klassen gebündelt und als „Black Boxes“ behandelt.
Wichtige Konzepte:
- Interface: Sammlung von Konstanten und abstrakten Methoden.
- Vererbung (Is-a): Beziehung zwischen Ober- und Unterklasse.
- Assoziation: Eine Klasse enthält Objekte einer anderen Klasse.
- Polymorphismus: Die Fähigkeit, Referenzen auf Objekte verschiedener Klassen im Rahmen der Vererbung zu nutzen.
- Exceptions: Behandlung von Fehlern (Checked vs. Unchecked).
- Frameworks: Wiederverwendbare Infrastrukturen mit definierten „Hot Spots“.
- Binäre Bäume: Datenstrukturen mit einem Wurzelknoten und maximal zwei Nachfolgern pro Knoten.