MINT lernen

Welche Sprache wofür?

Zwei Textaufgaben mit Hinweisen und Erwartungshorizont zu Einsatzgebieten, Laufzeit und Entwicklungszeit.

Dein Fortschritt:
0 / 0 Aufgaben
1

Die Kiosk-App der Schülerfirma

AFB I–II

Die 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.

Teilprojekte der Kiosk-App
① WebshopWarenkorb im Browser,Bestellung abschicken ② KühlschrankMikrocontroller misstdie Temperatur ④ StatistikVerkaufszahlen alsDiagramm auswerten ③ DatenbankBestellungen, Produkte,Temperaturwerte
Pfeile zeigen, in welche Richtung die Daten fließen.
  1. Ordne jedem der vier Teilprojekte eine geeignete Programmiersprache zu.
  2. Gib für die Teilprojekte ① und ② jeweils das Kriterium an, das bei deiner Wahl den Ausschlag gibt.
  3. Erkläre, warum die Schülerfirma nicht einfach eine einzige Sprache für das ganze Projekt verwenden kann.

Hinweise

Hinweis zu Aufgabe a)
Frage dich bei jedem Teil: Wo läuft das Programm — im Browser, auf einem Chip, in der Datenbank, auf einem Rechner mit vielen Bibliotheken?
Hinweis zu Aufgabe b)
Mögliche Kriterien: Plattform, Geschwindigkeit, Sicherheit, Bibliotheken, Vorwissen.
Hinweis zu Aufgabe c)
Denke an die Plattformen: Welche Sprache versteht der Browser, welche der Mikrocontroller, welche die Datenbank?

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.

2

Primzahlen: schnell geschrieben oder schnell gerechnet?

AFB II–III

Die 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.“

Messwerte der vier Gruppen
Laufzeit pro Lauf Entwicklungszeit C 1,2 s 5 h Java 2,4 s 3 h JavaScript 3,0 s 2,5 h Python 36 s 1,5 h
Links die Laufzeit eines Laufs, rechts die Zeit zum Schreiben und Testen.
  1. Berechne die Laufzeitfaktoren von Java, JavaScript und Python.
  2. Vergleiche die Gesamtzeit (Entwicklungszeit + 52 Läufe) der C-Gruppe mit der der Python-Gruppe.
  3. Ermittle, ab wie vielen Läufen die C-Version insgesamt weniger Zeit kostet als die Python-Version.
  4. Nimm Stellung zu Jonas’ Aussage.

Hinweise

Hinweis zu Aufgabe a)
Laufzeitfaktor = t(Sprache) : t(C).
Hinweis zu Aufgabe b)
Rechne alles in dieselbe Einheit um, z. B. Sekunden: 1 h = 3600 s.
Hinweis zu Aufgabe c)
Die C-Version kostet beim Schreiben mehr Zeit, spart aber bei jedem Lauf etwas ein. Wie oft muss sie laufen, bis sich der Vorsprung aufgebraucht hat?
Hinweis zu Aufgabe d)
Beziehe dein Ergebnis aus b) und c) ein. Wann hätte Jonas recht?

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.