Online-Kurs

"Programmieren lernen mit C++"

TFE_CPP_Willkommen.png

Es freut mich, dass du den Weg auf diese Seite gefunden hast. Du bist hier, weil du programmieren lernen möchtest? Falls ja, dann ist das ein sehr gutes Ziel! Denn wer eine Programmiersprache beherrscht, kann aktiv unsere digitale Welt gestalten - und damit eröffnen sich dir völlig neue (und vielleicht bislang noch ungeahnte) Möglichkeiten.

 

Direkt zum Inhalt
 

Dieser Kurs ist anders...

... als die üblichen Lehrbücher oder Tutorials. Warum? Ich führe dich persönlich durch eine Reihe von Modulen, die dich nach und nach mit der nötigen Mischung aus Theorie und Praxis versorgen, um in kurzer Zeit auch anspruchsvolle Programme schreiben zu können. Jedes Modul besteht aus Videos, Übungen und einem ausführlichen Begleitheft mit vielen Tipps und Tricks sowie Raum für deine persönlichen Notizen. Viele der Übungen kannst du direkt in deinem Browser lösen, damit du schnell und ohne unnötige Hürden starten kannst.

Welche Sprache soll ich lernen?

Vielleicht bist du dir noch nicht sicher, welche Programmiersprache am besten für dich geeignet ist. Da die Zahl der Sprachen mit jedem Jahr weiter zunimmt, wird deine Entscheidung leider nicht einfacher! Du kannst aber beruhigt sein: Die Grundlagen sind meistens sehr ähnlich und leicht übertragbar: Wenn du grundlegende Dinge wie z.B. Schleifen oder Verzweigungen in einer Sprache beherrschst, dann ist der Aufwand für das lernen einer neuen Sprache überschaubar.

In diesem Kurs lernst du die Sprache C++. Das hat die folgenden Vorteile für dich: 

  • Du lernst eine Sprache, die seit Jahrzehnten kontinuierlich entwickelt und modernisiert wird. 

  • Es gibt nur wenige Bereiche, für die C++ nicht geeignet ist. Vom autonomen Roboter über Computerspiele bis hin zu Marssonden ist die Sprache überall im Einsatz.

  • C++ ist schnell. Sehr schnell. Wenn es um Performance geht, hast du mit C++ klar die Nase vorn.

  • Mit C++ lernst du viel über die Architektur und den Aufbau deines Computers. Andere Sprachen vereinfachen oft wichtige Aspekte, was zu einem schlechten Programmierstil führen kann.

  • Du legst mit C++ eine Grundlage, um den Arduino zu programmieren. Und mit ein bisschen Elektronik-Kenntnis bist du damit auf dem besten Weg, ein Maker zu werden. 

 

Ich wünsche dir viel Spaß mit dem Einstieg in die Welt der Softwareentwicklung. Bevor es losgeht, habe ich noch einen Tipp für dich: Programmieren lernen heißt, Fehler zu machen, Umwege zu gehen und manchmal viel Zeit mit Details zu verbringen. Lass dich davon nicht entmutigen, experimentiere viel und betrachte den Kurs als spielerischen Weg zu deinem Ziel - dann kann dich nichts mehr aufhalten!

Dein Andreas Haja*

*Hochschulprofessor und seit mehreren Jahren  in der Ingenieurausbildung tätig 

Hinweis : Dieser Kurs befindet sich gerade in der Entwicklungsphase. Wenn du Fehler findest oder Verbesserungsvorschläge hast, dann schreibe mir gerne eine Nachricht. 

Kursinhalt

In den Einheiten 1 und 2 schreibst du dein erstes Programm in C++, erfährst etwas zu wichtigen Eigenschaften und zur Geschichte der Sprache und du lernst wichtige Entwicklungswerkzeuge wie Compiler, Debugger und Entwicklungsumgebung kennen. 

 

In den Einheiten 3 und 4 erfährst du, wie Programme in C++ aufgebaut sind. Außerdem erschließt du dir wichtige Grundlagen der Sprache und entwickelst dein erstes Projekt in C++. In Einheit 4 erweiterst du dein Grundlagenwissen um wichtige Konzepte wie Schleifen und Funktionen und entwickelst ein deutlich umfangreicheres Projekt, mit dem sich der kürzeste Pfad zwischen zwei Städten suchen lässt - ähnlich wie bei Google Maps.

Über die Links gelangst du direkt zu den jeweiligen Einheiten : 

Forum zum Kurs

Wenn du Fragen hast oder anderen helfen willst, dann schau gerne in das Forum zum Kurs und beteilige dich an den Diskussionen dort. 

 

Einheit 1 : Erste Schritte mit C++

In dieser Einheit lernst du, was Grundbegriffe wie "Quellcode", "kompilieren" und "IDE" bedeuten und erfährst einige spannende Details zur Geschichte von C++. Am Ende der Einheit schreibst du bereits dein erstes Programm. 

Modul 1.1

Grundbegriffe der Programmierung

Hier lernst du ...

  • ... was ein Programm ist.

  • ... was Quellcode ist.

  • ... was "kompilieren" bedeutet.

  • ... was eine Entwicklungsumgebung ist.

 

Nach dem Modul kannst du ...

  • ... eine Online-IDE benutzen.

  • ... Grundelemente der Sprache identifizieren.

  • ... ein einfaches Programm in C++ verändern und ausführen.

Modul 1.2

Eine kurze
Geschichte von C++

Hier lernst du ...

  • ... was Maschinensprache, Assembler und Hochsprachen sind.

  • ... Eigenschaften & Hintergründe der Vorgängersprache C kennen.

  • ... wichtige Unterschiede zwischen den Versionen von C++ kennen.

Nach dem Modul kannst du ...

  • ... ein einfaches Programm in C schreiben.

  • ... den Compiler auf unterschiedliche Versionen von C++ einstellen.

ab 7.10.20

Modul 1.3

Projekt

"Taschenrechner"

Hier lernst du ...

  • ... wie man eine Idee in ein Programm überführt. 

  • ... wie man mit wenigen einfachen Befehlen mathematische Probleme lösen kann.

Nach dem Modul kannst du ...

  • ... erste einfache Programme in C++ schreiben und kompilieren.

  • ... deinen eigenen Taschenrechner programmieren.

ab 14.10.20
 

Einheit 2 : Werkzeuge für das Programmieren

In dieser Einheit lernst du einige der wichtigsten Entwicklungswerkzeuge kennen. Am Ende der Einheit bist du in der Lage, einen Compiler zu nutzen, einen Debugger zur Fehlersuche zu verwenden und Programme in einer integrierten Entwicklungsumgebung (IDE) zu schreiben.

Modul 2.1

Wie benutze ich

einen Compiler?

Hier lernst du ...

  • ... welche Compiler für C++ existieren und wie man sie installiert.

  • ... wie ein Compiler in C++ konfiguriert benutzt wird.
     

Nach dem Modul kannst du ...

  • ... einen Compiler unter Windows und Mac OS installieren.

  • ... ein einfaches Programm über das Terminal kompilieren und ausführen.

  • ... Programme mit einem Texteditor schreiben und kompilieren.

ab 21.10.20

Modul 2.2

Was ist

ein Debugger?

Hier lernst du ...

  • ... was ein Debugger ist.

  • ... was Haltepunkte sind.

  • ... wie gdb funktioniert.
     

Nach dem Modul kannst du ...

  • ... ein Programm im "Debug-Modus" kompilieren.

  • ... ein Programm schrittweise ausführen und Haltepunkte setzen.

ab 28.10.20

Modul 2.3

Was ist

eine IDE?

Hier lernst du ...

  • ... was Entwicklungsumgebungen sind und welche du nutzen solltest. 

  • ... warum Visual Studio Code eine gute Wahl in vielen Fällen ist.


Nach dem Modul kannst du ...

  • ... die richtige Entwicklungsumgebung für dich auswählen.

  • ... Visual Studio Code installieren und konfigurieren. 

  • ... VS Code zum programmieren und debuggen nutzen.

ab 28.10.20
 

Einheit 3 : Grundlagen von C++ (Teil 1)

In dieser Einheit lernst du die grundlegende Struktur von Programmen in C++ kennen. Du erfährst, was Anweisungen, Literale und Operatoren sind und kannst Variablen unterschiedlichen Typs erzeugen. Mit Bedingungen und Verzweigungen bist du außerdem in der Lage, den Kontrollfluss deiner Programme zu verändern und gezielt zu steuern. Am Ende der Einheit entwickelst du dein erstes umfangreicheres Projekt in C++. 

Modul 3.1

Die Struktur

von Programmen

Hier lernst du ...

  • ... was die main()-Funktion ist.

  • .... welche Anweisungsarten es gibt.

  • ... was Aufruf-Parameter sind.

  • ... was der Begriff "Syntax" bedeutet.

  • ... wie Kommentare genutzt werden.

Nach dem Modul kannst du ...

  • ... einfache Variablen verwenden und miteinander kombinieren.

  • ... Parameter an ein Programm übergeben und im Code nutzen.

ab 4.11.20

Modul 3.4

Was sind Bedingungen?

Hier lernst du ...

  • ... was logische Operatoren sind.

  • ... was Vergleichsoperatoren sind.

  • ... das De Morgan'sche Gesetz kennen.

Nach dem Modul kannst du ...

  • ... Variablen und Literale vergleichen.

  • ... Bedingungen formulieren.

  • ... Logische Aussagen umformen.

ab 18.11.20

Modul 3.2

Was sind

Operatoren?

Hier lernst du ...

  • ... was Literale und Operatoren sind.

  • ... welche Operatoren es in C++ gibt.

  • ... was Anweisungen, Identifier und Ausdrücke sind.

 

Nach dem Modul kannst du ...

  • ... Variablen und Literale durch Operatoren miteinander verbinden.

  • ... unäre, binäre und ternäre Operatoren richtig verwenden.

ab 4.11.20

Modul 3.5

Was sind Verzweigungen?

Hier lernst du ...

  • ... wie man Bedingungen nutzen kann, um dem Kontrollfluss aufzuspalten.

  • ... was Einfachverzweigungen sind.

  • ... was Mehrfachverzweigungen sind.

Nach dem Modul kannst du ...

  • ... den Kontrollfluss mit if oder switch-case aufteilen.

  • ... das Schlüsselwort break nutzen.

ab 18.11.20

Modul 3.3

Was sind Variablen

& Datentypen?

Hier lernst du ...

  • ... wie man Variablen richtig benennt.

  • ... welche grundlegenden Datentypen es in C++ gibt. 

  • ... wie man Datentypen konvertiert.

  • ... was "konstante" Variablen sind.

Nach dem Modul kannst du ...

  • ... den richtigen Datentyp für die zu speichernde Information auswählen.

  • ... Datentypen ineinander konvertieren.

  • ... const-Variablen richtig einsetzen.

ab 11.11.20

Modul 3.6

Projekt

"Numerisch ableiten"

Hier lernst du ...

  • ... wie man ein mathematisches Konzept in ein Programm überführt.

  • ... wie numerisches Ableiten funktioniert.

  • ... wie man Datentypen an die zu erwartenden Ergebnisse anpasst.

Nach dem Modul kannst du ...

  • ... nahezu beliebige mathematische Funktionen ableiten.

  • ... selbständig kleinere Programme entwickeln.

ab 25.11.20
 

Einheit 4 : Grundlagen von C++ (Teil 2)

In dieser Einheit erschließt du dir die Leistungsfähigkeit von C++. Du lernst, mit Schleifen Anweisungen wiederholt auszuführen und mit Funktionen Code auszulagern und effektiver zu nutzen. Außerdem erfährst du, wie Daten von der Konsole und aus Dateien eingelesen und wieder gespeichert werden. Zum Schluss lernst du, komplexere Datenstrukturen zu erzeugen und mit Feldern effektiv zu verwalten. Ein umfangreiches Projekt zur Suche des kürzesten Pfades zwischen zwei Städten schließt das Kapitel ab. 

Modul 4.1

Was sind

Schleifen?

Hier lernst du ...

  • ... was eine Schleife ist.

  • ... welche Schleifenarten in C++ zur Verfügung stehen.

  • ... nach welchen Kriterien eine Schleife ausgewählt werden sollte.

Nach dem Modul kannst du ...

  • ... die Schleifenarten while, do-while und for sicher verwenden.

  • ... entscheiden, welcher Schleifentyp zu deinem Problem passt.

  • ... den Kontrollfluss mit break und continue gezielt steuern.

Modul 4.4

Was sind

Arrays?

Hier lernst du ...

  • ... wie man Daten in Felder speichert.

  • ... wie mehrdimensionale Felder angelegt werden.

  • ... wie Arrays an Funktionen übergeben werden.

Nach dem Modul kannst du ...

  • ... Daten speichern und lesen mit in ein- und mehrdimensionalen Feldern.

  • ... Arrays mit Schleifen nutzen.

  • ... Arrays mit Funktionen als Parameter und Rückgabewert nutzen.

ab 23.12.20

Modul 4.2

Was sind

Funktionen?

Hier lernst du ...

  • ... was Funktionen sind und wozu man sie verwendet.

  • ... wie Argumente übergeben werden.

  • ... was Rückgabewerte sind.

  • ... was Geltungsbereiche sind.

Nach dem Modul kannst du ...

  • ... Code in Funktionen auslagern.

  • ... Daten an Funktionen übergeben.

  • ... Daten aus Funktionen zurückgeben.

ab 9.12.20

Modul 4.5

Was sind

Strukturen?

Hier lernst du ...

  • ... wie komplexe Datenstrukturen aus Basistypen zusammengesetzt sind.

  • ... wie man eigene Strukturen ineinander verschachtelt.

  • ... was Enumeratoren sind und wofür man sie benötigt.

Nach dem Modul kannst du ...

  • ... eigene Datenstrukturen erstellen.

  • ... Datenstrukturen über Dateigrenzen hinweg im Projekt verfügbar machen.

  • ... Enumeratoren sinnvoll nutzen,

ab 6.1.21

Modul 4.3

Daten eingeben, ausgeben & speichern

Hier lernst du ...

  • ... die iostream-Bibliothek zur Ein- und Ausgabe von Daten kennen.

  • ... die fstream-Bibliothek zum Einlesen und Schreiben von Daten kennen.

Nach dem Modul kannst du ...

  • ... Daten auf das Terminal und in Dateien schreiben.

  • ... Daten vom Terminal oder aus Dateien einlesen.

ab 16.12.20

Modul 4.6

Projekt
"Pfadsuche"

Hier lernst du ...

  • ... wie man den kürzesten Pfad zwischen zwei Städten findet ähnlich zu Google Maps.

  • ... wie man eine Datenbasis einliest, formatiert und verarbeitet.

  • ... wie ein komplexerer Algorithmus in ein Programm überführt wird.

Nach dem Modul kannst du ...

  • ... eigenständig umfangreichere Programme schreiben.

  • ... einen ungerichteten Graphen aufbauen und durchlaufen.

ab 13.1.21
 

Ausblick auf zukünftige Einheiten

Wenn du alle bisher verfügbaren Module aus den Einheiten 1-4 absolviert hast, dann verfügst du bereits über ein solides Grundlagenwissen in C++. Du bist in der Lage, einfache Programme selbständig zu entwickeln und zu testen. Herzlichen Glückwunsch!

 

Ab März 2021 werden an dieser Stelle weitere Module mit Themen für Fortgeschrittene freigeschaltet, mit denen du dein Wissen erweitern kannst. 

 

Hier ist ein Auszug der wichtigsten Inhalte: 

  • Objektorientierte Programmierung

  • Das Speichermodell in C++

  • Stack und Heap

  • Zeiger und Referenzen

  • Grafische Oberflächen

  • Programmieren mit dem Arduino

  • Call-by-value und Call-by-reference

  • Smart Pointer

  • Versionsverwaltung