Einführung in die Informatik

Einführung in die Informatik für Ingenieure und Naturwissenschaftler. Kurs zum Selbststudium, der das Grundwissen in Informatik etwa im Umfang einer einsemestrigen Vorlesung zusammenstellt.

Über diesen Kurs

Der vorliegende Kurs ist aus Hochschul-Vorlesungen für Ingenieure hervorgegangen. Er bietet in etwa den Stoff,

Entsprechend können nicht alle zu einer Einführung in die Informatik gehörigen Themen ausführlich behandelt werden und manche sind - etwa für Informatikstudenten - deutlich zu oberflächlich geraten; der Kurs soll aber darauf vorbereiten, selbständig mit weiterführender Literatur zu arbeiten.

Ausführlich behandelt werden die ersten vier Teile:

  1. Rechnerarchitektur: Aufbau eines Computers, Funktionsweise und Zusammenwirken seiner Komponenten.
  2. Einführung in die Programmierung: Unabhängig von einer speziellen Programmiersprache werden allgemeine Konzepte vorgestellt, die den Einstieg in die Programmierung ermöglichen.
  3. Einführung in C++: Es wird ein kompletter Programmier-Kurs geboten, der es selbst Anfängern erlaubt die Sprache C++ zu erlernen. Die wichtigsten Sprachelemente und die für Ingenieure und Naturwissenschaftler besonders relevanten Konzepte werden vorgestellt.
  4. Einführung in die Programmiersprache R: Alternativ zu C++ wird auch ein Einstieg in die Sprache R geboten. Dieser Teil sollte auch ohne die Einführung in die Programmierung verständlich sein.

Weniger ausführlich behandelt werden die restlichen drei Teile:

  1. Übersicht über Computersysteme
  2. Betriebssysteme
  3. Rechnerkommunikation.

Einführung in die InformatikÜberdies wird man dadurch nicht besser, dass man seine Fehler verbirgt, vielmehr gewinnt unser moralischer Wert durch die Aufrichtigkeit, mit der wir sie gestehen. (Lichtenberg)

Ausführliches Inhaltsverzeichnis

  1. Eine kleine Anleitung zum Selbststudium
  2. Rechnerarchitektur
    1. Algorithmen und Computer
    2. Logische Operationen und Schaltnetze
    3. Die von Neumann Rechnerarchitektur
    4. Die Komponenten des von Neumann Rechners: Übersicht
      1. Die Komponenten des von Neumann Rechners: elektrotechnische Grundlagen
      2. Die Komponenten des von Neumann Rechners: Externe Geräte
      3. Die Komponenten des von Neumann Rechners: Der Hauptspeicher
      4. Die Komponenten des von Neumann Rechners: Der Prozessor
    5. Aufgaben zu: Rechnerarchitektur
  3. Einführung in die Programmierung
    1. Eigenschaften von Algorithmen
    2. Strukturelemente von Algorithmen
    3. Pseudocode und formale Sprachen
    4. Einführung in die Programmierung: Fundamentale Datentypen
    5. Übersicht über Programmiersprachen
    6. Auszeichnungssprachen (markup language)
    7. Aufgaben zur Einführung in die Programmierung
  4. Einführung in C++
    1. Vorgehensweise und Vorbereitungen zum Erlernen von C++
    2. Kennenlernen der Entwicklungsumgebung Code::Blocks
    3. Elementare Syntax von C++: Ein- und Ausgaben über die Konsole
    4. Elementare Syntax von C++: Fundamentale Datentypen
    5. Lösungshinweise zu den Aufgaben aus Elementare Syntax von C++: Fundamentale Datentypen
    6. Elementare Syntax von C++: Bedingung, Alternative und Mehrfachalternative
    7. Lösungshinweise zu den Aufgaben aus Elementare Syntax von C++: Bedingung, Alternative und Mehrfachalternative
    8. Elementare Syntax von C++: Weitere Operatoren
    9. Elementare Syntax von C++: Schleifen
    10. C++ Programmier-Aufgaben: Anwendungen aus Numerik, Finanzmathematik, Kombinatorik, Auszeichnungssprachen
  5. C++: Fortgeschrittene Syntax
    1. C++: Strukturierte Programmierung mit Funktionen
    2. Weitere Konzepte der strukturierten Programmierung in C++: Einsatz von Vektoren, Gültigkeitsbereiche
    3. Spezielle Konzepte der strukturierten Programmierung in C++: call by reference, Rekursion, Function Templates
    4. C++: Aufgaben zur strukturierten Programmierung
    5. C++: Grundlagen der objektorientierten Programmierung (OOP)
    6. C++: Konstruktoren und Destruktoren
    7. Objekt-orientiertes Design in C++: Datenkapselung und UML-Diagramme
    8. Objekt-orientiertes Design in C++: Komposition und Vererbung
  6. C++ Programmieraufgaben
    1. C++ Programmieraufgabe: Das Rucksackproblem
    2. C++ Programmieraufgabe: Das Travelling Salesman Problem (TSP)
    3. C++ Programmieraufgabe: Auswertung einer Fahrradtour
    4. C++ Programmieraufgabe: Simulation einer Heizung und eines Heizungsreglers
    5. C++ Programmieraufgabe: Matching
    6. C++ Programmieraufgabe: Wettermodell
  7. Einführung in die Programmiersprache C und in C-Zeiger
    1. Einführung in die Programmiersprache C: HelloWorld und erste Programme
    2. Einführung in die Programmiersprache C: Schleifen mit for und while
    3. Einführung in die Programmiersprache C: Funktionen
    4. Definition und einfache Anwendungen von C-Zeigern
    5. Felder (arrays) in C
    6. Anwendung von C-Zeigern: Der Zusammenhang zwischen Feldern und Zeigern
    7. Weitere Anwendungen von C-Zeigern: Der Zusammenhang von Feldern, Zeigern und Funktionen
    8. Programmier-Aufgaben in C: erste Schritte mit Feldern und Zeigern
    9. Programmier-Aufgaben in C: Anwendungen von Feldern, Zeigern und Funktionen
  8. Einführung in die Programmiersprache R
    1. Eigenschaften von R und Vorbereitungen
    2. Übersicht über Datentypen in R
    3. Einfache Datentypen in R
      1. Einführung in R: Zahlen und Variablen
      2. Einführung in R: Logische Werte
      3. Einführung in R: Zeichen
      4. Zahlenbereiche und spezielle Werte in R (Inf, NaN, NA und NULL)
    4. Zusammengesetzte Datentypen in R
      1. Vektoren in R: der Datentyp vector
      2. Vektoren in R: Anwendungen
      3. Matrizen in R: der Datentyp matrix
      4. Matrizen in R: Anwendungen
      5. Felder in R: der Datentyp array
      6. Listen in R: der Datentyp list
      7. Listen in R: Anwendungen
      8. Dataframes in R: der Datentyp data frame
      9. Dataframes in R: Anwendungen
      10. Faktoren in R: der Datentyp factor
      11. Faktoren in R: Anwendungen
      12. Tabellen in R: der Datentyp table
    5. Kontrollstrukturen in R
      1. Bedingung und Alternative in R: if else und ifelse
      2. Die Mehrfachalternative in R: die Funktion switch()
      3. Die for-Schleife in R
      4. Die while-Schleife und die repeat-Schleife in R
    6. Funktionen
      1. Eigenschaften von Funktionen in R
      2. Selbstdefinierte Funktionen in R (UDF = User Defined Functions)
      3. Diagnose-Funktionen für Funktionen in R
      4. Spezielle selbstdefinierte Funktionen in R
      5. Die Funktion apply() in R: Iteration über die Zeilen oder Spalten einer Matrix
      6. Die Familie der apply-Funktionen in R Teil 1: Verarbeitung von Listen mit lapply(), sapply(), vapply() und rapply()
      7. Die Familie der apply-Funktionen in R Teil 2: Die Verarbeitung mehrerer Listen mit mapply(), Map() und outer()
      8. Die Familie der apply-Funktionen in R Teil 3: Weitere mit apply() verwandte Funktionen
      9. Funktionsfabriken in R
    7. Textverarbeitung mit R
      1. Textverarbeitung mit R: Die Funktion cat() zum Erzeugen von Ausgaben
      2. Textverarbeitung mit R: Die Funktion format() zum Formatieren von Objekten für Ausgaben
      3. Textverarbeitung mit R: Mit format() verwandte Funktionen
      4. Textverarbeitung mit R: Die Funktion paste0() zum Zusammenfügen von Vektoren
      5. Textverarbeitung mit R: Die Funktion paste() zum Zusammenfügen von Vektoren als Erweiterung von paste0()
      6. Textverarbeitung mit R: Die Funktionen substr() und substring() zum Extrahieren von Substrings
    8. Eingabe und Ausgabe in Dateien (I/O)
    9. Wahrscheinlichkeit
      1. Wahrscheinlichkeitsverteilungen in R
      2. Die Funktion sample() zum Erzeugen von Stichproben zu selbstdefinierten diskreten Zufallsvariablen
      3. Der häufigste Fehler bei der Anwendung der Funktion sample()
    10. Statistik
      1. Lineare Regression mit Hilfe von lm() und Funktionen zum Extrahieren von Modelleigenschaften
    11. Graphik
      1. Erzeugen von dreidimensionalen Graphiken mit scatterplot3d
  9. Übersicht über Computersysteme
  10. Betriebssysteme
    1. Einführung in Betriebssysteme
    2. Betriebsarten eines Computers
    3. Aufgaben des Betriebssystems
  11. Rechnerkommunikation
    1. Einführung in Rechnernetze
    2. Netzwerkprotokolle
    3. Das Internet

Literaturempfehlungen

Informatik

  1. Gumm, Heinz Peter, Sommer, Manfred. Einführung in die Informatik. 10. Aufl. München: Oldenbourg Wissenschaftsverlag, 2013.
  2. Gumm, H., Sommer, M., Hesse, W., et al. (2016). Informatik Band 1: Programmierung, Algorithmen und Datenstrukturen. Berlin, Boston: De Gruyter, 2016.
  3. Gumm, H., Sommer, M., Hesse, W., et al. (2017). Informatik Band 2 Rechnerarchitektur, Betriebssysteme, Rechnernetze. Berlin, Boston: De Gruyter, 2017.
  4. Hellmann, R. Rechnerarchitektur. Einführung in den Aufbau moderner Computer. Berlin, Boston: De Gruyter Oldenbourg, 2016.

Mathematik

  1. Arens, Tilo et al. Mathematik. 4. Auflage. Berlin: Springer Spektrum, 2018.
  2. Matoušek, Jiří und Jaroslav Nešetřil. Diskrete Mathematik: Eine Entdeckungsreise. 2. Aufl. Berlin, Heidelberg: Springer-Verlag, 2007 (Rezension).
  3. Rousseau, Christiane und Saint-Aubin, Yvan. Mathematik und Technologie. 1. Auflage. Berlin, Heidelberg: Springer-Verlag, 2012. (Rezension)
  4. Schubert, Matthias. Mathematik für Informatiker. 2. Aufl. Wiesbaden: Vieweg+Teubner Verlag, 2012. (Rezension)
  5. Ausgewählte Kapitel der Mathematik (für Programmierer, Informatiker, Ingenieure und Naturwissenschaftler)