Skip to content

Commit 437f40d

Browse files
Web 0.15.2: Checkliste und Wissenstest immer in eigenen Schritten (#264)
Jede Lektion in beiden Welten endet mit einem eigenen Schritt Checkliste und danach einem eigenen Schritt Wissenstest, davor mindestens ein Spiel. VisuBot L2 (Der mBot2), L3 (Das Quadrat) und L27 (Eigene Methoden) bekommen einen eigenen Wissenstest-Schritt (de/en). Neuer Test prüft die Regel für alle Lektionen. Claude-Session: https://claude.ai/code/session_01Ugz28WZwjgGnmm72QK5snx Co-authored-by: Claude <noreply@anthropic.com>
1 parent 2ac1e82 commit 437f40d

18 files changed

Lines changed: 788 additions & 305 deletions

‎CHANGELOG.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ The format is loosely inspired by Keep a Changelog.
88

99
### Changed
1010

11+
- **Web 0.15.2, checklist and quiz always in their own steps:** every lesson in both worlds now ends with its own „Checkliste“ step followed by its own „Wissenstest“ step, after at least one game (Holger: VisuBot lesson 1 step 5 had both in one step before 0.14.33). Three robot lessons still lacked a final quiz step: L2 „Der mBot2“ (game „Sensor oder Aktor?“ moves into its own step before the checklist, the quiz from „Sensoren und Aktoren“ moves to the new „Wissenstest“ and gets six more questions, one per checklist item), L3 „Das Quadrat“ and L27 „Eigene Methoden“ (new „Wissenstest“ with five questions each; the small quizzes inside the steps stay). de/en. A new test (`web/test/lessonEnd.ts`, used by lessons.test.ts and visubotLessons.test.ts) fails if the checklist shares a step with anything else, if the quiz is not alone in the last step, or if no game comes before the checklist. Saved self-assessments in L2 start fresh because steps moved.
1112
- **Web 0.15.1, third hint and robot game moved:** eight harder exercises get a third hint that gives the outline of the solution box by box (L9 Schaltjahr, L10 Taschenrechner, L12 Summe bis 0, L14 Rechteck, L15 Summe und Maximum, L17 Rückwärts and Wörter zählen, L19 Absteigend sortieren; de/en/pt, with the variable names of each language). Students working alone are no longer stuck after two hints; the sample solution stays teacher-only. VisuBot: the game „Wo landet der mBot2?“ moves from lesson 1 „Struktogramm und Editor“ (where the commands with numbers in brackets were not explained yet) to lesson 2 „Der mBot2“, right after „Befehle für den mBot2“ and „Erste Fahrt“ (de/en). Saved step positions in these two lessons may shift by one.
1213
- **Web 0.15.0, release:** version number only, no further changes. 0.15.0 bundles everything since 0.14.x: VisuBot as a robotics-only world with its own basic lessons, a game in every lesson, repaired lesson steps (0.14.34) and lessons that are easier for self-study (0.14.35).
1314
- **Web 0.14.35, lessons easier for self-study:** VisuBot lesson 3 gets a new step „So sieht Java aus“ before the first Java exercise: where the Code area is, the square with a variable in Java, semicolons, the `for` head, curly brackets, upper and lower case, and how to solve a Java exercise (Im Editor öffnen, type, Prüfen); plus a Kompetenz and checklist item. VisuBot lesson 2 explains the counter `i` of the for loop (what `int i = 0`, `i < 5`, `i++` mean, table of the five runs). VisuBot says `true`/`false` like the editor instead of Ja/Nein (lesson text, hints, tasks). VisuBot lesson 1 (Struktogramm und Editor) says that every exercise ends with Prüfen, often in several worlds, and that the hints help. VisuStruct lesson 4 explains `"Text: " + variable` in the lesson text before the exercise „Rechteck“ (before, only its second hint did). Lesson 2 names the tool buttons Kopieren, Einfügen and Rückgängig for tablets without a keyboard and points to the Simulation button. The tasks of lessons 29–40 get a list „Du bist fertig, wenn …“ with things you can see in the window, so students working alone know when they are done (de/en/pt; VisuBot de/en).

‎web/lessons/de/visubot/01-der-mbot2.md‎

Lines changed: 114 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -170,78 +170,6 @@ Das Wort kommt vom lateinischen *agere*, „handeln“: Aktoren handeln, Sensore
170170

171171
Dein Programm liest die Sensoren und steuert die Aktoren. Das kennst du schon als Eingabe, Verarbeitung und Ausgabe.
172172

173-
::: quiz
174-
? Ordne jedes Teil seiner Aufgabe zu.
175-
→ Hallo mBot2
176-
= Ultraschallsensor -> misst den Abstand
177-
= Motoren -> bewegen die Räder
178-
= CyberPi -> führt das Programm aus
179-
= Liniensensor -> erkennt eine dunkle Linie
180-
? Welche Teile sind Aktoren?
181-
→ Sensoren und Aktoren
182-
- [x] Motoren
183-
- [ ] Ultraschallsensor
184-
- [x] LEDs
185-
- [ ] Liniensensor
186-
> Aktoren tun etwas, Sensoren messen etwas.
187-
:::
188-
189-
::: spiel frage
190-
titel: Spiel: Sensor oder Aktor?
191-
intro: Misst das Bauteil etwas, oder tut es etwas? Zehn Runden.
192-
antworten: Sensor | Aktor
193-
194-
runde:
195-
frage: Der Ultraschallsensor misst, wie weit die Wand weg ist.
196-
richtig: Sensor
197-
> Er misst etwas: den Abstand.
198-
199-
runde:
200-
frage: Die Motoren drehen die Räder.
201-
richtig: Aktor
202-
> Sie tun etwas: Sie bewegen den mBot2.
203-
204-
runde:
205-
frage: Die LEDs leuchten rot.
206-
richtig: Aktor
207-
> Leuchten ist etwas tun, nicht messen.
208-
209-
runde:
210-
frage: Der Liniensensor erkennt das schwarze Klebeband.
211-
richtig: Sensor
212-
> Er misst, wie viel Licht vom Boden zurückkommt.
213-
214-
runde:
215-
frage: Der Lautsprecher piept.
216-
richtig: Aktor
217-
> Er gibt einen Ton aus.
218-
219-
runde:
220-
frage: Das Mikrofon hört dein Klatschen.
221-
richtig: Sensor
222-
> Es misst die Lautstärke.
223-
224-
runde:
225-
frage: Der Bildschirm zeigt „Hallo VisuBot!“.
226-
richtig: Aktor
227-
> Anzeigen ist eine Ausgabe.
228-
229-
runde:
230-
frage: Taste A merkt, dass du drückst.
231-
richtig: Sensor
232-
> Tasten sind Sensoren: Sie melden, ob sie gedrückt sind.
233-
234-
runde:
235-
frage: Der Lagesensor merkt, dass der mBot2 schief steht.
236-
richtig: Sensor
237-
> Er misst die Neigung.
238-
239-
runde:
240-
frage: Die Ringe am Ultraschallsensor leuchten blau.
241-
richtig: Aktor
242-
> Gemein! Das Bauteil ist ein Sensor, aber das Leuchten der Ringe ist eine Ausgabe.
243-
:::
244-
245173
## Finde die Bauteile
246174

247175
Jetzt bist du dran: Klicke im Modell auf das gesuchte Teil. Liegst du richtig, kommt die nächste Frage.
@@ -360,6 +288,66 @@ Ist der mBot2 verbunden, erscheint unter der Welt **🔧 mBot2 testen**. Klapp e
360288

361289
Ändert sich ein Wert nicht, obwohl du etwas tust, stimmt etwas nicht. Dann sag deiner Lehrkraft Bescheid, bevor du programmierst.
362290

291+
## Spiel: Sensor oder Aktor?
292+
293+
::: spiel frage
294+
titel: Spiel: Sensor oder Aktor?
295+
intro: Misst das Bauteil etwas, oder tut es etwas? Zehn Runden.
296+
antworten: Sensor | Aktor
297+
298+
runde:
299+
frage: Der Ultraschallsensor misst, wie weit die Wand weg ist.
300+
richtig: Sensor
301+
> Er misst etwas: den Abstand.
302+
303+
runde:
304+
frage: Die Motoren drehen die Räder.
305+
richtig: Aktor
306+
> Sie tun etwas: Sie bewegen den mBot2.
307+
308+
runde:
309+
frage: Die LEDs leuchten rot.
310+
richtig: Aktor
311+
> Leuchten ist etwas tun, nicht messen.
312+
313+
runde:
314+
frage: Der Liniensensor erkennt das schwarze Klebeband.
315+
richtig: Sensor
316+
> Er misst, wie viel Licht vom Boden zurückkommt.
317+
318+
runde:
319+
frage: Der Lautsprecher piept.
320+
richtig: Aktor
321+
> Er gibt einen Ton aus.
322+
323+
runde:
324+
frage: Das Mikrofon hört dein Klatschen.
325+
richtig: Sensor
326+
> Es misst die Lautstärke.
327+
328+
runde:
329+
frage: Der Bildschirm zeigt „Hallo VisuBot!“.
330+
richtig: Aktor
331+
> Anzeigen ist eine Ausgabe.
332+
333+
runde:
334+
frage: Taste A merkt, dass du drückst.
335+
richtig: Sensor
336+
> Tasten sind Sensoren: Sie melden, ob sie gedrückt sind.
337+
338+
runde:
339+
frage: Der Lagesensor merkt, dass der mBot2 schief steht.
340+
richtig: Sensor
341+
> Er misst die Neigung.
342+
343+
runde:
344+
frage: Die Ringe am Ultraschallsensor leuchten blau.
345+
richtig: Aktor
346+
> Gemein! Das Bauteil ist ein Sensor, aber das Leuchten der Ringe ist eine Ausgabe.
347+
:::
348+
349+
## Checkliste
350+
363351
Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀️ kann ich sicher. Bei ⛅ und ☂️ hilft dir **Nachlesen**. Danach kommt der Wissenstest. Er zeigt dir, ob deine Einschätzung stimmt.
364352

365353
::: checkliste
@@ -372,3 +360,57 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀
372360
- Ich kann den echten mBot2 per USB-C verbinden und wieder trennen. → Den echten mBot2 verbinden
373361
- Ich kann prüfen, ob alle Sensoren und Aktoren funktionieren. → Den mBot2 testen
374362
:::
363+
364+
## Wissenstest
365+
366+
::: quiz
367+
? Ordne jedes Teil seiner Aufgabe zu.
368+
→ Hallo mBot2
369+
= Ultraschallsensor -> misst den Abstand
370+
= Motoren -> bewegen die Räder
371+
= CyberPi -> führt das Programm aus
372+
= Liniensensor -> erkennt eine dunkle Linie
373+
? Welche Teile sind Aktoren?
374+
→ Sensoren und Aktoren
375+
- [x] Motoren
376+
- [ ] Ultraschallsensor
377+
- [x] LEDs
378+
- [ ] Liniensensor
379+
> Aktoren tun etwas, Sensoren messen etwas.
380+
? Wie misst der Ultraschallsensor den Abstand?
381+
→ Der Ultraschallsensor
382+
- [ ] Er fotografiert die Wand.
383+
- [x] Er schickt einen sehr hohen Ton los und wartet auf das Echo.
384+
- [ ] Er tastet die Wand mit seinen blauen Ringen ab.
385+
> Je länger das Echo braucht, desto weiter ist die Wand weg.
386+
? Woran erkennt der Liniensensor eine schwarze Linie?
387+
→ Unter dem Roboter
388+
- [x] Von der schwarzen Linie kommt wenig Licht zurück.
389+
- [ ] Die Linie ist wärmer als der Boden.
390+
- [ ] Er hört, wie die Räder über die Linie rollen.
391+
> Jeder Fühler leuchtet den Boden an. Heller Boden wirft viel Licht zurück, eine schwarze Linie wenig.
392+
? Was tut `mbot.turnRight()`?
393+
→ Befehle für den mBot2
394+
- [ ] Der mBot2 fährt 10 cm nach rechts.
395+
- [x] Der mBot2 dreht sich um 90° nach rechts.
396+
- [ ] Die rechte LED geht an.
397+
> Ohne Zahl in den Klammern dreht er sich um 90°. `mbot.turnRight(45)` dreht nur 45°.
398+
? Im Struktogramm stehen fünf Kästen `mbot.forward()` untereinander. Wie weit fährt der mBot2 in der Simulation?
399+
→ Erste Fahrt
400+
- [ ] 5 cm
401+
- [x] 50 cm
402+
- [ ] 10 cm
403+
> Jedes `mbot.forward()` fährt 10 cm, also ein Kästchen im Gitter.
404+
? Du bist mit dem echten mBot2 fertig. Was machst du, bevor du das Kabel ziehst?
405+
→ Den echten mBot2 verbinden
406+
- [x] Noch einmal auf **🟢 mBot2** klicken und warten, bis „Bis bald!“ dasteht
407+
- [ ] Den Schiebeschalter auf OFF schieben
408+
- [ ] Nichts, das Kabel darf sofort raus
409+
> Erst nach „Bis bald!“ ist der Anschluss frei.
410+
? Du hältst die Hand vor den Ultraschallsensor, aber unter **🔧 mBot2 testen** ändert sich der Wert nicht. Was tust du?
411+
→ Den mBot2 testen
412+
- [ ] Trotzdem losprogrammieren
413+
- [x] Der Lehrkraft Bescheid sagen, bevor du programmierst
414+
- [ ] Den Wert in der Simulation von Hand ändern
415+
> Ändert sich ein Wert nicht, obwohl du etwas tust, stimmt am Roboter etwas nicht.
416+
:::

‎web/lessons/de/visubot/02-das-quadrat.md‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,3 +328,38 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀
328328
- Ich kann drei Schleifen ineinander schachteln. → Vier Quadrate
329329
- Ich kann mein Programm auf den mBot2 übertragen und ohne Kabel mit Taste A starten. → Ohne Kabel fahren
330330
:::
331+
332+
## Wissenstest
333+
334+
::: quiz
335+
? Der mBot2 soll noch ohne Schleife eine Seite von 50 cm fahren und sich dann drehen. Welche Kästen brauchst du?
336+
→ Ein Quadrat fahren
337+
- [ ] einmal `mbot.forward()` und einmal `mbot.turnRight()`
338+
- [x] fünfmal `mbot.forward()` und einmal `mbot.turnRight()`
339+
- [ ] fünfmal `mbot.turnRight()`
340+
> Jedes `mbot.forward()` fährt 10 cm, fünf davon sind 50 cm.
341+
? Eine For-Schleife hat den Start `int i = 0`, die Bedingung `i < 5` und den Schritt `i++`. Wie oft läuft sie?
342+
→ Immer das Gleiche
343+
- [ ] 4-mal
344+
- [x] 5-mal
345+
- [ ] 6-mal
346+
> `i` zählt 0, 1, 2, 3, 4. Das sind fünf Durchläufe.
347+
? Warum heißt die Zählvariable der inneren Schleife `j` und nicht auch `i`?
348+
→ Schleife in der Schleife
349+
- [ ] In einem Programm darf jeder Buchstabe nur einmal vorkommen.
350+
- [x] Jede Schleife braucht ihre eigene Zählvariable, sonst kommen sich die beiden in die Quere.
351+
- [ ] `j` zählt schneller als `i`.
352+
> Würden beide mit `i` zählen, würde die innere Schleife die äußere durcheinanderbringen.
353+
? Wie oft führt der mBot2 bei den vier Quadraten `mbot.turnRight()` aus?
354+
→ Vier Quadrate
355+
- [ ] 4-mal
356+
- [ ] 16-mal
357+
- [x] 20-mal
358+
> In jedem Quadrat dreht er sich viermal, das sind 4 · 4 = 16. Dazu kommt nach jedem Quadrat noch eine Drehung: 16 + 4 = 20.
359+
? Dein Programm ist übertragen und das Kabel ist ab. Wie startest du es?
360+
→ Ohne Kabel fahren
361+
- [ ] mit Taste B
362+
- [x] mit Taste A
363+
- [ ] mit **⬆ Übertragen**
364+
> Nach dem Übertragen zeigt der mBot2 **A = Start** und wartet auf Taste A.
365+
:::

‎web/lessons/de/visubot/22-eigene-methoden.md‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,3 +297,38 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀
297297
- Ich kann eine überladene Methode erkennen und aufrufen. → Gleicher Name, andere Parameter: Überladung
298298
- Ich kann eine Methode mit Rückgabewert schreiben. → Methode mit Rückgabe
299299
:::
300+
301+
## Wissenstest
302+
303+
::: quiz
304+
? Das Unterprogramm `void quadrat(int seite)` soll ein Quadrat mit 30 cm Seitenlänge fahren. Wie sieht der Aufruf aus?
305+
→ Ein Unterprogramm für das Quadrat
306+
- [ ] `quadrat()`
307+
- [x] `quadrat(30)`
308+
- [ ] `int seite = quadrat(30)`
309+
> Der Wert in den Klammern wird zum Parameter `seite`. Weil `quadrat` nichts zurückgibt, gibt es keine Zuweisung.
310+
? In welcher Methode beginnt ein Java-Programm?
311+
→ Methoden in Java
312+
- [ ] in der ersten Methode der Klasse
313+
- [x] in der Methode `main`
314+
- [ ] in der Methode `quadrat`
315+
> Das Programm beginnt immer in `main`. Von dort werden die anderen Methoden aufgerufen.
316+
? Woran unterscheidet Java die überladenen Methoden `forward()`, `forward(int cm)` und `forward(int wert, String einheit)`?
317+
→ Gleicher Name, andere Parameter: Überladung
318+
- [ ] am Namen
319+
- [x] an der Anzahl und am Typ der Parameter
320+
- [ ] an der Reihenfolge im Programm
321+
> Der Name ist bei allen gleich. Java wählt die Variante, deren Parameter zum Aufruf passen.
322+
? `static int zentimeter(int umdrehungen) { return umdrehungen * 20; }`: Was liegt nach `int strecke = zentimeter(2);` in `strecke`?
323+
→ Methode mit Rückgabe
324+
- [ ] 2
325+
- [ ] 20
326+
- [x] 40
327+
> `return` gibt 2 · 20 = 40 zurück, und dieser Wert landet in `strecke`.
328+
? Was steht in der Kopfzeile einer Methode, die eine ganze Zahl zurückgibt, statt `void`?
329+
→ Methode mit Rückgabe
330+
- [ ] `return`
331+
- [x] `int`
332+
- [ ] `static`
333+
> Statt `void` steht der Datentyp des Ergebnisses in der Kopfzeile.
334+
:::

0 commit comments

Comments
 (0)