Lade Daten...
iLearn
Cau-siegel-color-300

Aktuelles

Klausur

Die Klausur im 2. Prüfungszeitraum findet am Montag, den 14.10.2019 in den folgenden beiden Räumen statt (Raumzuordnung nach 1. Buchstaben des Nachnamens):

  • Nachnamen A - K: Olshausenstr. 40, R.201 (Alte Mensa, Hebbelhörsaal)
  • Nachnamen L - Z: Ludewig-Meyn-Str. 6, R.11 (Gr. Hörsaal PC)

Der zeitliche Ablauf ist wie folgt:

  • 8:30 - 8:40 Uhr: Einlass (wer später kommt, kann nicht mitschreiben)
  • 8:45 Uhr: Klausurbeginn
  • 10:45 Uhr: Klausurende

Klausureinsicht

Die Klausureinsicht im 2. Prüfungszeitraum findet am Freitag, den 25.10.2019 um 9:30 bis 10:30 Uhr in der Hermann-Rodewald-Str. 3, R.503 statt.

Vorlesung

Allgemeine Information zur Vorlesung finden Sie im UnivIS.

Die Folien und Quizze zur Vorlesung finden Sie im OLAT.

Übungen

Die Übungsserien werden jeweils dienstags in iLearn unter Blätter eingestellt. Die Abgabefrist ist jeweils der folgende Dienstag um 23:55 Uhr. Abgaben finden ausschließlich über iLearn statt. Schriftliche Lösungen sollten also gescannt oder fotografiert und gut leserlich als Dateiupload abgegeben werden. Die Übungsserien sollen in Kleingruppen aus jeweils 2 Studierenden bearbeitet werden.

Die Korrekturen und Punkte werden jeweils in der folgenden Woche vor Ihrem Übungstermin eingetragen, so dass Sie die Möglichkeit haben, die Bewertung in Ihrer nächsten Übung zu besprechen.

Weitere Folien und Dokumente zu den Übungen, z. B. zur Einführung in C oder Ergänzungen zu den Präsenzaufgaben, können Sie unter dem folgenden Link herunterladen (nur für Teilnehmer zugänglich):

Quizze

Die Quizze werden jeweils freitags in OLAT. unter Quiz eingestellt. Die Abgabefrist ist jeweils der folgende Dienstag um 23:55 Uhr.

Klausurzulassung

Zur Klausurzulassung dürfen nicht mehr als zwei Serien der Hausübungen und nicht mehr als zwei Serien der Quizze unentschuldigt als nicht bestanden gewertet werden. Eine Serie gilt als bestanden, wenn man mindestens 50% der Punkte erreicht. Bei Studierenden, die diese Voraussetzungen nicht erfüllen, kann der Dozent kurz nach dem Ende des Anmeldezeitraums für die Klausur im Einzelfall über die Klausurzulassung entscheiden.

Einführung in C

In der ersten Übung werden grundlegende Konzepte von C und Unterschiede zu Java vorgestellt. Einführungen in C zur Vorbereitung finden Sie z. B. unter den folgenden Links:

Hilfreiche Funktionsübersichten und Sprachreferenzen zu C finden Sie unter den folgenden Links:

Hinweise zur C-Programmierung

Entwicklungsumgebung

Entwickeln Sie Ihre C-Programme auf einem Linux-System (oder macOS) mit dem GNU C-Compiler gcc. Wenn Sie nur einen Windows-Rechner zur Verfügung haben, arbeiten Sie am besten per Fernzugriff über ThinLinc auf den Institutsrechnern.

Zur Bearbeitung der C-Programme können Sie einen beliebigen Texteditor Ihrer Wahl verwenden (möglichst mit Syntax Highlighting und Codevervollständigung), z. B. Atom, gedit oder Kate unter Linux.

Alternativ können Sie ggf. auch Online-Compiler zum Testen von Programmen verwenden, z. B.:

Kompilieren

Programme, die aus einer einzelnen Codedatei (z. B. HelloWorld.c) ohne weitere Abhängigkeiten bestehen, können unter Linux am einfachsten über die Konsole mit dem Befehl make erstellt werden, z. B.:

1
make HelloWorld

Alternativ kann der GNU C-Compiler auch direkt aufgerufen werden, z. B.:

1
gcc -o HelloWorld HelloWorld.c
  • Der Parameter -o <Dateiname> gibt dabei den Dateinamen des erstellten Executables an.
  • Verwenden Sie zusätzlich die Option -g, wenn Sie den GDB zum Debuggen verwenden möchten.

Kommentare und Ausgaben

Bei komplexeren Programmen ist es hilfreich, Funktionen, Variablen und Codeabschnitte durch einen kurzen und prägnanten Kommentar zu beschreiben (bei Funktionen sollte klar werden, was die Funktionsparameter und der Rückgabewert bedeuten), z. B.:

1
2
3
4
5
6
7
8
// Returns the number of occurences of character c in string s
int countChars(char c, char* s)
{
    ...
}

// Stores the number of characters left to encode
int charsLeft = 0;

Dadurch vereinfachen Sie uns die Korrektur von fehlerhaften Programmen, so dass Sie ggf. Teilpunkte erhalten können. Außerdem unterstützt das Kommentieren Sie dabei, Ihren Code zu strukturieren und zu überprüfen und kann so Fehler bei der Programmierung vermeiden.

Ausgaben von Werten können ebenfalls helfen, den Programmablauf nachzuvollziehen und Fehler zu finden. Ausgaben sollten aber immer klar machen, welcher Wert an welcher Stelle im Programm dargestellt wird, z. B.:

1
printf("countChars: current index i = %d\n", i);

In den Beispielprogrammen und Musterlösungen verwenden wir in der Regel Englisch für Kommentare und Ausgaben. In Ihren Abgaben können Sie aber auch Deutsch verwenden.

Aufrufhinweise

Bei Programmen, die Kommandozeilenargumente erwarten, sollten Sie immer die Anzahl der übergebenen Argumente prüfen (argc-Parameter von main) und bei falscher Anzahl einen Aufrufhinweis ausgeben und terminieren, z. B.:

1
Usage: encodeFile <input filename> <output filename>

So vermeiden Sie Speicherzugriffsfehler und der/die Benutzer/in weiß, wie das Programm aufgerufen werden muss.