Programmieren 1
In diesem Modul lernen die Studierenden, wie man systematisch Programme zum Lösen von Problemen entwickelt. Ihre Lösungen sind nachweislich korrekt, effizient und sinnvoll strukturiert. Inhalte:
- Fortgeschrittene Problemlösetechniken (wie Stepwise Refinement) und Programmiermuster
- Ausgewählte Such- und Sortieralgorithmen für Arrays
- Laufzeit- und Speicherplatzanalyse, O-Notation
- Rekursion
- Objekte, Referenzen und Klassen
- Packages, Sichtbarkeit, Interfaces und Polymorphie
- Grundlegende Collection-Typen
- Vor- und Nachbedingungen, Invarianten und Exceptions
- Clean-Code- und Testing-Grundlagen
- Die Studierenden können Probleme analysieren, dafür mit einer breiten Palette von Techniken, Programmiermustern, Standardalgorithmen und -Collections ein Lösungsverfahren finden, dieses beschreiben und schliesslich in einer Programmiersprache formulieren. Dabei verwenden Sie visuelle Darstellungen und klare Beschreibungen, um effiziente Lösungen zu finden und Fehler zu vermeiden.
- Die Studierenden können von anderen Personen oder Automaten (KI) erzeugte Programme lesen, analysieren, nachvollziehen und die Sinnhaftigkeit einzelner Programmschritte erklären oder in Frage stellen. Dabei erkennen Sie grundlege Muster und Algorithmen.
- Die Studierenden nutzen Konzepte, Best-Practices und zugehörige Sprachkonstrukte der objektorientierten Programmierung zur sinnvollen Strukturierung grösserer Programme und zur Arbeitsteilung. Sie arbeiten dazu auch mit Objekt-, Klassen- und Sequenzdiagrammen.
- Die Studierenden können selbstständig nach weiteren, nicht im Unterricht behandelten Umsetzungsmöglichkeiten recherchieren und in einem eigenen Projekt umsetzen.