Die Kiosk-App der Schülerfirma
AFB I–IIDie Schülerfirma „Pausenbrot“ möchte ihren Schulkiosk digitalisieren. Das Projekt besteht aus vier Teilen (siehe Abbildung): ① Ein Webshop, in dem man im Browser Brötchen vorbestellt. ② Ein kleiner Mikrocontroller im Kühlschrank, der jede Minute die Temperatur misst. ③ Eine Datenbank, in der Bestellungen, Produkte und Temperaturwerte gespeichert werden. ④ Eine Auswertung, die am Monatsende Verkaufszahlen als Diagramme darstellt.
- Ordne jedem der vier Teilprojekte eine geeignete Programmiersprache zu.
- Gib für die Teilprojekte ① und ② jeweils das Kriterium an, das bei deiner Wahl den Ausschlag gibt.
- Erkläre, warum die Schülerfirma nicht einfach eine einzige Sprache für das ganze Projekt verwenden kann.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
- ① Webshop: JavaScript im Browser (dazu HTML/CSS; auf dem Server z. B. PHP).
- ② Kühlschrank-Sensor: C bzw. C++ auf dem Mikrocontroller.
- ③ Datenbank: SQL.
- ④ Statistik: Python (mit Bibliotheken für Diagramme).
Andere begründete Zuordnungen (z. B. JavaScript für die Diagramme im Browser) sind möglich.
Erwartungshorizont zu Aufgabe b)
① Plattform: Im Browser läuft JavaScript — andere Sprachen kommen dort praktisch nicht infrage.
② Plattform bzw. Geschwindigkeit/Speicher: Der Mikrocontroller hat wenig Speicher und Rechenleistung, deshalb braucht man schlanken, kompilierten Code (C/C++).
Erwartungshorizont zu Aufgabe c)
Jede Plattform versteht nur bestimmte Sprachen: Der Browser führt JavaScript aus, der Mikrocontroller braucht kompilierten Maschinencode aus z. B. C, und die Datenbank wird mit SQL abgefragt. Außerdem hat jede Sprache in ihrem Gebiet die besten Werkzeuge und Bibliotheken. Große Projekte bestehen deshalb fast immer aus mehreren Sprachen, die über gemeinsame Daten zusammenarbeiten.
Primzahlen: schnell geschrieben oder schnell gerechnet?
AFB II–IIIDie Mathe-AG sucht alle Primzahlzwillinge bis 50 Millionen. Vier Gruppen haben dafür dasselbe Verfahren in verschiedenen Sprachen programmiert. Sie haben notiert, wie lange sie zum Schreiben und Testen gebraucht haben (Entwicklungszeit) und wie lange ein Lauf des fertigen Programms dauert (Laufzeit).
Das Programm soll ein Jahr lang jede Woche einmal laufen, also 52-mal. Jonas sagt: „C ist 30-mal schneller als Python — wir müssen C nehmen.“
- Berechne die Laufzeitfaktoren von Java, JavaScript und Python.
- Vergleiche die Gesamtzeit (Entwicklungszeit + 52 Läufe) der C-Gruppe mit der der Python-Gruppe.
- Ermittle, ab wie vielen Läufen die C-Version insgesamt weniger Zeit kostet als die Python-Version.
- Nimm Stellung zu Jonas’ Aussage.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Hinweis zu Aufgabe d)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Java: 2,4 s : 1,2 s = 2. JavaScript: 3,0 s : 1,2 s = 2,5. Python: 36 s : 1,2 s = 30.
Python braucht für einen Lauf also 30-mal so lange wie C.
Erwartungshorizont zu Aufgabe b)
C: 5 h + 52 · 1,2 s = 18 000 s + 62,4 s = 18 062,4 s ≈ 5 h 1 min.
Python: 1,5 h + 52 · 36 s = 5400 s + 1872 s = 7272 s ≈ 2 h 1 min.
Die Python-Gruppe ist insgesamt etwa 3 Stunden schneller fertig — obwohl jeder einzelne Lauf 30-mal so lange dauert.
Erwartungshorizont zu Aufgabe c)
Mehraufwand von C beim Schreiben: 5 h − 1,5 h = 3,5 h = 12 600 s. Ersparnis pro Lauf: 36 s − 1,2 s = 34,8 s.
12 600 : 34,8 ≈ 362,1. Ab dem 363. Lauf ist die C-Version insgesamt schneller. Bei einem Lauf pro Woche wäre das erst nach rund 7 Jahren der Fall.
Erwartungshorizont zu Aufgabe d)
Jonas’ Zahl stimmt (Faktor 30), seine Folgerung aber nicht: Er betrachtet nur die Laufzeit und übersieht die Entwicklungszeit. Bei 52 Läufen im Jahr ist Python klar im Vorteil (b), C lohnt sich erst ab 363 Läufen (c). Jonas hätte recht, wenn das Programm sehr oft oder mit viel größeren Zahlen laufen müsste oder wenn Ergebnisse sofort vorliegen müssten. Für die AG ist Python die bessere Wahl; es gibt keine Sprache, die immer die beste ist.
