Programmieraufgabe 84

Nachdem die letzten Aufgaben zum Thema Java waren, kommt jetzt mal wieder was zu Datenbanken.

Aufgabe

Erstelle eine Datenbank zur zufälligen Erzeugung von Essensplänen für eine Familie.

Details:

  1. Es gibt nur Mittag- und Abendessen
  2. Jede Essensvorschlag kann Mittags oder Abends auftauchen – auch doppelt (das ist einfacher, kann aber auch noch erzwungen werden)
  3. Nicht jedes Essen kann zu jedem beliebigen Zeitpunkt auftauchen.
    Wenn jemand mit Laktosintoleranz mal wegen des Nachmittagsunterrichts fehlt, kann es für den Rest Milchreis geben.
  4. Es muss die ganze Woche (Mo-So) abgedeckt werden.
  5. Die Datenbank muss mindestens die 2. Normalform erfüllen.

Die Angabe bzgl. des Schemas sind absichtlich unscharf definiert, um so eine größere Bandbreite an Lösungen zu erhalten.

Um zufällig einen Eintrag auszuwählen, kann man folgendes Konstrukt verwenden:

   SELECT datensatz FROM tabelle ORDER BY RAND() LIMIT 1

Das Projekt lasse ich in OpenOffice erstellen und es muss am Ende ein Bericht mit einem fertigen Essensplan erzeugt werden können. Weiter erwarte ich von meinen Schülern, ein schönes und sinnvoll gestaltetes Formular zum Eingeben weiteren Essenvorschläge.

Informatikaufgabe 82

Vor kurzem erhielt ich per Email folgende Frage, die ich hier nur verkürzt und sinngemäß darstellen möchte:

Ich habe 53 Spieler, die paarweise gegeneinander spielen sollen. Nach Ihrer Internetseite sind das 1378 Paarungen, so dass am Ende jeder gegen jeden mal gespielt hat. Jetzt sollen an jedem Tag jeweils die Paarungen so gebildet werden, dass es zu keinen Dopplungen kommt.

Jetzt kenne ich aus der 11. Klasse Informatik nur eine mögliche Lösung für ein KO-Spielsystem, die ich zunächst als Antwort zurückschickte:

Sie mischen alle Teilnehmer zufällig (das ginge z.B. auch mit Excel und einer Liste). Dann ziehen Sie von vorne (Kopf der Warteschlange) immer zwei aufeinanderfolgende Karten. Das wäre das erste Paar. Dann die nächsten zwei etc. Der Gewinner einer Paarung wird jeweils wieder unter den hinten an die Warteschlange angehängt So reduzieren sich die Karten schrittweise bis ein Gewinner feststeht.

Was aber gemeint war, war ein sogenanntes Rundenturnier (Round-Robin). Da die Organisation dabei gar nicht so einfach ist (z.B. durch eine beschränkte Anzahl an Plätzen wie bei Tennisturnieren) kann eine Lösung relativ kompliziert werden. Zum Glück hat sich jemand schon einen Kopf gemacht und die Internetseite turniereditor.de geschaffen. Hier lassen sich schonmal solche Rundenturniere auswerten. Auch die Internetseite www.oxfordcroquet.com/manage/roundrobin/ ermöglicht eine solche Organisation. Aber wie programmiert man so etwas?

Hierzu bedient man sich des Scheduling-Algorithmus. Dieser läuft wie folgt ab: Angenommen alle Spielernamen stünden auf Karten. Lege alle Karten so in zwei Reihen, dass in der oberen und unteren Reihe genau gleich viele Karten liegen. Bei einer ungeraden Anzahl wird ein Joker ergänzt. Der entsprechende Spielpartner hätte dann quasi frei. Bei 10 Spielern (A bis J) ergäbe sich folgendes Bild:

A-B-C-D-E
F-G-H-I-J

Hiermit ergeben sich als erste Paarung A-F, B-G, C-H, D-I, E-J. Für die weiteren Paarungen bleibt A an der Position fest und alle anderen Karten werden im Uhrzeigersinn um 1 weiter geschoben

A-F-B-C-D
G-H-I-J-E

Die neuen Paarungen wären dann A-G, F-H, B-I, C-J und D-E. Das macht man solange bis die Ausgangssituation wieder hergestellt ist.

Damit wäre auch die Programmieraufgabe klar:

Programmieraufgabe

Implementiere den oben dargestellten Scheduling-Algorithmus für ein Round-Robin-System.

 

Das Leben ist nicht wie eine Schachtel Pralinen…

sondern eher wie die Gurkenauswahl im Supermarkt:

gurken

Man kann eigentlich immer nur das Falsche kaufen, oder nicht? Die Gurken der anderen Firma sind doch bestimmt leckerer. Oder billiger. Oder beides.

Und nicht nur bei den Gurken ist das so:

  • Welche Hose soll ich kaufen? Welches Oberteil? Ich würde doch in dem anderen Teil bestimmt besser aussehen!
  • Welches Auto? Welches Fahrrad? Welches Skateboard?
  • Welches Bier? Das Allerweltsbier aus der Großbrauerei? Oder doch eines aus einer neuen Craft-Brauerei?
  • Welche Marmelade? Erdbeer von dieser oder von jener Firma? Oder doch einfach wieder Nutella?
  • Soll ich meinen Partner heiraten, oder nicht? Vielleicht gibt es ja noch besser passende.
  • Soll ich hier in ziehen oder besser dorthin?
  • Soll ich vegetarisch essen? Oder vegan? Oder paleo?
  • Soll ich ins Fitnessstudio? Oder doch Freeletics machen? Oder doch Crossfit?

Und in Bezug auf die Schule:

  • Welche Kurse soll ich in der Q-Phase der Oberstufe belegen? Tanzen oder Turnen oder Leichtathletik – ich kann doch alles drei nicht!
  • Über welches Thema soll ich meine Seminararbeit schreiben? Und was, wenn das andere Thema eigentlich viel besser wäre?
  • Was soll ich später studieren? Was damit werden? Und was wenn ich arbeitslos werde?

Gerade die letzte Frage beschäftigt mich in meinem aktuell dritten P-Seminar wieder und ich tue mich immer schwerer meinen Schüler zu etwas zu raten. Zum Beispiel an der  TUM. Dort gibt es allein 4 Bachelorstudiengänge im Fach Informatik (Informatik, Wirtsschaftinformatik, Bioinformatik, Games Engineering) und daran schließen sich noch 10 Masterstudiengänge an. Das ergibt theoretisch 40 Kombinationen plus den Lehramtsstudiengang. Und da habe ich gerade mal eine einzige Uni angeschaut. Wenn da jetzt noch Physik als Möglichkeit im Raum steht, wird es schnell unüberschaubar.

Manchen mag diese Vielfalt als Paradies vorkommen, aber wenn man zwingend eine Entscheidung treffen muss, dann kann diese Vielzahl einen schnell überfordern. Genauso wie bei den Gurken:

  • Woher soll ich wissen, ob es die richtigen/leckeren sind?
  • Und wenn ich eine Entscheidung für eine Sorte getroffen habe und die Gurken schmecken mir auch prima, woher weiß ich dann, dass anderen Gurken nicht noch besser wären?

Man hat eigentlich nie das Gefühl, dass man sich richtig entschieden hat, denn aufgrund der Auswahl könnte es ja vielleicht immer noch was besseres geben. Für das Studium würde das heißen:

  • Selbst wenn ich mich für einen Studiengang entschieden habe und merke, dass er mir auch gefällt und ich Erfolg habe. Woher weiß ich dann, dass nicht ein anderer Studiengang oder Beruf mir noch besser gefallen würde und ich noch mehr Erfolg haben würde?

Am Ende bleibt nie das Gefühl, dass man die richtige Entscheidung getroffen hat. Immer bleibt das Gefühl, dass doch noch mehr gehen könnte. Also rennt man los, kauft “How to be happy in 10 easy steps”-Bücher nur um am Ende wieder dazustehen und zu denken “Vielleicht gibt es ein Buch, dass mir noch besser hilft.” Ein Kreislauf, der nie aufhört und am Ende zum

Burnout durch Sinnsuche

führt, wie ich es mal irgendwo gelesen habe.

Aber wie komme ich aus diesem Kreislauf heraus? Aus diesem Gefühl “Es könnte doch noch was besseres geben?”

Ich weiß es leider auch nicht. Aber ich habe ein paar wenige Ansätze, die mir manchmal helfen:

  • Ich gehe nicht in den Riesen-Mega-Supermarkt, sondern in den kleinen (Bio-)Laden nebenan. Da gibt es nicht soviel Auswahl und ich kann im Laufe der Zeit wirklich das Gefühl bekommen “das für mich richtige Produkt” gekauft zu haben.
  • Ich überlege mir vor Anschaffungen, an welchen “messbaren” Merkmalen ich einen für mich guten Kauf erkennen kann. Bei Kleidung können das Farbe, Sitz, Stil sein. Bei Autos der Verbrauch, der Endpreis, die Farbe, ….
  • Beim Studiengang ließe sich die Auswahl dadurch vielleicht einschränken, dass man zunächst erstmal keinen spezialisierten Studiengang (z.B. Games Engineering) belegt, sondern einen allgemeineren Studiengang (z.B. Informatik). Sich später zu spezilisieren ist einfacher als sich später zu verallgemeinern.
    Und ich muss möglichst genau meine Kriterien kennen: Arbeite ich lieber alleine, kreativ, im Team, regelmäßig etc.

Ach ja. Diese ganze Ernährungsgeschichte mit vegetarisch oder vegan oder paleo oder Rohkost etc. ist doch eigentlich auch oft bloß eine künstliche Einschränkung, weil einen die Vielfalt überfordert. Denn woher soll ich wissen, ob das andere Fleisch nicht von einer noch gesünderen, glücklicheren Kuh kommt? Da lässt man es vorsichtshalber mal weg. Dann muss man sich darüber auch keine Gedanken mehr machen. Und besser für die Umwelt ist es auch noch, oder? Ist nur die Frage, ob es dann Soja von gerodeten Urwaldfelder braucht, die einem ein Schnitzel vorgaukeln. Fleisch von “Urwaldkühen” ist aber auch nicht besser. Dann doch bitte möglichst regional und saisonal kaufen.

Wobei man den Begriff “regional” auch auf die Spitze treiben kann, wie es im Fall der Schulkantine in Traunstein der Fall war. Aber ich schweife ab.

Durch die weitere Nutzung der Seite (Scrollen, Navigieren) stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen