Vollständige Version anzeigen : Quiz #1 - Aufgabe #1 - Datenverwaltung


Alex²
04.12.2012, 18:33

Vorwort

Wir möchten jeden ermutigen sich mit den Aufgaben zu beschäftigen und auch unfertige Lösungen zu den Teilaufgaben 2 bzw. 3 einzusenden. Das Ziel besteht darin möglichst viele Ansätze zu haben über die wir uns im Anschluss austauschen können.

terraNova und ich haben uns Mühe gegeben die Aufgabenstellung für jeden interessant und lösbar zu gestalten. Aus diesem Grund ist die Aufgabe in 3 Teile aufgeteilt worden, welche sich in ihrer Schwierigkeit steigern. "Vorausgesetzt" wird die Lösung der ersten Teilaufgabe.

Konstruktive Kritik, Anmerkungen und Fragen sind erwünscht, besonders da dies die erste Aufgabe ist.

Diese Aufgabenstellung ist, wie aus den Regeln ersichtlich, bis zum 25;12;2012 18:00 gültig. Danach sollten keine Lösungen mehr eingereicht werden.

Aufgabenstellung

Es geht im Grunde um die Verwaltung von Daten. Im Verlauf der verschiedenen Teilaufgaben wird versucht sich einem Datenbanksystem zu nähern.

Teil 1

Dieser Teil der Aufgabenstellung ist elementar und sollte erfüllt werden.

Das Verwalten der vorgegebenen Daten. Dies umfasst Anlegen, Entfernen und Bearbeiten von Datensätzen. Genannte Funktionalitäten sollten mindestens über eine textbasierte Oberfläche abrufbar sein.

Diese Datensätze könnten sich in einer Tabelle, welche sich wiederum in einer Datenbank befindet, befinden (Datenbankname/Tabellenname;txt) im CSV-Format vorliegen, was jedoch euch vorbehalten ist. Gefordert sind in dieser Aufgabe nur Zeicheketten.

Die Demodaten mit denen das Programm auf jeden Fall laufen sollte:

RR-User;csv
User;Posts;Titel;Power
terraNova;1;240;Ehrenmitglied;23
Alex²;2;881;The Madness;49


Die Daten müssen NICHT in diesem Format gespeichert werden.

Ihr könnt beliebige Datensätze hinzufügen.


Teil 2

Nun geht es darum, den bestehenden Code so zu erweitern, dass er mit allen beliebigen Daten funktioniert. Die Daten sollen wie in einem Datenbanksystem verwaltet werden können. Also in Datenbanken und Tabellen organisiert werden. Der Einfachheit halber sind alle Daten als Zeichenketten (Strings) zu betrachten.

Teil 3

Wer noch nicht genug hat, kann sein Datenbanksystem im Bereich der folgenden Teilaufgaben erweitern:


Einen eigenen SQL-Dialekt schreiben (Parser) Geschwindigkeitsoptimierung (Indexing, Suchalgorythem etc;) Datentypen implementieren Externer Zugriff auf das Datenbanksystem (TCP z;B;)


Wir wünschen euch viel Erfolg!

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
terraNova
14.12.2012, 18:09

Wie siehts aus?
Kommt ihr mit der Frist zurecht oder gibt es sonst irgendwelche Probleme?


Murdoc
14.12.2012, 18:57

Wird sehr knapp, lieber wäre mir noch eine Woche extra.


Alex²
15.12.2012, 13:30

Wird sehr knapp, lieber wäre mir noch eine Woche extra;

Mir ehrlich gesagt auch. Hatte die Woche viel zu tun. Vielleicht sollten wir darüber abstimmen?


MasterJulian
15.12.2012, 16:22

Ich wäre auch für eine extra Woche. Ich hatte leider sehr viel anderes zu tun.


terraNova
15.12.2012, 20:37

Ok. Die Frist wird für diese Aufgabe um eine Woche verlängert.


xolox
16.12.2012, 19:07

Sehr gut.. Die ersten beiden Teile sind soweit fertig (ein paar kleine Fehler sind glaube ich noch drin) aber bin noch an einem SQL-Parser dran.

Der braucht noch ein wenig Zeit :)

Update:
;;0;xup~in/exec/ximg;php?fid=78003356

Bearbeiten fehlt noch, sonst siehts gut aus :)


xolox
20.12.2012, 19:26

Ich habe fertig :)

Leider werd ich wohl bis zum Jahresende kaum noch hier online sein, deswegen hab ich jetzt schon "abgegeben".

Ich bin gespannt wer noch so alles Lösungen einreicht und wie die aussehen :)


Blackdaemon
28.12.2012, 16:18

hat xolox also gewonnen? hat ja sonst niemand abgegeben oder sehe ich das falsch?


Thrake7
29.12.2012, 23:52

hat xolox also gewonnen? hat ja sonst niemand abgegeben oder sehe ich das falsch?

Ich wusste gar nicht, dass man da gewinnen oder verlieren kann ;)
Aber trotzdem interessiert es mich, ob xolox der einzige war.


osiris
30.12.2012, 13:25

Es hat per Thread tatsächlich nur einer abgegeben, nämlich xolox.

Nachdem die erste Aufgabe quasi die Grundaufgabe ist, wird noch entschieden, wie wir jetzt weiter machen.


powernator
30.12.2012, 14:17

Ich würde schon noch bei anderen Aufgaben mitmachen (nicht, dass man jetzt die eine Abgabe mit fehlendem Interesse interpretiert), hatte bei der ersten Aufgabe nur nicht genügend Zeit, um es zufriedenstellend zu machen


Blackdaemon
30.12.2012, 18:04

Ich wusste gar nicht, dass man da gewinnen oder verlieren kann ;)
Aber trotzdem interessiert es mich, ob xolox der einzige war;


gut, dass du mich hast =)

1. Sollten nach 10 Aufgaben (Zahl der Aufgaben kann abweichen, je nach Teilnehmerzahl) immernoch keine Gewinner ermittelt werden können, so werden noch weiter Aufgaben gestellt. Diese Aufgaben werden natürlich weiterhin an Schwierigkeit zunehmen. Auch die Abgabefrist wird sich verkürzen;


Alex²
30.12.2012, 18:25

gut, dass du mich hast =)

Es ist so, dass es keinen Gewinner geben wird. Der Fokus liegt darauf, die einzelnen Lösungen zu diskutieren und voneinander zu lernen. Es gibt ausschließlich Punkte für die Teilnahme bzw. das reine erfüllen der verschiedenen Unteraufgaben.

Der von dir zitierte Ausschnitt bezieht sich auf die Gesamtpunktzahl. Nicht auf die Bewertung der einzelnen Aufgaben, sondern die Aufrechnung aller Aufgaben. Das hier ist ja nur die Aufgabe #1

Die Abgabe ist ein wenig ungünstig in die Feiertage gefallen. Wir werden die nächsten Tage mal schauen, wer noch was abzugeben hat und die ganze Sache bezüglich der Frist etwas lockerer sehen.


Blackdaemon
30.12.2012, 18:28

oh, na dann walte deines amtes und editier mal fleißig :) danke für die aufklärung!

viel zu diskutieren gibts ja nicht bei den ganzen abgaben. lag aber vermutlich auch an der aufgabe, dass nicht so viele mitgemacht haben. wie auch immer... bin gespannt was in den nächsten tagen noch so alles eintrudelt.

ist ja nicht so, dass die genannten feiertage jedes jahr am selben datum sind und das nicht absehbar gewesen wäre ;)

edit:

achso, dann ist das system ja noch beschis*ener als ich dachte^^ sorry


Alex²
30.12.2012, 18:31

oh, na dann walte deines amtes und editier mal fleißig :) danke für die aufklärung!

Da muss nichts editiert werden. Für eine Aufgabe allein wird es keinen Gewinner geben. Der Gewinner ist im Endeffekt derjenige mit der höchsten Aktivität nach 10 Aufgaben. Die Qualität der einzelnen Lösungen wird hierbei nicht beachtet, solange die Aufgabenstellung erfüllt wurde.

ist ja nicht so, dass die genannten feiertage jedes jahr am selben datum sind und das nicht absehbar gewesen wäre ;)

Behauptet auch keiner. Ich sehe trotzdem keinen Grund, warum sich hier irgendjemand Stress machen sollte.

achso, dann ist das system ja noch beschis*ener als ich dachte^^ sorry


Und ein besseres System würde wie aussehen? Es ist einfach unglaublich schwer Lösungen in verschiedenen Sprachen gegeneinander zu bewerten. Dazu kommt, dass man sonst zu schnell Neulinge bzw. weniger starker Programmierer ausschließt.

Wenn man sich keine Gedanken über diese Punkte gemacht hat, könnte man natürlich zu deinem Schluss kommen.


Murdoc
01.01.2013, 15:57

Ich wurde leider nicht fertig, da ich es mit C programmieren wollte und den Aufwand unterschätzt hatte.
Mit PHP hätte ich vielleicht ne Woche gebraucht gebraucht, aber das ist ja nicht Sinn der Sache :D

Beim nächsten mal dann :)

Ich lade die Tage mein unfertiges Projekt bei Github hoch wenn jemand Interesse hat.

Folgendes habe ich fertig:
- JSON Parser (encode/decode) + dazugehörige Hashmap/LinkedList Kombination
- SQL Scanner/Parser (AST Generator mit Unterstützung gängiger Ausdrücke/Arithmetik)

Hört sich nach wenig an, doch alleine die beiden Komponenten haben zusammen ~3000 Zeilen Code xD - alles per Hand geschrieben versteht sich.

Die Idee war eine JSON-Datenbank Engine.


Alex²
01.01.2013, 19:22

[..;]

:thumbsup:

Sei doch bitte so freundlich und poste es auch hier. Dann haben wir schon mal mindestens 2 Projekte


terraNova
01.01.2013, 19:31

Ja, was soll man dazu sagen? Es ist schon wirklich mager ausgefallen. Ich hätte gedacht, dass sich mehrere Leute daran beteiligen, da die Umfrage ja recht positiv ausfiel. Woran lag es? Unpassender Zeitraum oder lag es an der Aufgabe an sich?

Nächste Woche wird eine kleinere Aufgabe gestellt, die man relativ einfach lösen kann. Ich hoffe dort fällt die Beteiligung größer aus. Punktemäßig müsste man natürlich bei 0 anfangen, auch wenn mir xolox da ein bisschen leid tut, weil er sich die Mühe gemacht hat die Aufgabe ordentlich zu lösen.

Blackdeamon: Da Du ein Meister der Fäkalsprache zu sein scheinst, kannst Du doch auch gerne mal ein besseres System herausposaunen. Wir sind gerne bereit das System zu verbessern, sollte jemand konkrete Vorschläge machen. Soetwas brauchen wir jedoch nicht und sei dir gewiss, soetwas werden wir auch nicht dulden.


darkside2k4
01.01.2013, 19:47

Also ich habe nicht mitgemacht weil die Aufgabe mich gar nicht an spricht. Zudem würde ich mit C/C++ Arbeiten und wenn man dort keine weiteren Libs benutzen darf ist es gegen anderen Sprachen unfair.


terraNova
01.01.2013, 19:56

Also ich habe nicht mitgemacht weil die Aufgabe mich gar nicht an spricht. Zudem würde ich mit C/C++ Arbeiten und wenn man dort keine weiteren Libs benutzen darf ist es gegen anderen Sprachen unfair;

Danke für die Rückmeldung. Das Problem an Bibliotheken ist, dass es für viele einfach sehr schwer nachvollziehbar ist, wie etwas funktioniert, vorallem, wenn jeder andere Bibliotheken für alles benutzt. Etwas, was man hier machen könnte, wäre, alle großen und gängigen Bibliotheken (Für C/C++ wäre das z;B. boost) zu erlauben. Kleinere und unbekannte Bibliotheken müsste man absprechen. Die Aufgaben, die hier gestellt werden, sollen ja auch durch den Teilnehmer und nicht durch eine Bibliothek gelöst werden.


N0S
01.01.2013, 20:05

Die Aufgabe war einfach viel zu schlecht gestellt. Die Aufgabe sollte viel klarer gestellt sein mit einem genauen Ziel. Für diese Aufgabe 1 kann man 10 oder 1000 Stunden investieren und das darf natürlich nicht sein.

Als weiterer Tipp: Macht Aufgaben die wenigstens ein bisschen sinnvoll sind. Außerdem sollte es natürlich einen Gewinner bei jeder Aufgabe geben.

Stichwort RR Loader.... Vielleicht könnt ihr die Entwicklung in Kontest-Aufgaben stückeln... z. B. Warum lässt ihr nicht ein neues Containerformat mit so einem Kontest entwickeln?


terraNova
01.01.2013, 20:13

Die Aufgabe war einfach viel zu schlecht gestellt. Die Aufgabe sollte viel klarer gestellt sein mit einem genauen Ziel. Für diese Aufgabe 1 kann man 10 oder 1000 Stunden investieren und das darf natürlich nicht sein.

Als weiterer Tipp: Macht Aufgaben die wenigstens ein bisschen sinnvoll sind. Außerdem sollte es natürlich einen Gewinner bei jeder Aufgabe geben.

Stichwort RR Loader.... Vielleicht könnt ihr die Entwicklung in Kontest-Aufgaben stückeln... z. B. Warum lässt ihr nicht ein neues Containerformat mit so einem Kontest entwickeln?


Die Aufgabe an sich war eventuell nicht die beste, die man hätte stellen können, doch war sie im 1. Aufgabenbereich (Die Hauptaufgabe an sich) genau genug gestellt. Es wurde alles wichtige genannt, damit der Teilnehmer die Aufgabe lösen kann. Die weiteren Zusatzaufgaben hätte man noch ausschmücken können, ja.

Den Loader in einem Contest zu entwickeln halte ich für keine gute Idee. Das ist etwas, was man abspricht und die Aufgaben entsprechend verteilt mit strikten Vorgaben, das ist nicht Sinn und Zweck dieses Contests. Du kannst das natürlich gerne so veranstalten, es muss ja nicht zwingend nur ein Contest laufen.


Alex²
01.01.2013, 21:11

Also ich habe nicht mitgemacht weil die Aufgabe mich gar nicht an spricht. Zudem würde ich mit C/C++ Arbeiten und wenn man dort keine weiteren Libs benutzen darf ist es gegen anderen Sprachen unfair;

Das mit den Libraries hatten wir doch schon vor geraumer Zeit richtig gestellt. Es können durchaus Libraries genutzt werden, allerdings sollten diese keine Hauptfunktionalitäten übernehmen. Eine SQLite-Library zu nehmen und irgendetwas drum herum zu bauen würde bei dieser Aufgabe beispielsweise keinen Sinn machen.

Die Aufgabe war einfach viel zu schlecht gestellt. Die Aufgabe sollte viel klarer gestellt sein mit einem genauen Ziel. Für diese Aufgabe 1 kann man 10 oder 1000 Stunden investieren und das darf natürlich nicht sein;

Eigentlich war das genau einer der Hauptaspekte. Wir wollten damit erreichen, dass niemand Unter- bzw. Überfordert ist. Die Leute sollten sich hinsetzen und etwas entwickeln, das dann am Ende vorgestellt bzw. besprochen werden kann. Es geht nach wie vor nicht um einen direkten Vergleich.

Als weiterer Tipp: Macht Aufgaben die wenigstens ein bisschen sinnvoll sind. Außerdem sollte es natürlich einen Gewinner bei jeder Aufgabe geben;

Das mit dem Gewinner ist bei der breiten Fächerung der Fähigkeiten hier im Forum nicht möglich.
Es wäre schon schwierig genug die verschiedenen Sprachen zu berücksichtigen. Wir hatten uns ja bewusst versucht davon zu lösen.

Stichwort RR Loader.... Vielleicht könnt ihr die Entwicklung in Kontest-Aufgaben stückeln... z. B. Warum lässt ihr nicht ein neues Containerformat mit so einem Kontest entwickeln?
natürlich einen Gewinner bei jeder Aufgabe geben;


Man müsste dann schon wieder eine Sprache vorschreiben. Ich sehe keinen Weg wie man sonst die entsprechenden Teile zusammen bekommt. Das mit dem Containerformat ist prinzipiell keine schlechte Aufgabe. Du bist immer noch (wie alle anderen auch) herzlich eingeladen Aufgaben zu formulieren, welche dann bearbeitet werden können.

Ansonsten, wäre ich dir dankbar, wenn du mal konkrete Lösungsvorschläge präsentierst, anstatt ständig die selben Probleme anzusprechen.


xolox
01.01.2013, 21:51

Hallo,

ich bin aus dem Weihnachtsurlaub zurück und muss schon sagen, dass ich überrascht bin, dass kein anderer eine Lösung eingereicht hat. :shock:

Ich meine, bei der Umfrage (;board;raidrush~ws/poll;php?do=showresults&pollid=8947) haben immerhin 21 Leute gesagt, dass sie Interesse daran haben. Dazu kommen noch 16 (u;a. ich) die gesagt haben "Vielleicht. Je nach Aufgabe.;"

Der Zeitpunkt war sicherlicht nicht der Beste, da man im Dezember eigentlich immer wenig Zeit hat, aber 3-4 Wochen sollten für eine solche Aufgabe (insbesondere für die Grundversion) schon reichen. Man könnte auch halbfertige Aufgaben (z;B. die von Murdoc) einreichen. Die Lösung würde mich auch interessieren :)

Zur neuen Aufgabe:
Ich bin gespannt, ob sich das nächste Mal mehr beteiligen. Eventuell könnte man die "Ja-Sager" aus der Umfrage nochmal ins Boot holen, bzw. direkt bei der Aufgabe eine Umfrage machen, wer die Aufgabe lösen wird / lösen will. Wenn sich da schon keiner für meldet, kann man es gleich sein lassen.

Ansonsten ist es wirklich schade, dass meine Arbeit "für die Katz" war, da es 1. nichts als Vergleich gibt und 2. scheinbar im Allgemeinen wenig interesse daran besteht.

Schöne Grüße und noch frohes Neues :)
xolox


terraNova
01.01.2013, 23:51

Der Zeitpunkt war sicherlicht nicht der Beste, da man im Dezember eigentlich immer wenig Zeit hat, aber 3-4 Wochen sollten für eine solche Aufgabe (insbesondere für die Grundversion) schon reichen. Man könnte auch halbfertige Aufgaben (z;B. die von Murdoc) einreichen. Die Lösung würde mich auch interessieren :)

Sehe ich auch so. Ich denke, auch unfertiger Quelltext sollte gepostet werden. Es geht hier ja auch um den Lerneffekt. Vielleicht gibt es ja trotzdem die ein oder anderen guten Passagen oder Stellen, an denen man eventuell etwas verbessern könnte. ;)


Ähnliche Themen zu Quiz #1 - Aufgabe #1 - Datenverwaltung
  • [C] Quiz #1 - Aufgabe #2 - Rechner
    Ich habe die Aufgabe in C gelöst. Zum auswerten von mathematischen Ausdrücken habe ich den Shunting-yard Algo* genutzt, zu finden in der Datei term;c. Das Programm muss mittels -std=c99 oder -std=c11 übersetzt werden. Ein Makefile ist nicht enthalten, da ich mit für diesen Zweck PHP zu eigen m [...]

  • Quiz #1 - Aufgabe #2 - Rechner
    Vorwort Nach der letzten Aufgabe, die anscheinend wenig Anreiz geboten hat, soll nun eine - hoffentlich - interessantere Aufgabe für euch herhalten. Falls euch die Art der Aufgabe gefällt/missfällt dann lasst uns das wissen! Wie immer gelten die üblichen Regeln, welche jedoch leicht abgeände [...]

  • [Java] Aufgabe #1 - Datenverwaltung
    Hallo zusammen, Da ich bis zum 25. sonst keine Zeit mehr habe, stelle ich schon jetzt mein vor. ### Features: #### - Anlegen/Löschen von Datenbanken - Anlegen/Löschen/Leeren von Tabellen - Anlegen/Löschen/Bearbeiten von Datensätzen - Eine Art SQL zum Anlegen/Löschen/Bearbeiten/Fil [...]

  • [C] Aufgabe #1 - Datenverwaltung
    Wie in der Aufgabenstellung bereits erwähnt ist der Code unvollständig und er lässt sich im derzeitigen Stand auch nicht übersetzen. Zudem ist der SQL-Parser (inkl. Scanner) nicht wirklich sauber umgesetzt. Der JSON En/Decoder hingegen ist mit bestem Gewissen erstellt worden. Hier der Que [...]



raid-rush.ws | Imprint & Contact pr