Lehrzeit

Schule & Informatik

Monat: Juli 2013

Programmieraufgabe 54

Seit kurzem gibt es bei dem Bäcker gegenüber unserer Schule die Möglichkeiten Punkte zu sammeln. Immer, wenn man ein Eis (?) kauft, bekommt man einen Punkt. Hat man 10 Punkte zusammen, gibt es ein Eis umsonst.

Jetzt ist das nichts besonderes, wenn es sich hier wie üblich um Karten handeln würde. Es handelt sich aber um die digitale Version. Der Ablauf sieht folgendermaßen aus:

  1. App herunterladen
  2. Code des Geschäftes eingeben – man kann mit der App auch Punkte von verschiedenen Geschäften eingeben.
  3. Bei jedem Eiskauf hält die Verkäuferin eine laminierte Unterlage mit einem QR-Code hoch, der mit der App gescannt wird. Man hat dann einen Punkt gesammelt.

Es ergeben sich somit folgende mögliche Aufgaben, die sich zum Beispiel auch mit dem App-Inventor vom MIT fürs Android-Handies umsetzen lassen:

Aufgabe 1 (App-Version, 10./11. Klasse)

Erstelle eine App, mit der QR-Codes eingelesen und gezählt werden können. Bei 10 Punkte bekommt man eine Nachricht.

Aufgabe 2 (Java/Python/…-Version, App-Version, 11. Klasse)

Erstelle ein Programm, mit dem Punkte eines Geschäftes zählen kann. Jeder Punkt soll dabei durch das Logo der Geschäfts dargestellt sein. Ab einem bestimmten Wert bekommt man eine Nachricht.

Ziel der zweiten Aufgabe ist es, die Schüler in die Situation einer Software-Firma zu versetzen. Man hat eine Produkt-Idee, die man nun an verschieden Firmen verkaufen möchte und damti ohne viele Aufwand personalisierbar machen möchte. Dabei kann man wunderbar nochmal über die Vorteile von Entwurfsmustern, hier vor allem MVC, sprechen.

Wie leicht festzustellen war, ist der Ablauf der Original-App nicht sehr sinnvoll. Fotografiert ein Schüler den QR-Code statt ihn nur zu scannen, könne alle Mitschüler den QR-Code von seinem Handy direkt scannen. Es gibt zwar eine Beschränkung auf maximal zwei QR-Codes pro Tag, aber pro Woche ein Eis umsonst ist ja auch nicht schlecht. Später wurde dann noch festgestellt, dass die Anzahl der QR-Codes in einer einfachen Text-Datei gespeichert werden. Also wurde die Text-Datei von Hand geändert und schon hat man sein Eis. Somit ergibt sich folgende neue Aufgabe:

Aufgabe 3 (12. Klasse)

Entwerfe eine App zu obiger Situation (Erweitertes Klassendiagramm, Sequenzdiagramm, ..) die verhindert, dass ein Kunde Punkte sammeln kann ohne ein Produkt zu kaufen.

Die Aufgabe ist gar nicht so einfach zu lösen. Meine Schüler hatten unterschiedliche Ansätze, die meist auf recht komplizierten Client-Server-Ansätzen basierten, die gar nicht sinnvoll zu realisieren wären.

 

Programmieraufgabe 53

Zum Ende des Schuljahres mache ich ganz gerne übergreifende und anwendungsbezogene Aufgaben. So auch in Informatik.

Aufgefallen ist mir die Aufgabe beim wöchentlichen Einkauf im Supermarkt vor dem Keksregal. Viele Kekse einer Firma kommen in unterschiedlichen Packungen vor: Reinpackungen mit nur einer Sorte Keks, Mischpackunge mit Keksen ohne/mit Schokolade, Auslese, usw. Auf der Rückseite wird dann die Zutatenliste gedruckt, wobei die Zutaten in fallender Reihenfolge der Häufigkeit/Menge genannnt werden. Und das schreibt doch mit Sicherheit keiner von Hand. Das muss sich doch aus den Rezepten herauslesen lassen, oder? Und damit sind wir bei der…

Aufgabe
Eine Firma stellt Kekse her, wobei jeder Kekse (Name) aus genau bekannten Zutatenmengen (Butter 3g, Zucker 3g, Mehl 2g, Schokolade 0g,…) besteht. Jeder Keks kann in verschiedenen Packungen (Auslese, Schokokekse,…) in verschiedenen Mengen vorkommen.

Erstelle eine Datenbank zur Verwaltung inklusive SQL-Abfrage, die alle Zutaten einer Packung (absteigend) liefert.

Ergänzend kann man noch Formulare zur Eingabe und Berichte als Packungsetiketten machen lassen. Da es sich jeweils um n-m-Beziehungen handelt, sind die Formulare nicht trivial. Eine Anleitung, wie sich n-m-Beziehungen umsetzen lassen, findet sich unter hier.

Nicht zu vergessen ein paar Kekspackungen als Anschauungsobjekt und Motivator.

© 2017 Lehrzeit

Theme von Anders NorénHoch ↑