Im Modul Softwareentwicklung 1 (SE1) erläutern wir die grundlegenden Methoden und Konzepte der Softwareentwicklung. Dieses Modul ist eine Einstiegsveranstaltung in die Programmierung und findet regelmäßig im Wintersemester statt. Es ist eine Pflichtveranstaltung im ersten Semester aller beteiligten Studiengänge.
Wir bieten eine Einführung in die imperative und objektorientierte Programmierung sowie in Standardnotationen wie die EBNF und die UML. Wir thematisieren weiterhin elementare Algorithmen und Datenstrukturen, den Umgang mit Bibliotheken und das Testen von Software. Wir verwenden durchgängig die Programmiersprache Java.
Die Teilnehmer sollen sicher mit einem Rechner umgehen, das grundlegende Handwerkszeug der Programmierung im Kleinen beherrschen, Lösungen rechtfertigen. Sie können Programmierwerkzeuge wie Compiler und Editoren nutzen sowie deren Grenzen einschätzen. Sie sollen die Konzepte der Programmierung über eine konkrete Programmiersprache hinaus verstehen, grundlegende Datenstrukturen kennen, einen ersten Eindruck vom Komplexitätsbegriff haben und die Tragweite von Tests abschätzen können.
Die Übungen dieses Moduls führen wir in Form eines betreuten Laborbetriebs durch. Die Teilnehmer sitzen paarweise zu festgelegten Zeiten in Rechnerräumen (ausgestattet wahlweise mit Windows- und Unix-Rechnern) unseres Rechenzentrums und bearbeiten die Übungsaufgaben vor Ort. Erfahrene Betreuer stehen für Nachfragen zur Verfügung und führen auch die Abnahmen durch.
Die Lehrveranstaltung ist nach dem Objects-First-Prinzip gestaltet: Vom ersten Tag an wird mit Objekten und Klassen umgegangen, so dass die grundlegenden Konzepte der Objektorientierung häufig wiederholt und geübt werden können. Dieses Vorgehen wird ermöglicht durch den Einsatz der Java-Entwicklungsumgebung BlueJ, die wir seit 2002 in unserer Lehre einsetzen.
Wir behandeln in SE1 absichtlich nicht das Thema Vererbung, beschränken uns somit auf objektbasierte Programmierung. Die einzige Ausnahme stellen die Interfaces von Java dar, die wir bewusst vor der ausführlichen Behandlung von Vererbung als Mittel zur expliziten Beschreibung von Schnittstellen thematisieren.
Das Modul wurde von den Teilnehmern im Wintersemester 2008/09 für den Hamburger Lehrepreis vorgeschlagen und gewann den 2. Preis.
Das Modul wird, wie alle Pflichtmodule in der Informatik, durch die studentische Lehreevaluation bewertet und erzielt dabei regelmäßig überdurchschnittliche Ergebnisse. Dies wird aus den Profillinien für die Wintersemester 2008/09, 2009/10, 2010/11, 2011/12 und 2012/13 leider nicht unmittelbar ersichtlich, da die Gesamtergebnisse nicht weltöffentlich verfügbar sein sollen und somit hier keine Vergleiche präsentiert werden dürfen.