Zum Inhalt

Programmieren I

Herzlich willkommen zur Programmieren I Veranstaltung! Wir werden unter Verwendung der Programmiersprache Java die wesentlichen Konzepte lernen, die für das Verständnis modernen Programmierens notwendig sind. Es sind keinerlei Vorkenntnisse erforderlich. Hier einige Tipps, damit Sie die Veranstaltung erfolgreich durchführen und Sie dabei auch Spaß haben:

  1. In diesem Skript sind bereits alle Inhalte des gesamten Semesters verfügbar. Der Grund dafür ist der, dass Sie sich das jeweilige Thema vorab selbständig erarbeiten können, indem Sie sich den jeweiligen Abschnitt bereits vor der jeweiligen Vorlesung anschauen. Ich empfehle Ihnen diese Vorgehensweise - sie hat sich bewährt!
  2. In den Übungen sollten Sie ruhig zusammenarbeiten. Es ist auch kein Problem, wenn Sie für das Bewältigen der Übungen etwas länger benötigen. Sollten Sie es gar nicht alleine schaffen, ist das auch kein Problem. Wichtig ist dann, dass Sie sich die Lösung anschauen und es erneut selbständig versuchen. Hören Sie nicht auf, bis Sie es geschafft haben! Sie müssen irgendwann in der Lage sein, alle Übungsaufgaben selbständig zu lösen.
  3. Sie können die Hausaufgaben gerne zu zweit oder im Team lösen. Achten Sie aber darauf, dass Sie Ihre gemeinsame Lösung vollständig verstanden haben und dass Sie sie danach auch alleine erstellen können. Sie können beim Lösen der Hausaufgaben beliebig kreativ sein! Die Aufgabenstellung gibt Ihnen Anhaltspunkte für eine eventuelle Lösung. Sie können es aber auch ganz anders machen!
  4. Die Klausurvorbereitung beginnt mit Beginn der Veranstaltung! Es ist nicht möglich, die Klausur am Ende des Semesters zu bestehen, wenn Sie nicht das ganze Semester über intensiv programmieren. Die Übungsaufgaben sind "kleine" Aufgaben, um das in der Vorlesung vermittelte Wissen direkt anzuwenden. Für die Lösung der Hausaufgaben ist bereits ein gewisses Abstraktionsniveau erforderlich, um zu erkennen, dass das in der Vorlesung vermittelte Wissen dafür ausreichend ist.
  5. Programmieren lernt man nur durch Programmieren! Sie müssen es tun. Das Lesen von Büchern oder das "Anschauen" von Code genügt nicht. Eine Sprache lernt man auch nur durch Sprechen. Sie müssen programmieren, programmieren, programmieren... (siehe auch hier)
  6. Lassen Sie sich durch Fehler nicht verunsichern, sondern analysieren Sie Ihre Fehler! Bis zur Klausur sollten Sie alle Fehler einmal gemacht haben. Wenn Sie sich überlegen, warum das jeweils ein Fehler war, dann werden Sie diesen Fehler nicht wiederholen und haben durch die Reflektion eine Menge gelernt. Fehler zu machen (und darüber zu reflektieren) gehört zu den besten Lernmethoden des Programmierens!
  7. Haben Sie Spaß! Je mehr Sie das Programmieren lernen, je mehr Spaß werden Sie haben. Sollte es Ihnen zwischendurch keinen Spaß mehr machen, geben Sie mir sofort Bescheid!

Viel Erfolg! Und viel Spaß!

Organisatorisches

Der Plan zur Durchführung der Veranstaltung ist derzeit wie folgt:

  • Themen werden ausführlich in der Vorlesung vorgestellt und in diesem Skript beschrieben.
  • Die neuen Themen werden stets vorab in diesem Skript hier veröffentlicht. Sie können sich also bereits vorab mit dem jeweiligen neuen Thema beschäftigen.
  • Zusammen mit dem Skript (das neue Thema) werden sowohl die dazugehörige Übung als auch die dazugehörige Aufgabe hochgeladen.
  • Die beiden Übungen am Dienstag (in der einen Woche) und am Montag in der folgenden Woche sind jeweils gleich (d.h. dort werden die gleichen Übungsaufgaben gelöst). Die Übungen behandeln den Stoff, der am Montag und Dienstag in der gleichen Woche besprochen wird.
  • Sie können frei wählen, welche der beiden Übungen Sie besuchen. Sie können auch beliebig wöchentlich wechseln.
  • Es wird ein Tutorium angeboten (Termin wird noch bekanntgegeben).
  • Sollten Sie Wünsche haben, diesen Plan zu ändern, kommen Sie gerne auf mich zu.

Zur erfolgreichen Durchführung der Veranstaltung müssen Sie

  • eine der Übungen durchgeführt haben (zu zweit) und (siehe dazu Wiki in Moodle)
  • mir mind. 8 Lösungen Ihrer Übungen in den Übungszeiten präsentiert und
  • die Klausur am Ende bestanden

haben.

Jede Woche gibt es zu jedem Thema Übungen, die wir in den Übungszeiten besprechen. Diese dienen der Anwendung und der Festigung der erlangten Kenntnisse. Die Übungen sind kleine Aufgaben, an denen Sie das neue Wissen anwenden sollen. Die Übungen dienen der Befähigung, die (größeren) Aufgaben lösen zu können.

Es gibt außerdem Aufgaben. Diese sind zu Ihrer eigenen Übung da. Es mag Ihnen vielleicht schwerfallen, die Aufgaben selbständig zu lösen. Sie sollten Sie jedoch irgendwann selbständig lösen können! Es hat sich gezeigt, dass die Studentinnen, die die Aufgaben irgendwann selbständig lösen konnten, die Klausur sicher bestehen. Damit Sie dies erfolgreich erledigen können, ist jeweils angegeben, welche Themen Sie dafür durcharbeiten müssen. Das Durcharbeiten der jeweiligen Themen entspricht meistens jeweils einem Wochenthema.

Am Ende des Semesters schreiben wir eine Klausur (am Rechner). Diese Klausur wird bewertet und entspricht der Note für "Programmieren 1". Probeklausuren (Klausuren aus den letzten Jahren) finden Sie hier.

Für die Kommunikation untereinander verwenden wir Slack (Channel #b11_prog1_ws2025_26). Dort können Sie alle inhaltlichen und organisatorischen Fragen stellen. Ich fände es gut, wenn eine Art internes Diskussionsforum entsteht. Es ist sehr gewünscht, dort Fragen zu stellen und noch mehr gewünscht, dass Sie sich diese gegenseitig beantworten. Damit wäre allen geholfen und wir können besser erkennen, wo noch Nachhol- bzw. Erläuterungsbedarf bei den meisten besteht. Bei Bedarf beantworten die Lehrenden die Fragen natürlich.

Planung

Nachfolgend der vorläufige Wochenplan (wird eventuell angepasst).

Woche Themen (Vorlesung) Übung Aufgabe Abgabe Aufgabe bis
1. 07.-11.10.2025 Organisatorisches, Algorithmen und Erstes Programm Übung 0 - -
2. 14.-18.10.2025 Variablen und Datentypen Übung 1 - -
3. 21.-25.10.2025 Operatoren und Ausdrücke Übung 2 - -
4. 28.-01.11.2025 Methoden und Methodenstack Übung 2a - -
5. 04.-08.11.2025 Selektion (if) und Iteration (for) Übung 3 Aufgabe 1 22.11.2025
6. 11.-15.11.2025 Iteration (while) und Methodenstack Übung 4 Aufgabe 2 29.11.2025
7. 18.-22.11.2025 Klassen und Objekte, Konstruktoren, this Übung 5 Aufgabe 3 06.12.2025
8. 25.-29.11.2025 Eigene Datentypen, Rückgabe von Objekten und Leben der Objekte Übung 6 Aufgabe 4 13.12.2025
9. 02.-06.12.2025 Vererbung, Object und Polymorphie Übung 7 Aufgabe 5 20.12.2025
10. 09.-13.12.2025 Arrays Übung 8 Aufgabe 6 03.01.2026
11. 16.-20.12.2025 Algorithmen über Arrays Übung 9 Aufgabe 7 10.01.2026
 
12. 06.-10.01.2026 Sortieren von Arrays Übung 10 Aufgabe 8 17.01.2026
13. 13.-17.01.2026 Suchen in Arrays Übung 11 Probeklausuren -
14. 20.-24.01.2026 JavaDoc Übung 12 Probeklausuren -
15. 27.-31.01.2026 Wiederholung, Klausurvorbereitung Probeklausuren -
16. 03.02.2026 09.45-11.30 Uhr Klausur 1.PZ - -
16. 24.03.2026 09.45-11.30 Uhr Klausur 2.PZ - -

Code aus der Vorlesung

Vorlesung String, print(), println()
package vorlesungen.vorl1014;

public class Vorlesung1014 
{

    public static void main(String[] args) 
    {
        // hier kann ein Zeilenkommentar stehen

        /*
         * Blockkommentar
         * in jeder Zeile
         * kann irgendetwas
         * stehen
         */

        String wort;                    // Deklaration
        wort = "Hallo!";                // Wertzuweisung
        System.out.println(wort);       // Ausgabe des Wertes von wort
        wort = "FIW";                   // neuer Wert
        System.out.println(wort);       // Ausgabe des (neuen) Wertes von wort


        System.out.print("hallo1");     // kein Zeilenumbruch
        System.out.println();           // nur Zeilenumbruch
        System.out.println();           // Leerzeile
        System.out.print("hallo2");     // 
        System.out.println();
        System.out.println("hallo3");   // Ausgabe mit Zeilenumbruch


    }

}

Hinweise zur Klausur

  • Es stehen immer ein Mac-Labor (z.B. 624) und ein Windows-Labor (z.B. 625) zur Verfügung.
  • Wenn die Klausur auf 9:45 Uhr angesetzt ist, werden die Aufgabenblätter ca. 9:35 Uhr ausgeteilt, so dass um ca. 9:40 Uhr mit dem Programmieren begonnen werden kann. Seien Sie am besten spätestens eine halbe Stunde vor dem offiziellen Beginn in dem Labor Ihrer Wahl.
  • Sie können sich vorab schon ein Package klausur erstellen und darin eine Programmklasse mit main-Methode. Probieren Sie auch schonmal mindestens eine Ausgabe auf die Konsole, damit Sie wissen, ob alles funktioniert.
  • Sie können sich in Ihren Workspace gerne allen Ihren Code importieren, den Sie im Laufe des Semesters erzeugt haben (üben Sie den Import dann am besten vorher - Sie können sich nicht sicher sein, dass Sie an dem Rechner die Klausur schreiben können, an dem Sie den Import geübt haben).
  • Sie dürfen beliebig viele selbstbeschriebene Seiten mit in die Klausur bringen.
  • Es ist nicht gestattet:
    • den eigenen Rechner zu verwenden (gar nicht mitbringen oder auspacken)
    • das Handy zu verwenden (gar nicht mitbringen oder auspacken)
    • im Web zu browsen
    • Kommunikation mit anderen oder mit KI-Tools
  • Wichtig!
    • Mit Teilnahme an der Klausur gestatten Sie uns, nachträglich die Access-Logs der Rechner im Labor zu überprüfen!
    • Bereits geöffnete Programme oder Tabs (selbst, wenn Sie unbenutzt sind), die eine Kommunikation mit anderen (z.B. E-Mail, Chats, KI, ...) ermöglichen, führen zum Ausschluss aus der Klausur.
  • Sollte sich herausstellen, dass 2 Labore nicht genügen, weichen wir auf ein drittes Labor aus (Windows). Deswegen ist es wichtig, dass Sie spätestens eine halbe Stunde vor Beginn vor Ort sind.
  • Bitte beachten Sie auch, dass wir nicht beim Hochladen der Lösung in Moodle unterstützen können. Das haben Sie für die Aufgaben genügend geübt. Wichtig ist, dass Sie wissen, wo Ihr workspace auf dem Rechner ist, damit Sie von dort aus hochladen können.