Skip to main content

2023 | Buch

Vorkurs Informatik

Der Einstieg ins Informatikstudium

insite
SUCHEN

Über dieses Buch

Ausgehend von Beispielen vermittelt dieses Lehrbuch grundlegende Paradigmen der Informatik. Die Schwerpunkte liegen auf dem Algorithmenbegriff, einer Einführung in die Programmierung auf Grundlage der Programmiersprache Java und objektorientierten Konzepten. Ferner führt das Buch an die Aufwandsanalyse von Algorithmen und die Funktionsweise von Rechnern heran.

Die 5. Auflage enthält ein neues Kapitel, das erweiterten Programmierkonzepten gewidmet ist. Es geht auf Klassenbibliotheken und die Graphikprogrammierung ein, erklärt die Strukturierung von Programmiersprachen sowie die modellgestützte Softwareentwicklung anhand von UML und gibt ausgehend von den vermittelten Java-Kenntnissen eine Einführung in die Programmiersprache C++.

So gelingt der Einstieg in das Informatikstudium!

Inhaltsverzeichnis

Frontmatter
Kapitel 1. Einleitung
Zusammenfassung
Das Ziel dieses Buches ist es, eine Grundbildung in Informatik zu vermitteln, die den Einstieg in das Studium der Informatik und benachbarter Fächer erleichtern soll. Es wendet sich vor allem an Leserinnen und Leser, die keinen durchgängigen Informatikunterricht an der Schule haben oder hatten. Aber auch für diejenigen, die schon gute Kenntnisse der Informatik haben, sind Kapitel enthalten, die fortgeschrittenere Themen aufgreifen.
Heinrich Müller, Frank Weichert

Was ist Informatik?

Frontmatter
Kapitel 2. Informatik
Zusammenfassung
Eine Möglichkeit, sich dem Begriff Informatik zu nähern, sind typische Ausdrücke, die mit Informatik zu tun haben: Information, Informationssysteme, Computer, EDV, Rechner, Programmierung, Software, Hardware, Internet, Textverarbeitung, Computerspiele. Betrachtet man diese Begriffe, so stellt man fest, dass „Information“ und „Computer“ eine wesentliche Rolle spielen. In der Literatur sind verschiedene Definitionen von Informatik zu finden, beispielsweise die folgenden.
Heinrich Müller, Frank Weichert

Programmierung

Frontmatter
Kapitel 3. Vom Problem über den Algorithmus zum Programm
Zusammenfassung
Computer sind heute praktisch überall zu finden. Entsprechend groß ist die Vielzahl der Problemstellungen, mit denen man bei der Entwicklung von Programmen und Software-Systemen konfrontiert ist. Viele Problemstellungen erscheinen auf den ersten Blick recht weit von dem entfernt, was von Rechnern zu bewältigen ist, oder scheinen von sehr unterschiedlicher Natur zu sein.
Heinrich Müller, Frank Weichert
Kapitel 4. Algorithmenentwurf
Zusammenfassung
Dieses Kapitel führt in Grundkonzepte zur Formulierung von Algorithmen ein. Abschnitt 3.1 präsentiert einen Algorithmus für das Problem der Suche nach dem kleinstenWert in einer endlichen Menge von Zahlen, der solche Grundkonzepte exemplarisch verwendet. Seine Funktionsweise wird an einem Beispiel verdeutlicht.
Heinrich Müller, Frank Weichert
Kapitel 5. Grundkonzepte der Programmierung
Zusammenfassung
Nach der Einführung in den Algorithmenentwurf des vorigen Kapitels befassen wir uns nun mit der Überführung von Algorithmen in Programme, die auf Computern ausführbar sind. Zur Formulierung von Programmen verwenden wir Elemente der Programmiersprache Java.
Heinrich Müller, Frank Weichert
Kapitel 6. Funktionen
Zusammenfassung
Dieses Kapitel erweitert die uns bisher bekannten Möglichkeiten des Algorithmenentwurfs und der Programmierung um ein weiteres Konzept: die Funktionen. Wir demonstrieren zunächst die Nützlichkeit von Funktionen an Algorithmen zum Sortieren einer endlichen Menge von Zahlen.
Heinrich Müller, Frank Weichert
Kapitel 7. Rekursion
Zusammenfassung
Rekursion ermöglicht es, Algorithmen für viele Probleme besonders kurz und elegant zu formulieren, indem der Algorithmus, angewendet auf reduzierte Problemversionen, sich wieder selbst verwendet. Abschnitt 6.1 führt das Prinzip der Rekursion anhand eines weiteren Algorithmus zum Sortieren einer Folge von Zahlen, dem Sortieren durch Mischen, ein. Abschnitt 6.1.2 zeigt, wie dieser Algorithmus als Java-Programm unter Verwendung von Funktionen realisiert warden kann.
Heinrich Müller, Frank Weichert
Kapitel 8. Klassen und Objekte
Zusammenfassung
Wie wir bereits wissen, bezeichnet ein Datentyp eine Menge von Daten gleicher Art. Beispiele sind die ganzen Zahlen, reelle Zahlen, Wahrheitswerte oder Zeichenketten. Diese Datentypen sind für den Einsatz eines Computers als „Rechenmaschine“ ausreichend.
Heinrich Müller, Frank Weichert

Erweiterte Programmierkonzepte

Frontmatter
Kapitel 9. Strukturierung von Programmiersprachen
Zusammenfassung
In den vorangegangenen Kapiteln haben wir im Wesentlichen zwei Konzepte zur Lösung von Problemen beschrieben: den algorithmischen Ansatz und den objektorientierten Ansatz. Beide Konzepte beschreiben eine Vorgehensweise zur Problemlösung. Im Zentrum der praktischen Umsetzungen stand dabei die Programmiersprache Java.
Heinrich Müller, Frank Weichert
Kapitel 10. Objektorientierte Programmierung
Zusammenfassung
Im vorhergehenden Kapitel haben wir die Abbildung vom algorithmischen und objektorientierten Ansätzen innerhalb von Programmiersprachen besprochen. Kapitel 7 begründete zudem die Relevanz des Konzeptes der Klassen und Objekte im Wesentlichen dadurch, dass es durch sie möglich wird, zusammengesetzte Datentypen und Datenstrukturen zu deklarieren und zu verwenden. Diese Datentypen erlauben es, Daten in intuitiverer Weise zu speichern und zu handhaben, als es die primitiven Datentypen vermögen.
Heinrich Müller, Frank Weichert
Kapitel 11. Klassenbibliotheken
Zusammenfassung
Die Effizienz von Programmiersprachen zur Lösung von Problemen ist insbesondere durch die Verfügbarkeit von Programmstücken zur Lösung immer wieder auftretender Aufgaben bestimmt. Zur Verwaltung und Verwendung existierender Programmstücke bieten manche Programmiersprachen Mechanismen zur Organisation von Programmpaketen an. Abschnitt 10.1 führt in das Konzept der „Packages“ von Java ein, die diesem Zweck dienen.
Heinrich Müller, Frank Weichert
Kapitel 12. Grafikprogrammierung mit Swing
Zusammenfassung
Für die Nutzung von Computern hat die Verwendung von Grafik hohe Bedeutung erlangt. Es existieren Programmpakete, die eine effiziente Realisierung von grafischen Benutzungsschnittstellen von Programmen ermöglichen. Dieses Kapitel demonstriert Möglichkeiten solcher Programmpakete anhand des Java-Pakets Swing.
Heinrich Müller, Frank Weichert
Kapitel 13. Programmieren in C++
Zusammenfassung
Das folgende Kapitel beschreibt, ausgehend von den Kenntnissen der vorhergehenden Ausführungen des Buches und den damit vermittelten Grundlagen zur Programmierung in Java die Grundkonzepte der Programmiersprache C++. Dabei soll weniger der Anspruch an einen C++- Kurs erhoben werden, es soll vielmehr aufgezeigt werden, mit welchen Mechanismen die allgemeinen Grundlagen des Buches auch auf andere Programmiersprachen überführt werden können.
Heinrich Müller, Frank Weichert
Kapitel 14. Programmieren in Python
Zusammenfassung
Das vorliegende Kapitel beschreibt einleitend die Grundlagen der Programmiersprache Python. Dabei besteht nicht der Anspruch, eine umfassende und vollständige Einführung die Konzepte von Python zu vermitteln. Sie sollen vielmehr in die Lage versetzt werden, die im Buch gewonnenen Erkenntnisse, welche an der Programmiersprache Java vermittelt wurden, auch mit der Programmiersprache Python umsetzen zu können.
Heinrich Müller, Frank Weichert
Kapitel 15. Modellgestützte Softwareentwicklung
Zusammenfassung
Dieses Kapitel beschreibt mit der Unified Modeling Language (UML) eine generalisierte, von den bisher besprochenen Programmiersprachen Java und C++ unabhängige Herangehensweise zur Entwicklung von Algorithmen – allgemein zur objektorientierten, grafischen Modellierung eines Anwendungsszenarios. Über die damit zur Verfügung stehenden grafischen Repräsentationsformen (Diagramme) werden prinzipiell alle Phasen des Software-Engineerings unterstützt. Dabei vermitteln die Ausführungen in diesem Kapitel aber mit Absicht keine umfassende Darstellung zum Software-Engineering oder zur Softwaretechnik.
Heinrich Müller, Frank Weichert

Algorithmen und Datenstrukturen

Frontmatter
Kapitel 16. Asymptotische Aufwandsanalyse
Zusammenfassung
Wir haben uns bisher auf die Problemlösung konzentriert, d.h. zu einem gestellten Problem überhaupt ein Programm zu finden. In vielen Anwendungen ist es jedoch wichtig, dass das resultierende Programm beziehungsweise der zugrunde liegende Algorithmus effizient ist. Zur Beurteilung der Effizienz gibt es verschiedene Kriterien, wie zum Beispiel die Ausführungszeit des Programms oder der Bedarf an Speicher.
Heinrich Müller, Frank Weichert
Kapitel 17. Sortieren
Zusammenfassung
Das Sortieren großer Datenbestände ist eine wichtige Aufgabe kommerziell eingesetzter Rechensysteme. Daher hat das Auffinden effizienter Lösungen des Sortierproblems in der Informatik großes Interesse gefunden. In diesem Kapitel wollen wir uns mit der Aufwandsanalyse von Algorithmen zum Sortieren von Zahlen befassen, um die Anwendung der Konzepte des vorigen Kapitels zu demonstrieren.
Heinrich Müller, Frank Weichert
Kapitel 18. Mengen
Zusammenfassung
Ein weiteres wichtiges Einsatzgebiet von Computern ist das Verwalten von Datenmengen. Dieses Kapitel stellt verschiedene Lösungsansätze für diese Aufgabe vor. Sie unterscheiden sich in der Art der Datenstrukturen, die der Realisierung der drei Operationen „Einfügen eines Elements“, „Suchen nach einem Element“ und „Entfernen eines Elements“ zugrunde liegen.
Heinrich Müller, Frank Weichert

Vom Programm zum Rechner

Frontmatter
Kapitel 19. Hardware und Programmierung
Zusammenfassung
Eine Möglichkeit zur Beherrschung der Komplexität von Systemen wie der Software und der Hardware eines Computers ist, Stufen unterschiedlichen Details einzuführen und dann für die Komponenten eine Stufe anzugeben, wie sie in der nächst feineren Stufe realisiert werden. Abbildung 18.1 zeigt eine solche Vorgehensweise. Es gibt dort sechs Ebenen. Die unteren drei Ebenen beziehen sich auf die Hardware, die oberen drei Ebenen auf die Programm- oder Software-Seite.
Heinrich Müller, Frank Weichert
Kapitel 20. Rechnerarchitektur und Maschinensprache
Zusammenfassung
Die Architektur eines Rechners beschreibt, analog zur Architektur eines Hauses, den Aufbau aus Komponenten. Abschnitt 19.1 stellt die heute meist gebräuchliche Rechnerarchitektur vor, die unter dem Namen von-Neumann-Architektur bekannt ist. Ihre zentralen Komponenten sind ein Prozessor und Speicher.
Heinrich Müller, Frank Weichert
Kapitel 21. Schaltungen
Zusammenfassung
Schaltungen verknüpfen Daten. In heutigen Rechnern handelt es sich dabei weitgehend um Information, die durch aneinandergereihte Dateneinheiten repräsentiert wird. Jede Dateneinheit kann hierbei jeweils zwei unterschiedliche Werte annehmen.
Heinrich Müller, Frank Weichert
Kapitel 22. Formale Sprachen und Compiler
Zusammenfassung
Rechner werden heutzutage meist in einer höheren Programmiersprache, wie zum Beispiel Java, programmiert. Auf der anderen Seite haben Prozessoren nach wie vor eine erheblich einfacher strukturierte Maschinensprache. Damit ein Programm, das in einer höheren Programmiersprache geschrieben ist, auf einem Rechner ausführbar wird, muss es in Maschinenbefehle überführt werden.
Heinrich Müller, Frank Weichert
Backmatter
Metadaten
Titel
Vorkurs Informatik
verfasst von
Heinrich Müller
Frank Weichert
Copyright-Jahr
2023
Electronic ISBN
978-3-658-36468-7
Print ISBN
978-3-658-36467-0
DOI
https://doi.org/10.1007/978-3-658-36468-7

Premium Partner