Category Archives: Teaching

Differenzieren und Integrieren

Differenzieren und Integrieren

Inhalt des Skriptums seit dem Sommersemester 2025

Hier finden Sie die Kapitel aus den Vergangenen Jahren (legacy):

Die Jupyter-Notebooks zur Legacy-Variante der Lehrveranstaltung finden Sie im zugehörigen GitHub-Repository.

Einführung und einfache Algorithmen

Einführung und einfache Algorithmen

Inhalt des Skriptums seit dem Sommersemester 2025

Hier finden Sie die Kapitel aus den Vergangenen Jahren (legacy):

Die Jupyter-Notebooks zur Legacy-Variante der Lehrveranstaltung finden Sie im zugehörigen GitHub-Repository.

Python Einfuehrung und Checkup

Python Einführung und Checkup

Inhalt des Skriptums seit dem Sommersemester 2025

Hier finden Sie die Kapitel aus den Vergangenen Jahren (legacy):

Die Jupyter-Notebooks zur Legacy-Variante der Lehrveranstaltung finden Sie im zugehörigen GitHub-Repository.

Einfaches Python Setup und Wichtige Informationen

Inhalt des Skriptums seit dem Sommersemester 2025

Hier finden Sie die Kapitel aus den Vergangenen Jahren (legacy):

Die Jupyter-Notebooks zur Legacy-Variante der Lehrveranstaltung finden Sie im zugehörigen GitHub-Repository.

Ein einfaches Setup für Python (egal auf welchem Betriebssystem)

In dieser VU werden wir die Programmiersprache Python verwenden. Hier die wichtigsten Informationen und Links in aller Kürze:

  • Die offizielle Dokumentation für Python finden Sie hier.
  • Ich empfehle die Verwendung einer Python-Distribution als Grundlage für Ihre Programmiertätigkeit in Python. Bewährt hat sich hier Anaconda, die Sie hier kostenlos, einfach und für die gängigsten Betriebssysteme herunterladen können.
  • Die wichtigsten Werkzeuge für unsere Zwecke, die von Anaconda grundsätzlich bereitgestellt werden, sind der Stand-Alone-Editor Spyder und die interaktive Notebook-Oberfläche Jupyter.
  • Ein weiterer Vorteil der Anaconda-Distribution sind die Umgebungen (Environments), mit denen man einfach zwischen verschiedenen verfügbaren oder kombinierten Sätzen von Zusatzpaketen wechseln und diese verwalten kann.
  • Environments sind nicht zwingend nötig. Wenn Sie allerdings viele Pakete brauchen oder verschiedene Setups für verschiedene Problemstellungen zur Verfügung haben möchten, dann empfiehlt sich die Verwendung von Environments. Informationen dazu finden Sie hier.
  • Für die Pakete, die wir brauchen werden, können Sie ein Environment dann voraussichtlich so einrichten:
    conda create -n fmca python=3.9 numpy pandas matplotlib scipy sympy jupyter jupyterlab scikit-learn seaborn tqdm opencv
  • Danach aktivieren Sie das Environment mit
    conda activate fmca
  • Und schließlich starten Sie in Ihrem Environment die Jupyter-Anwendung mit
    jupyter notebook
    Daraufhin wird Jupyter in Ihrem Standard-Browser geöffnet.

Bitte installieren Sie sich die Anaconda-Distribution auf Ihrem Rechner, sodass Sie bereit sind, damit zu arbeiten (wir werden das in der ersten Einheit allerdings auch noch in Ruhe durchgehen und die dazu offenen Fragen klären).

Alternativ können Sie gerne auch ein anderes Python-Setup benutzen, Sie müssen das allerdings selbständig soweit erledigen, dass Sie Jupyter Notebook und einen Editor zur Verfügung haben und allfällig notwendige Bibliotheken leicht selbst installieren und einbinden können.

Python Lernen oder besser Verstehen (mit Videos)

Hier noch meine Empfehlungen, falls Sie an Ihren Python-Kenntnissen arbeiten wollen. Wenn Sie am liebsten ein Buch möchten, dann googeln Sie nach

A Primer on Scientific Programming with Python (Hans Petter Langtangen)

So finden Sie ein pdf. In diesem Buch wird zwar noch mit Python v2 gearbeitet, aber viel hat sich zur aktuellen Variante in v3 nicht geändert (für unsere Zwecke hauptsächlich der print-Befehl).

Dazu kann ich Ihnen noch diverse Videos auf YouTube empfehlen. Ein umfangreiches, aber sehr kompaktes Video dazu finden Sie hier:

Einen etwas anderen Zugang finden Sie in folgender Youtube-Playlist:

Für Fortgeschrittene oder alle, die Python anhand konkreter Probleme üben wollen, eignet sich z.B. die Python-Challenge.

Allgemeine Informationen zur Vorlesung mit Übungen

Ich freue mich, mit Ihnen gemeinsam einige interessante mathematische und algorithmische Probleme und mögliche Lösungen zu besprechen und gemeinsam zu erarbeiten. Folgen Sie einfach den Einheiten über den Verlauf der Themen und lesen Sie die entsprechenden Blog-Beiträge.

Wenn Sie das alles nicht nur anschauen (wenn auch mit Beispiel-Outputs) wollen, sondern auch gerne selbst ausprobieren würden, dann finden Sie die Jupyter-Notebooks zur Lehrveranstaltung, auf denen die Beiträge hier basieren, auch in einem Repository auf GitHub.

Kontakt

Falls Sie Fragen, Anregungen oder Anmerkungen (Fehler gefunden?) haben, dann erreichen Sie mich am besten unter [email protected].

Inhalte

Im Bereich der fortgeschrittenen Mathematik werden wir mit Differential- und Integralrechnung, Gleichungssystemen, Vektoren, Matrizen und Differentialgleichungen arbeiten.

Bezüglich der computergestützten Algorithmen werden wir Grundlagen, Beispiele für Algorithmen, Anwendung an konkreten Problemen und deren Umsetzung in der Programmiersprache Python diskutieren. Das wird uns von grundlegenden Algorithmen bis zur Optimierung und anderen interessanten aktuellen Problemen bringen.

Weil sich in den vergangenen Monaten sehr viel auf dem Gebiet der künstlichen Intelligenz getan hat, insbesondere was sogenannte Large Language Models (LLMs) betrifft, werden wir in dieser Lehrveranstaltung auch ganz bewusst damit arbeiten. Ich möchte Ihnen jedenfalls zeigen, wie Sie Ihre Projekte und Programmiertätigkeit durch die gezielte Nutzung so eines Werkzeugs auf einen gänzlich anderen Level heben können.

Konkret möchte ich ChatGPT, Claude.ai und/oder Gemini nutzen. Ich persönlich nutze die meisten dieser Dienste schon seit es sie gibt und habe damit sehr gute Erfahrungen gemacht. Ich möchte Sie daher dazu einladen und ermutigen, ebenfalls so einen Dienst für die Übungsteile der Einheiten zu nutzen. Die Übungsteile sind ganz bewusst zur selbständigen, aber programmiertechnisch unterstützten Lösung konzipiert.

Für eine effiziente Nutzung von ChatGPT, Claude.ai oder Gemini müssen Sie sich bei den jeweiligen Diensten registrieren. Dazu kann und möchte ich Sie natürlich nicht zwingen, aber ermutigen. Ich persönlich sehe die Fähigkeit, mit KI-Assistenten vertraut zu sein und gut und effizient damit umgehen zu können, als essentiell für die meisten interessanten Berufsbilder der kommenden Jahre und Jahrzehnte.

Wichtig: Ich brauche im Laufe der Einheiten keinerlei Zugriff auf Ihre Chats oder sonstige diesbezügliche Daten, sondern dies ist ausschließlich als Ihr persönliches Werkzeug gedacht. Wenn Sie aus irgendeinem Grund auf keinen Fall mit so einem KI-Werkzeug arbeiten wollen, so lassen Sie mich das so bald wie möglich wissen, damit ich mich darauf einstellen kann. Ich gehe sonst davon aus, dass Sie eins der erwähnten KI-Werkzeuge für das Schreiben von Code und die Unterstützung beim Lösen der Übungsaufgaben verwenden.

Ich werde Ihnen jedenfalls in den Einheiten regelmäßig die Nutzung von ChatGPT für Problemlösungsstrategien demonstrieren, sodass Sie davon auch profitieren, wenn Sie diesen Dienst selbst nicht nutzen. Sie dürfen und sollen ChatGPT et al. auch für die Abschlussarbeit (siehe unten) nutzen, damit Sie sich auf die interessanten Teile der Problemstellung (anstatt auf das zeilenweise Schreiben von Python-Code) konzentrieren können. Halten Sie sich dabei bitte an die Vorgaben der Universität Graz zur Angabe von Quellen dieser Art, siehe die entsprechende Informationsseite der Universität.

Voraussetzungen

Ich setze mathematische Grundkenntnisse, wie Sie diese in der AHS (oder anderen höheren Schulen) und im bisherigen Verlauf Ihres Studiums erworben haben, voraus. Ebenso gehe ich davon aus, dass Sie bereits einen ersten, aber auch recht ausführlichen, Kontakt mit der Programmiersprache Python hatten. Trotzdem werde ich versuchen, Ihnen beim füllen eventueller Wissenslücken zu helfen bzw. geeignete Ressourcen zum “Aufholen” hier verlinken.

Inhalt

Inhalt des Skriptums seit dem Sommersemester 2025

Hier finden Sie die Kapitel aus den Vergangenen Jahren (legacy):

Die Jupyter-Notebooks zur Legacy-Variante der Lehrveranstaltung finden Sie im zugehörigen GitHub-Repository.

Skriptum zur Vorlesung mit Übungen: Fortgeschrittene Mathematik und Computergestützte Algorithmen für USW/Nawi-Tech

Dieses Skriptum ist aus den Jupyter-Notebooks der Lehrveranstaltung entstanden. Es enthält teilweise zusätzliche weiterführende Links und/oder Material, das zum weiterführenden Selbststudium geeignet ist.

Für Hinweise zu Fehlern oder Unklarheiten bin ich dankbar und bitte um eine kurze Email dazu.

Inhalt

Inhalt des Skriptums seit dem Sommersemester 2025

Hier finden Sie die Kapitel aus den Vergangenen Jahren (legacy):

Die Jupyter-Notebooks zur Legacy-Variante der Lehrveranstaltung finden Sie im zugehörigen GitHub-Repository.

Eine Liste möglicher Fragen zur Abschlussprüfung aus dieser Lehrveranstaltung finden Sie in der Fragensammlung.