C-Projekt Informatik II

 

Organisatorisches

Besuchen Sie diese Seite oder die undefinedHauptseite zur Veranstaltung Informatik II regelmäßig, um eventuelle Änderungen oder Hilfestellungen zu erfahren. Fragen zur C-Programmieraufgabe können an info2(at)cs.uni-duesseldorf.de gestellt werden. Beachten Sie auf die FAQ unten auf dieser Seite.

Zur Überprüfung Ihrer Lösung stellen wir voraussichtlich ab dem 02.06.2014 einige Tests bereit, die Sie offline durchführen können. Ihre Abgabe wird zusätzlich durch ein Online-Abgabesystem überprüft, welches voraussichtlich ab Mitte Juni zur Verfügung steht.

Beachten Sie bitte, dass ein ungeübter C-Programmierer zwei bis drei Wochen Vollzeit zur Lösung der Aufgabenstellung benötigt. Fangen Sie also rechtzeitig an! Lesen Sie sich dazu zunächst die komplette Aufgabenstellung durch und skizzieren Sie sich einen groben Plan zur Erstellung der Lösung, bevor Sie mit der Implementierung beginnen. Genaue Termine zur Abgabe der C-Programmieraufgabe entnehmen Sie bitte der Aufgabenstellung.

Wie auch für die Übungen gilt: die C-Programmieraufgabe ist in Einzelarbeit anzufertigen. Plagiate führen zum Ausschluss von der Veranstaltung.

Kolloquien

C-Projekte werden nur noch bis zum 13.10.2014, 23:59 Uhr, entgegengenommen. Falls ihr Test erfolgreich war können Sie sich von Dienstag (14.10), 12:00 Uhr, bis Freitag (17.10.), 09:00 Uhr, für einen Kolloqiumstermin eintragen. Die Liste wird am Büro von Janine Haas aushängen.

Aufgabenstellung

Die Nutzung einer Shell ist unter unixoiden Betriebssystemen sehr beliebt, da sie eine text- bzw. kommandozeilenbasierte Kommunikation mit dem Computersystem ermöglicht. Für Android gibt es zu diesem Zweck zahlreiche Emulatoren, die eine vereinfachte Shell bereitstellen. Ziel dieser C-Programmieraufgabe soll es sein, selbst einen Shellemulator zu implementieren.

Die genaue Beschreibung der C-Programmieraufgabe finden Sie hier als PDF-Dokument.

 

Offlinetest

Damit Sie Ihr Programm schon vor der endgültigen Abgabe überprüfen können, stellen wir Ihnen automatische Tests zur Verfügung, die Sie offline auf Ihrem Rechner durchführen können. Laden Sie sich dazu hier die Datei 'offlinetest.tar.gz' herunter und entpacken Sie diese unter Linux, zum Beispiel mit dem Konsolenbefehl 'tar xvfz offlinetest.tar.gz '.Im Ordner 'offlinetest' finden Sie eine ReadMe-Datei zur genaueren Beschreibung der Tests. Viel Erfolg!

Es ist im Allgemeinen nicht sinnvoll, Ihre Abgabe anhand der Onlinetests zu testen bevor die Offlinetests fehlerfrei durchlaufen.

Die aktuelle Version der Offlinetests ist vom 11. August 2014.

 

Abgabe und Onlinetests

Ihr fertiges Programm können Sie zur Überprüfung an undefinedinfo2-c(at)cs.uni-duesseldorf.de senden. Stellen Sie dabei sicher, dass Sie in der Betreffzeile das Stichwort "Abgabe", Ihren Vornamen, Ihren Nachnamen und Ihre Matrikelnummer, nur durch jeweils ein Komma getrennt, angeben. Konkret könnte der Betreff also folgendermaßen aussehen: Abgabe,Miriam,Müller,11223344. Außerdem sollten Sie Ihr Programm, gespeichert in der Datei hhush.c, an die Mail anhängen. Sie sollten innerhalb einer Stunde nach Abgabe Ihres Programmes eine automatisch generierte Antwort auf Ihre Abgabe erhalten, die Ihnen mitteilt, ob Ihre Abgabe den Anforderungen zum Bestehen der C-Programmieraufgabe genügt oder nicht.

Vergewissern Sie sich, dass die Angaben in der Betreffzeile und auch die Absende-Mail-Adresse mit Ihren Angaben im Info2-Abgabesystem übereinstimmen, andernfalls wird Ihre Abgabe nicht überprüft und bewertet.

 

Abgabetermine

Spätester Abgabetermin

Frühester Kolloquiumstermin

Möglicher Klausurtermin

06.07.2014, 23:59 Uhr

14. bis 18.07.2014

Haupt- und Nachklausur

07.09.2014, 23:59 Uhr

22. bis 29.09.2014

Haupt- und Nachklausur

13.10.2014, 23:59 Uhr

20. bis 24.10.2014

nur Nachklausur

 

Frequently Asked Questions

Wo soll die Historie (.hhush.histfile) gespeichert werden?

In dem Verzeichnis, in dem die Shell ausgeführt wird.

Darf Quellcode aus Büchern, etc. verwendet werden?

Fremder Quellcode darf benutzt werden, wenn dieser ausdrücklich als solcher kenntlich gemacht wird (Kommentar mit Quellenangabe). Code von Kommilitonen darf nicht übernommen werden, da die Aufgabe in Einzelarbeit zu lösen ist. Der Anteil an Eigenleistung muss zum bestehen der Aufgabe natürlich wesentlich höher sein, als der Anteil an fremden Quellcode. Fremder Quellcode, der nicht als solcher gekennzeichnet ist, gilt als Plagiat.

Welche Entwicklungsumgebung kann zur Bearbeitung der Aufgabe genutzt werden?

Zur Programmierung oder zum Debuggen kann jede beliebige Entwicklungsumgebung wie z.B. Visual Studio, Qt, Eclipse, Geany, etc. genutzt werden. Wichtig ist, dass sich Ihr Programm mit "gcc -Wall -ggdb -std=c99 -lm hhush.c -o hhush" unter Linux übersetzen lässt.

Darf die hhu-Shell temporäre Dateien erzeugen?

Die hhu-Shell darf keine temporären Dateien erzeugen oder bearbeiten. Nur die Datei ".hhush.histfile" darf eingelesen oder beschrieben werden.

Muss die hhu-Shell mehr als eine Pipe verarbeiten können?

Nein, es ist ausreichend eine Pipe verarbeiten zu können. Wichtig ist allerdings, dass die Ausgabe jedes Befehls als Eingabe für die Pipe dienen können muss.

Ist die Länge von Datei-  und Ordnernamen begrenzt?

Ja, es ist ausreichend, wenn Ihre hhu-Shell mit Datei- und Ordnernamen bis zu 256 Zeichen umgehen kann.

Was soll passieren, wenn cd kein Argument übergeben bekommt?

cd erwartet (bei uns) immer ein Argument. Die eckigen Klammern stammen aus einer alten Version unserer Aufgabenstellung und sind jetzt unnötig. Der Befehl sollte also "cd DIR" heißen.

 

 

 

Verantwortlich für den Inhalt: