slides
1. Einführung in die Informatik
Vorlesung von Prof. Dr. Alexander Pretschner an der TUM in Software & Systems Engineering
Zeitraum: WS 2024/2025
2. Überblick über die Vorlesung
Basierend auf Vorlesungen von Prof. Seidl (TUM) und Prof. Pretschner (KIT).
Inhalt:
Grundkonzepte der Informatik
Denkweisen der Informatik
Programmieren in Java
3. Hauptteile der Vorlesung
3.1 Einführung
3.2 Objektbasierte Programmierung
3.3 Testen
4. Funktionen und Algorithmen
Funktion: Abbildung einer Menge von Eingabedaten (E) auf Ausgabedaten (A).
Algorithmus: Verfahren zur Berechnung einer Funktion. Beispiel:
Euklidischer Algorithmus zur Berechnung des größten gemeinsamen Teilers (ggT).
5. Programmieren
Implementierung von Datenbeschreibungen und Algorithmen in einer Programmiersprache (z.B. Java).
6. Berechenbarkeit
Nicht jede Abbildung kann durch einen Algorithmus realisiert werden.
Beispiel Alltagsalgorithmen wie Strickmuster oder Rezepte.
7. Beispiele aus der Programmierung
7.1 Euklidischer Algorithmus
Definition, Schritte des Algorithmus:
Überprüfe, ob a = b; ggT ist a.
Wenn a > b, ersetze a durch a - b und wiederhole.
Ansonsten ersetze b durch b - a und wiederhole.
7.2 Programme
Ein Programm formuliert einen Algorithmus in einer Programmiersprache zur maschinellen Ausführung.
Beispiele von Programmiersprachen: Java, C, Python, etc.
8. Objektbasiertes Programmieren
Objekte: Grundbausteine der Programmierung, die Daten (Attribute) und Verhalten (Methoden) zusammenfassen.
Klasse: Bauplan für Objekte, der Attribute und Methoden definiert.
Instanz: Konkretes Objekt einer Klasse, z.B.
Buchin einer Bibliothek.
9. Attribute und Methoden
Attribute repräsentieren Eigenschaften, z.B. Autor und Titel eines Buches.
Methoden definieren, was mit den Objekten gemacht werden kann, z.B. ‚ausleihen‘ oder ‚zurückgeben‘.
10. Konstruktoren
Spezialmethoden zur Initialisierung eines Objekts.
Konstruktoren tragen den gleichen Namen wie die Klasse und haben keinen Rückgabetyp.
11. Referenzen und Dereferenzierung
Referenzen sind das Bindeglied zwischen der Variablen und dem tatsächlichen Objekt.
Beispiel:
Point p = new Point();erstellt einen neuen Point.
12. Vergleich von Objekten
12.1 Gleichheit
==prüft, ob zwei Referenzen auf dasselbe Objekt zeigen.equalssollte überladen werden, um auf Attributgleiche zu testen.
13. Lokale und Instanzvariablen
Lokale Variablen: Existieren nur innerhalb ihrer Methode und werden im Stack gespeichert.
Instanzvariablen: Dienen zur Speicherung des Zustands eines Objekts.
14. Überladen von Methoden
Methoden gleichen Namens können verschiedene Parameter haben (Typ oder Anzahl).
15. Überprüfung von Programmen
Testing ist entscheidend, um festzustellen, ob ein Programm das tut, was es soll.
16. Testmethoden
16.1 Auswahl von Testfällen
Ziel ist es, Eingabewerte zu finden, die verschiedene Anforderungen und Hypothesen abdecken.
Nutzung von Äquivalenzklassen: Gruppierung ähnlicher Eingaben, die zu ähnlichem Verhalten führen.
16.2 Testausführung
Testfälle werden erstellt und überprüft, indem das Programm mit verschiedenen Eingaben getestet wird.
17. Fazit
Die Vorlesung bietet eine umfassende Einführung in die grundlegenden Konzepte der Informatik, insbesondere in die objektbasierte Programmierung und das Testen von Software.