MINT lernen

Probe-Klassenarbeit

Eine 45-minütige Probe-Klassenarbeit mit 50 Punkten zu Übersetzern, Typen, SQL, PHP, Rust, Unity und Sprachwahl — mit Erwartungshorizont und Notenschlüssel.

Punkte0 / 50
Note—
Bearbeitet0 / 0
Bearbeitungszeit45 Minuten
AFB I

Wissen und Reproduzieren

18 Punkte
A1
Sprachen und Übersetzer
AFB I 8 Punkte

Ordne jedem Projekt die passende Sprache zu und gib an, welche Aussagen über Übersetzer richtig sind.

a) Welche Sprache passt am besten zu diesem Projekt? 5 P
b) Welche Aussagen sind richtig? (mehrere Antworten richtig) 3 P
Lösung anzeigen (nach Auswerten freigeschaltet)

a) Unity-Spiel → C# · Bibliotheks-Datenbank → SQL · Webseite vom Server → PHP · Animation im Browser → JavaScript · iPhone-App → Swift. Python und Go werden nicht gebraucht. Je richtige Zuordnung 1 P. (5 P)

b) Richtig: Compiler übersetzt vorab; Java → Bytecode → JVM; Maschinencode ist prozessorabhängig. Falsch: Ein Interpreter bemerkt Fehler erst, wenn er die Zeile erreicht; Python wird interpretiert. Jede falsch gewählte Aussage hebt eine richtige auf. (3 P)

A2
Ausdrücke in sechs Sprachen
AFB I 10 Punkte

Bestimme jeweils die Ausgabe. Schreibe Kommazahlen mit Komma. Ist die Ausgabe ein Text aus Ziffern, gib die Ziffern als Zahl ein.

a) JavaScript: 1 P
b) JavaScript: 1 P
c) PHP: 1 P
d) Python: 1 P
e) Java, int-Werte: 1 P
f) Go: 1 P
g) Was passiert in Python bei print("8" + 2)? (eine Antwort richtig) 2 P
h) C#, int-Werte: 2 P
Lösung anzeigen (nach Auswerten freigeschaltet)

a) Ein Wert ist Text, also verkettet +: „82“ → 82 (1 P)

b) * wandelt in eine Zahl um: 16 (1 P)

c) In PHP rechnet + immer: 10 (1 P)

d) In Python liefert / eine Kommazahl: 4,5 (1 P)

e) int durch int ist in Java ganzzahlig: 4 (1 P)

f) 9%2 = 1, 9/2 = 4 (ganzzahlig): 5 (1 P)

g) Python verknüpft Text und Zahl nicht mit +: TypeError zur Laufzeit (2 P)

h) 11 / 2 = 5 (ganzzahlig), 5 · 2 = 10 — nicht 11 (2 P)

AFB II

Zusammenhänge herstellen

21 Punkte
A3
Die Zoo-Datenbank
AFB II 11 Punkte

Ein Zoo speichert seine Tiere in der Tabelle tiere (Gewicht in kg, Alter in Jahren):

Tabelle tiere
nameartgewichtjahregehege
KiraLöwe1907Savanne
BrunoBraunbär32012Wald
LunaZebra2805Savanne
PipPinguin253Eiswelt
TaraLöwe1504Savanne
OlliPinguin309Eiswelt
MiaBraunbär2106Wald
ZazuZebra30011Savanne
a) Ermittle die Anzahl der Zeilen der Ergebnistabelle. 2 P
SQL
SELECT name FROM tiere
WHERE gehege = 'Savanne' AND jahre > 5;
b) Ermittle das Gewicht in der ersten Zeile der Ergebnistabelle. 2 P
SQL
SELECT name, gewicht FROM tiere
WHERE gewicht > 100
ORDER BY gewicht ASC;
c) Bestimme das Ergebnis. 2 P
SQL
SELECT COUNT(*) FROM tiere
WHERE art = 'Pinguin' OR jahre >= 10;
d) Bestimme das Ergebnis. 2 P
SQL
SELECT AVG(gewicht) FROM tiere
WHERE art = 'Löwe';
e) Gesucht sind die Namen aller Tiere aus dem Gehege Wald, das schwerste zuerst. Welche Abfrage ist richtig? (eine Antwort richtig) 2 P
f) Warum nennt man SQL eine deklarative Sprache? (eine Antwort richtig) 1 P
Lösung anzeigen (nach Auswerten freigeschaltet)

a) Savanne: Kira (7), Luna (5), Tara (4), Zazu (11). Älter als 5: Kira und Zazu → 2 Zeilen. Luna mit genau 5 Jahren zählt nicht, weil > und nicht >= dasteht. (2 P)

b) Über 100 kg: Kira 190, Bruno 320, Luna 280, Tara 150, Mia 210, Zazu 300. ASC sortiert aufsteigend, also steht Tara mit 150 kg oben. (2 P)

c) Pinguine: Pip, Olli; mindestens 10 Jahre: Bruno (12), Zazu (11). Bei OR reicht eine Bedingung → 4 (2 P)

d) Löwen: Kira 190, Tara 150 → (190 + 150) : 2 = 170 (2 P)

e) Richtig ist die Abfrage mit 'Wald' in Anführungszeichen und DESC (schwerstes zuerst). Ohne Anführungszeichen wäre Wald ein Spaltenname, ASC sortiert falsch herum, und WHERE muss vor ORDER BY stehen. (2 P)

f) Deklarativ: Man beschreibt das gewünschte Ergebnis, die Datenbank entscheidet selbst, wie sie sucht. (1 P)

A4
PHP, Rust und Unity
AFB II 10 Punkte

Ein Spiele-Club zeigt seine Bestenliste mit diesem PHP-Skript auf dem Server an:

PHP
<?php
echo "<ol>";
for ($i = 1; $i <= 4; $i++) {
    echo "<li>Rang $i: " . (100 - $i * 15) . " Punkte</li>";
}
echo "</ol>";
?>
a) Gib an, wie viele <li>-Elemente das gesendete HTML enthält. 1 P
b) Bestimme die Punktzahl im letzten <li>-Element. 2 P
c) Was sieht ein Besucher, wenn er im Browser „Seitenquelltext anzeigen“ wählt? (eine Antwort richtig) 1 P

Das folgende Rust-Programm wird dem Compiler übergeben:

Rust
fn main() {                              // Zeile 1
    let name = String::from("Mia");      // Zeile 2
    let kopie = name;                    // Zeile 3
    let alter = 14;                      // Zeile 4
    let alter2 = alter;                  // Zeile 5
    println!("{} {}", alter, alter2);    // Zeile 6
    println!("{}", name);                // Zeile 7
}
d) Begründe durch deine Auswahl: In welcher Zeile meldet der Borrow Checker einen Fehler? (eine Antwort richtig) 2 P

In einem Unity-Spiel steht in Update() die Zeile transform.Translate(5f * Time.deltaTime, 0, 0);. Das Spiel läuft mit 60 Bildern pro Sekunde, die Zeile wird 3 Sekunden lang in jedem Frame ausgeführt.

e) Berechne, wie oft Update() in diesen 3 Sekunden aufgerufen wird. 2 P
f) Berechne den Weg des Objekts. 2 P
Lösung anzeigen (nach Auswerten freigeschaltet)

a) $i läuft von 1 bis 4: 4 Elemente (1 P)

b) Letzter Durchlauf $i = 4: 100 − 4 · 15 = 40 Punkte (davor 85, 70, 55) (2 P)

c) PHP läuft auf dem Server; der Browser erhält nur das erzeugte HTML. (1 P)

d) Zeile 3 verschiebt den Besitz des Strings an kopie, name ist danach ungültig — deshalb lehnt der Borrow Checker Zeile 7 ab. Die Zahl 14 wird in Zeile 5 kopiert, alter bleibt gültig. (2 P)

e) 60 · 3 = 180 Aufrufe (2 P)

f) Durch Time.deltaTime bedeutet 5 „5 Einheiten pro Sekunde“: 5 · 3 = 15 Einheiten — unabhängig von der Bildrate. (2 P)

AFB III

Verallgemeinern und beurteilen

11 Punkte
A5
Sprachwahl im Projekt
AFB III 11 Punkte

Die Schülerzeitung plant eine Umfrage-Webseite: Man wählt im Browser eine Antwort, der Server speichert die Stimme in einer Datenbank und zeigt danach das Ergebnis. Einmal pro Woche soll zusätzlich ein Auswertungsprogramm Statistiken über alle Umfragen berechnen. Eine Fassung in C bräuchte dafür 0,4 s. Modell für die Laufzeit (Vielfaches von C): C 1 · Go 1,5 · JavaScript 2 · PHP 8 · Python 25.

a) Berechne die Laufzeit der Auswertung in Python. 2 P
b) Berechne die Laufzeit der Auswertung in PHP. 2 P
c) Ordne jedem Teil der Webseite die passende Sprache zu. 4 P
d) Beurteile: Welche Aussagen zur Wahl der Sprache für die wöchentliche Auswertung sind fachlich gut begründet? (mehrere Antworten richtig) 3 P
Lösung anzeigen (nach Auswerten freigeschaltet)

a) t(Python) = 25 · 0,4 s = 10 s (2 P)

b) t(PHP) = 8 · 0,4 s = 3,2 s (2 P)

c) Aufbau → HTML · Warnung im Browser → JavaScript (clientseitig) · Server → PHP (serverseitig) · Auszählen → SQL, z. B. SELECT COUNT(*) FROM stimmen WHERE antwort = 'ja'; Je 1 P. (4 P)

d) Gut begründet sind die Aussagen über seltene Ausführung und Python, über Vorwissen und über sehr häufige Ausführung. Falsch: Es gibt keine „beste“ Sprache — Laufzeit ist nur ein Kriterium; PHP kann durchaus rechnen und auswerten; im Browser läuft JavaScript, nicht Python. (3 P)

So könnte eine ausformulierte Beurteilung lauten: „Für die wöchentliche Auswertung ist Python geeignet. Sie ist zwar 25-mal langsamer als C, 10 s pro Woche sind aber unerheblich. Dafür ist das Programm schneller geschrieben, es gibt Bibliotheken für Statistik, und das Team kennt Python bereits.“

Ergebnis

Erreicht
0 / 50
Prozent
0 %
Note
—
AufgabeThemaPunkte

Notenschlüssel

PunkteNoteBeurteilung
50 – 46 P1sehr gut
45 – 40 P2gut
39 – 30 P3befriedigend
29 – 22 P4ausreichend
21 – 12 P5mangelhaft
11 – 0 P6ungenügend