C++ - Programmierung:
Grundlagen und Anwendungen mit der Qt-Klassenbibliothek (4SWSt, 6 LPs)
Veranstalter: Fakult?t für Physik, Dr. Peter Georg?
Dozent: Tobias Sizmann
?
C++ ist eine seit 1979 entwickelte Programmiersprache mit Kompatibilit?t zu C. Es wird sowohl in der System- als auch in der Anwendungsprogrammierung verwendet und geh?rt in beiden Bereichen zu den verbreitetsten Programmiersprachen. C++ unterstützt hierbei sowohl maschinennahe Programmierung als auch die Verwendung vieler Abstraktionsschichten um die Programmierung zu vereinfachen. In beiden F?llen verspricht C++ eine m?glichst hohe Effizienz des generierten Maschinencodes. Wobei die Effizienz insbesondere vom verwendeten C++ Compiler abh?ngig ist. Es stehen Open-Source Compiler für alle g?ngigen Betriebssysteme zur Verfügung. Die Programmiersprache ist von der ISO genormt und wird kontinuierlich weiter entwickelt. Aktuell wird alle 3 Jahre ein neuer C++ Standard ver?ffentlicht. Der Standard definiert neben der Programmiersprache selbst auch eine zugeh?rige Standardbibliothek.
Qt ([kju:t]) ist eine Sammlung von Bibliotheken, oft auch als Anwendunsframework bezeichnet, zur platformübergreifenden Entwicklung von Software für unterschiedliche Einsatzzwecke. Es unterstützt alle g?ngigen Betriebssysteme (Linux, Windows, macOS, Android, iOS) und ist unter verschiedenen Lizenzen verfügbar. Neben der?für Open-Source-Programmierung verwendeten?GNU General Public License?(GPL) sind auch kommerzielle Lizenzen?für die Nutzung in nicht quelloffenem Code erh?ltlich. Im Kurs beschr?nken wir uns auf die Nutzung von Qt zur Programmierung grafischer Benutzeroberfl?chen und verwenden es hierbei im Rahmen der GPL Lizenz.
Behandelte Themen
C++
- Nach C++ Standard C++14
- Grundlagen der Programmiersprache C++
- Prozedurale Programmierung
- Ausnahmen und Fehlerbehandlung
- Objecktorientierte Programmierung
- Klassen (Kapselung)
- Vererbung
- Virtuelle Funktionen
- Polymorphie
- Generische Programmierung
Qt
- ?berblick über verfügbare Lizenzen
- Qt Creator
- Meta-Object System
- Property System
- Object Model
- Object Trees & Ownership (Parenting System)
- Signals and Slots
Voraussetzungen und Vorkenntnisse
- Grundkenntnisse in C?oder einer ?hnlichen Programmiersprache (der Umgang mit?Pointer?sollte vertraut sein)
- Umgang mit Debian (für den Kurs werden die Rechner im Linux-CIP-Pool zur Verfügung gestellt)
- Alternativ kann ein eigener PC (Laptop)? genutzt werden, da alle verwendeten Werkzeuge plattformunabh?ngig und quelloffen sind (Windows, macOS, beliebige Linux -Distribution)
- Englischkenntnisee, da die Kursunterlagen und Dokumentation nur in Englisch verfügbar ist
Anforderungen zum erfolgreichen Bestehen (Projekt)
- Aktive Teilnahme an den ?bungen
- Abgabe eines selbstgew?hlten und selbst (alleine oder in zweier Gruppen) umgesetzten Abschlussprojekts nach Absprache mit dem Dozenten. Eine Auswahl an Themenvorschl?gen wird gestellt.
- In den letzten Kurstagen wird mit der Arbeit am Projekt bekommen. In den ?bungen k?nnen Sie weiterhin ihre TutorInnen um Hilfestellung bitten.
- Das Projekt soll am letzten Kurstag?pr?sentierbar sein.
- Der Source Code des Projekts inkl. n?tiger weiterer Ressourcen ist bis Sonntag?23:59 Uhr zwei Wochen nach Kursende abzugeben. Weitere Modalit?ten werden vom Dozenten w?hrend des Kurses bekanntgegeben
Anrechnung (FlexNow)
- Studenten, die einen FlexNow-Eintrag ben?tigen, müssen innerhalb der Kurstage ihre FlexNow-Anmeldung erfolgreich ausführen.
- 百利宫_百利宫娱乐平台¥官网er Kurs ist in FlexNow unter dem Namen?Programmieren portabler graphischer Anwendungen.
- Im Studiengang Physik ist der Kurs in der Rubrik?Sonstiges?eingetragen.
- Weitere Modularisierungen für andere Studieng?nge sind m?glich.
- Zus?tzlich ist der Kurs in der Rubrik?Studienbegleitende IT-Ausbildung?eingetragen. In diesem Fall muss die Leistung benotet werden.
- Papierscheine werden nur in Ausnahmef?llen ausgestellt.
Kursunterlagen
Das Skript und die Aufgaben für die ?bungen stehen online zur Verfügung:??????