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:

  1. Ein Programm ist eine Abfolge von Anweisungen.
  2. Stacking-Prinzip: Aktionen können durch Sequenzen ersetzt werden.
  3. 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.

Verwandte Einträge: