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 deinem 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

Ü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 wie ein Computer aufgebaut ist und wie Speicher und Prozessor zusammenspielen, um Programme auszuführen. Im dritten Modul lernst du außerdem, was Verzweigungen und Schleifen sind. Mit diesem ersten Werkzeugkasten ausgestattet kannst du dich dann daran machen, dein erstes (etwas) umfangreicheres Programm zu schreiben.

Modul 1.1

Einstieg in die 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 von Programmen identifizieren.

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

Modul 1.2

Wie funktioniert ein Computer?

Hier lernst du ...

  • ... wie ein Computer aufgebaut ist.

  • ... welche Rolle Bus, Speicher und Prozessor spielen

  • .... wie du Daten im Speicher ablegen und verwalten kannst

Nach dem Modul kannst du ...

  • ... ein einfaches Programm schreiben.

  • ... Variablen erzeugen und deren Adressen ausgeben

  • ... die Laufzeit von Programmen messen

Modul 1.3

Verzweigungen
und Schleifen

Hier lernst du ...

  • ... wie man den Programmfluss verzweigen kann

  • ... wie man Anweisungen wiederholt ausführen kann

Nach dem Modul kannst du ...

  • ... die if-Verzweigung anwenden

  • ... die while-Schleife anwenden

  • ... ein etwas umfangreicheres Programm schreiben

 

Einheit 2 : Programmstruktur, Operatoren und Variablen

In dieser Einheit lernst du, aus welchen Bestandteilen Programme in C++ aufgebaut sind. Wir sehen uns gemeinsam an, was man mit Operatoren so alles machen kann, welche Aufgaben Variablen erfüllen und wie du den richtigen Datentyp für die Informationen auswählen kannst, die du in deinen Programmen verarbeiten oder speichern möchtest.

Modul 2.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.

Modul 2.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.

Modul 2.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.

 
 

Einheit 3 : Arrays, Datenstrukturen und Dateien

In dieser Einheit lernst du, wie du mehrere Variablen des gleichen Typs mit einem gemeinsamen Bezeichner verwalten kannst (Arrays) und wie du deine eigenen Datenstrukturen zusammenstellen kannst. Außerdem erfährst du, wie du Daten speichern und laden kannst. 

Modul 3.1

Was sind

Arrays?

Hier lernst du ...

  • ... was Arrays (Felder) sind?

  • ... wie der Datentyp von Arrays die
       Speicherbelegung beeinflusst.

  • ... wie Arrays mit Variablen
       verwaltet werden

  • ... was mehrdimensionale Arrays sind.

Nach dem Modul kannst du ...

  • ... Arrays definieren und initialisieren

  • ... mit Variablen Elemente ansprechen

  • ... die Größe mit Konstanten festlegen

  • ... mit Schleifen über Elemente laufen

Modul 3.2

Eigene Datenstrukturen

anlegen

Hier lernst du ...

  • ...

Nach dem Modul kannst du ...

  • ... 

ab 2021

Modul 3.3

Daten lesen und schreiben

Hier lernst du ...

  • ...

Nach dem Modul kannst du ...

  • ...

ab 2021

Einheit 4 : Funktionen

Mit Funktionen ist es möglich, deine Programmier-Projekte übersichtlicher zu strukturieren. Du kannst damit Blöcke von häufig benutzen Anweisungen gruppieren und über eine Schnittstelle zugänglich machen. Damit wird es auch leichter, gemeinsam mit anderen zu arbeiten und Code-Bestandteile auszutauschen. In dieser Einheit sehen wir uns daher an, wie Funktionen grundsätzlich aufgebaut sind, wie man Parameter sinnvoll übergibt und wie man Code auf mehrere Dateien verteilen kann. 

Modul 4.1

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 16.12.20

Modul 4.2

Call-by-Reference

vs. Call-By-Value

Hier lernst du ...

  • ... was Referenzen sind

  • ... was der Adressoperator macht

  • ... wie man die Parameterübergabe optimieren kann

  • ... wie man Ergebnisse aus Funktionen an den Aufrufer zurückgeben kann
     

Nach dem Modul kannst du ...

  • ... Parameter als Wert und als Referenz übergeben

  • ... entscheiden, wann welche Methode am besten geeignet ist.

Modul 4.3

Code auf mehrere Dateien verteilen

Hier lernst du ...

  • ... was Header-Dateien sind

  • ... was Vorwärts-Deklarationen sind

  • ... warum es sinnvoll sein kann, Code auf mehrere Dateien zu verteilen

Nach dem Modul kannst du ...

  • ... Code auf mehrere Dateien auslagern

  • ... die Reihenfolge von Funktionen im Code durch Vorwärts-Deklarationen flexibler gestalten

ab 6.1.2021
 

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: 

  • Funktionen

  • dynamische Listen

  • 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