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,
- der heute zum Grundwissen für Ingenieure und Naturwissenschaftler auf dem Gebiet der Informatik gehört,
- und der im Rahmen einer einsemestrigen Vorlesung durchgenommen werden kann.
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:
- Rechnerarchitektur: Aufbau eines Computers, Funktionsweise und Zusammenwirken seiner Komponenten.
- Einführung in die Programmierung: Unabhängig von einer speziellen Programmiersprache werden allgemeine Konzepte vorgestellt, die den Einstieg in die Programmierung ermöglichen.
- 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.
- 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:
- Übersicht über Computersysteme
- Betriebssysteme
- Rechnerkommunikation.
Ü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
- Eine kleine Anleitung zum Selbststudium
- Rechnerarchitektur
- Einführung in die Programmierung
- Einführung in C++
- Vorgehensweise und Vorbereitungen zum Erlernen von C++
- Kennenlernen der Entwicklungsumgebung Code::Blocks
- Elementare Syntax von C++: Ein- und Ausgaben über die Konsole
- Elementare Syntax von C++: Fundamentale Datentypen
- Lösungshinweise zu den Aufgaben aus Elementare Syntax von C++: Fundamentale Datentypen
- Elementare Syntax von C++: Bedingung, Alternative und Mehrfachalternative
- Lösungshinweise zu den Aufgaben aus Elementare Syntax von C++: Bedingung, Alternative und Mehrfachalternative
- Elementare Syntax von C++: Weitere Operatoren
- Elementare Syntax von C++: Schleifen
- C++ Programmier-Aufgaben: Anwendungen aus Numerik, Finanzmathematik, Kombinatorik, Auszeichnungssprachen
- C++: Fortgeschrittene Syntax
- C++: Strukturierte Programmierung mit Funktionen
- Weitere Konzepte der strukturierten Programmierung in C++: Einsatz von Vektoren, Gültigkeitsbereiche
- Spezielle Konzepte der strukturierten Programmierung in C++: call by reference, Rekursion, Function Templates
- C++: Aufgaben zur strukturierten Programmierung
- C++: Grundlagen der objektorientierten Programmierung (OOP)
- C++: Konstruktoren und Destruktoren
- Objekt-orientiertes Design in C++: Datenkapselung und UML-Diagramme
- Objekt-orientiertes Design in C++: Komposition und Vererbung
- C++ Programmieraufgaben
- Einführung in die Programmiersprache C und in C-Zeiger
- Einführung in die Programmiersprache C: HelloWorld und erste Programme
- Einführung in die Programmiersprache C: Schleifen mit for und while
- Einführung in die Programmiersprache C: Funktionen
- Definition und einfache Anwendungen von C-Zeigern
- Felder (arrays) in C
- Anwendung von C-Zeigern: Der Zusammenhang zwischen Feldern und Zeigern
- Weitere Anwendungen von C-Zeigern: Der Zusammenhang von Feldern, Zeigern und Funktionen
- Programmier-Aufgaben in C: erste Schritte mit Feldern und Zeigern
- Programmier-Aufgaben in C: Anwendungen von Feldern, Zeigern und Funktionen
- Einführung in die Programmiersprache R
- Eigenschaften von R und Vorbereitungen
- Übersicht über Datentypen in R
- Einfache Datentypen in R
- Zusammengesetzte Datentypen in R
- Vektoren in R: der Datentyp vector
- Vektoren in R: Anwendungen
- Matrizen in R: der Datentyp matrix
- Matrizen in R: Anwendungen
- Felder in R: der Datentyp array
- Listen in R: der Datentyp list
- Listen in R: Anwendungen
- Dataframes in R: der Datentyp data frame
- Dataframes in R: Anwendungen
- Faktoren in R: der Datentyp factor
- Faktoren in R: Anwendungen
- Tabellen in R: der Datentyp table
- Kontrollstrukturen in R
- Funktionen
- Eigenschaften von Funktionen in R
- Selbstdefinierte Funktionen in R (UDF = User Defined Functions)
- Diagnose-Funktionen für Funktionen in R
- Spezielle selbstdefinierte Funktionen in R
- Die Funktion apply() in R: Iteration über die Zeilen oder Spalten einer Matrix
- Die Familie der apply-Funktionen in R Teil 1: Verarbeitung von Listen mit lapply(), sapply(), vapply() und rapply()
- Die Familie der apply-Funktionen in R Teil 2: Die Verarbeitung mehrerer Listen mit mapply(), Map() und outer()
- Die Familie der apply-Funktionen in R Teil 3: Weitere mit apply() verwandte Funktionen
- Funktionsfabriken in R
- Textverarbeitung mit R
- Textverarbeitung mit R: Die Funktion cat() zum Erzeugen von Ausgaben
- Textverarbeitung mit R: Die Funktion format() zum Formatieren von Objekten für Ausgaben
- Textverarbeitung mit R: Mit format() verwandte Funktionen
- Textverarbeitung mit R: Die Funktion paste0() zum Zusammenfügen von Vektoren
- Textverarbeitung mit R: Die Funktion paste() zum Zusammenfügen von Vektoren als Erweiterung von paste0()
- Textverarbeitung mit R: Die Funktionen substr() und substring() zum Extrahieren von Substrings
- Eingabe und Ausgabe in Dateien (I/O)
- Wahrscheinlichkeit
- Statistik
- Graphik
- Übersicht über Computersysteme
- Betriebssysteme
- Rechnerkommunikation
- Einführung in Rechnernetze
- Netzwerkprotokolle
- Das Internet
Literaturempfehlungen
Informatik
- Gumm, Heinz Peter, Sommer, Manfred. Einführung in die Informatik. 10. Aufl. München: Oldenbourg Wissenschaftsverlag, 2013.
- Gumm, H., Sommer, M., Hesse, W., et al. (2016). Informatik Band 1: Programmierung, Algorithmen und Datenstrukturen. Berlin, Boston: De Gruyter, 2016.
- Gumm, H., Sommer, M., Hesse, W., et al. (2017). Informatik Band 2 Rechnerarchitektur, Betriebssysteme, Rechnernetze. Berlin, Boston: De Gruyter, 2017.
- Hellmann, R. Rechnerarchitektur. Einführung in den Aufbau moderner Computer. Berlin, Boston: De Gruyter Oldenbourg, 2016.
Mathematik
- Arens, Tilo et al. Mathematik. 4. Auflage. Berlin: Springer Spektrum, 2018.
- Matoušek, Jiří und Jaroslav Nešetřil. Diskrete Mathematik: Eine Entdeckungsreise. 2. Aufl. Berlin, Heidelberg: Springer-Verlag, 2007 (Rezension).
- Rousseau, Christiane und Saint-Aubin, Yvan. Mathematik und Technologie. 1. Auflage. Berlin, Heidelberg: Springer-Verlag, 2012. (Rezension)
- Schubert, Matthias. Mathematik für Informatiker. 2. Aufl. Wiesbaden: Vieweg+Teubner Verlag, 2012. (Rezension)
- Ausgewählte Kapitel der Mathematik (für Programmierer, Informatiker, Ingenieure und Naturwissenschaftler)