Skip to content
This repository was archived by the owner on Nov 7, 2026. It is now read-only.

Commit 4563190

Browse files
Web 0.15.7: VisuBot-Abschlusslektion „Wie geht es weiter?“ (#272)
Claude-Session: https://claude.ai/code/session_01Ugz28SUi7WrLyAgxYxQzrJ Co-authored-by: Claude <noreply@anthropic.com>
1 parent de6f103 commit 4563190

14 files changed

Lines changed: 1851 additions & 1208 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.7, VisuBot ends with „Wie geht es weiter?“:** new last robot lesson (`23-wie-geht-es-weiter.md`, de/en, own part „Ausblick“/„Outlook“, VisuBot now has 34 lessons): a look back at the basics learned with the mBot2, a last „Warum läuft das nicht?“ (`mbot.getDistance` without brackets, three walls), and „Was noch fehlt“ with links to the VisuStruct lessons that VisuBot does not cover (PAP and pseudocode, keyboard input, 2D arrays, searching and sorting, Python/JavaScript, try/catch, files, Swing up to MVC). Game „Welche Welt?“ (VisuBot or VisuStruct, eight rounds), checklist and quiz. Test: five parts, the outlook is last.
1112
- **Web 0.15.6, VisuBot: structured programming basics, step by step:** six new beginner robot lessons (de/en), inserted by file name without renaming (the series now has 33 lessons): „Zählen und Summieren“ after do-while (counter and sum pattern, exercises „Schritte bis zur Wand“ in three worlds and Java „Spirale mit Strecke“), „Feste Werte mit final“ after the ultrasonic sensor (constants, `const`/`final`, „Wand mit Konstante“, Java „Quadrat mit Konstante“), „Nah, mittel oder weit?“ (three cases, `else if`, order of conditions; „Tempo nach Abstand“, Java „Tag oder Nacht?“), „Der größte Wert“ after colours (maximum with desk-check table, new worlds `platz-1`/`platz-2`, „Wo ist am meisten Platz?“, Java „Die Richtung merken“), „Ein Merker mit boolean“ after the light sensor („Wurde es dunkel?“, Java „Wurde geklatscht?“) and „Zustände: Was mache ich gerade?“ after stopwatch/battery (state machine, Robo-Ampel with switch, Java with String states and `.equals`). Each lesson has competencies, a game, a „Warum läuft das nicht?“ exercise, a checklist and a quiz. Glossary: Merker/flag, Zustandsautomat/state machine.
1213
- **Web 0.15.5, small lesson fixes from the second review:** the free tasks „Einheitenrechner“ (after L36) and „Würfeln mit MVC“ (after L41) get a list „Du bist fertig, wenn …“ with things you can see in the window and console. L38 „Viele Knöpfe, ein Zuhörer“: Ludwig's tip in the task „Zahlenschloss“ talked about the calculator; it now helps with the task (count wrong attempts, `setEnabled(false)`, stars with a separate `eingabe`). Steps „Profiwissen: …“ in L23, L29, L31, L36 and L37 lose the prefix (Holger: no separate Profiwissen), L39 refers to the step by name. L5 Angeberwissen no longer mentions the coffee-cup logo. de/en/pt. New test: no step title starts with „Profiwissen“.
1314
- **Web 0.15.4, lesson 1 split in two:** VisuStruct lesson 1 „Was ist ein Struktogramm?“ was very long (15 steps). It now covers algorithm, reading a structure chart, the three building blocks, „Erst die Struktur, dann der Code“, the game „Welcher Baustein?“, checklist and quiz. The new lesson 2 „PAP und Pseudocode“ (`01-weitere-darstellungen.md`) takes the flowchart part (PAP elements, exercise „Kuchen backen als PAP“, jumps/GOTO/spaghetti code, pseudocode and comparison) with its own Kompetenzen, a new game „Welche Darstellung?“ (structure chart, flowchart or pseudocode, eight rounds), checklist and quiz (de/en/pt). VisuStruct now numbers lessons like VisuBot: in file order, so the new lesson keeps file number 01 and no file is renamed (progress stays). All later lessons move up by one; „Lektion N“ in texts and `nach:` in tasks are renumbered automatically. Saved step positions in lesson 1 may point to a later step than before. New test checks the split and the renumbered references.
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
---
2+
titel: Wie geht es weiter?
3+
bereich: Ausblick
4+
kurz: Zurückblicken, was du mit dem mBot2 gelernt hast, und sehen, was in VisuStruct noch auf dich wartet.
5+
---
6+
7+
## Diese Kompetenzen erwerbe ich jetzt
8+
9+
::: kompetenzen
10+
- sagen, welche Grundlagen der Programmierung ich mit dem mBot2 gelernt habe
11+
- einen Fehler in einem Roboterprogramm allein finden und reparieren
12+
- die Themen nennen, die in VisuStruct noch auf mich warten
13+
:::
14+
15+
## Das kannst du jetzt
16+
17+
Glückwunsch, du hast alle Roboter-Lektionen geschafft! Mit dem mBot2 hast du die **Grundlagen der strukturierten Programmierung** gelernt:
18+
19+
- ein **Struktogramm** lesen und bauen und es mit dem **Schreibtischtest** prüfen,
20+
- **Sequenz**, **Verzweigung** und **Fallauswahl**, Bedingungen mit **und**, **oder** und **nicht**,
21+
- die Schleifen **for**, **while** und **do-while**, auch ineinander verschachtelt, und den Aussprung mit **break**,
22+
- **Variablen**, **Datentypen** und **Konstanten** mit `final`, Zählen, Summieren und den größten Wert finden,
23+
- **Arrays** und **Zeichenketten**,
24+
- eigene **Methoden** mit Parametern und Rückgabewert.
25+
26+
Das alles gilt nicht nur für Roboter. Jedes Java-Programm ist aus genau diesen Bausteinen gebaut, auch ein Spiel oder eine App.
27+
28+
::: angeberwissen
29+
Määäh, weißt du, was du mit dem mBot2 eigentlich gebaut hast? Ein **eingebettetes System**: einen kleinen Computer, der in einem Gerät steckt und mit Sensoren seine Umwelt misst. Solche Systeme stecken in Waschmaschinen, Autos und Herzschrittmachern. In einem modernen Auto sind es über hundert. Und programmiert werden sie mit genau den Bausteinen, die du jetzt kennst.
30+
:::
31+
32+
## Noch einmal: Warum läuft das nicht?
33+
34+
Zum Schluss eine letzte Fehlersuche. Diesmal ist es ein Fehler, den auch Profis oft machen.
35+
36+
::: übung vb-fehler-23-wie-geht-es-weiter
37+
titel: Warum läuft das nicht?
38+
code: java
39+
auftrag: Das Programm soll bis kurz vor die Wand fahren, aber es läuft nicht. „Im Editor öffnen“ zeigt den Code im Bereich Code. Klicke auf „Ausführen“ und lies die Fehlermeldung. Repariere den Fehler und klicke auf Prüfen.
40+
start: vb-fehler-23-wie-geht-es-weiter-start.visustruct
41+
welt: wand-kurz, wand-mittel, wand-lang
42+
tipp: Lies die Fehlermeldung genau. Vergleiche den Sensor mit den anderen Befehlen: Was steht hinter `mbot.forward`?
43+
tipp: Hinter einem Befehl stehen immer runde Klammern, auch wenn nichts darin steht. Richtig heißt es `mbot.getDistance() > 15`.
44+
lösung: vb-bis-wand-loesung.visustruct
45+
:::
46+
47+
## Was noch fehlt
48+
49+
Einige Themen der Programmierung haben mit dem Roboter wenig zu tun. Du findest sie in **VisuStruct**, der Welt ohne Roboter. Weil du die Grundlagen schon kennst, kommst du dort schnell voran. Die Links öffnen sich in einem neuen Fenster.
50+
51+
- **Andere Darstellungen:** Algorithmen als Ablaufplan mit Pfeilen oder als Text aufschreiben, in [„PAP und Pseudocode“](?visustruct&lektion=01-weitere-darstellungen).
52+
- **Eingabe mit der Tastatur:** Werte beim Ausführen abfragen, in [„Eingabe und Ausgabe“](?visustruct&lektion=06-eingabe-und-ausgabe).
53+
- **Tabellen im Speicher:** Arrays mit Zeilen und Spalten, zum Beispiel für einen Kinosaal, in [„Zweidimensionale Arrays“](?visustruct&lektion=16-zweidimensionale-arrays).
54+
- **Suchen und Sortieren:** einen Wert schnell finden und eine Liste der Größe nach ordnen, in [„Suchen und Sortieren“](?visustruct&lektion=19-suchen-und-sortieren).
55+
- **Andere Sprachen:** dasselbe Programm in Python und JavaScript, in [„Python und JavaScript“](?visustruct&lektion=21-python-und-javascript).
56+
- **Abstürze abfangen:** was passiert, wenn jemand „abc“ statt einer Zahl eintippt, in [„Wenn das Programm abstürzt: try und catch“](?visustruct&lektion=22-try-und-catch).
57+
- **Dateien:** Text, Tabellen und Daten lesen und speichern, ab [„Text einlesen und speichern“](?visustruct&lektion=23-text-einlesen-und-speichern) über [„Tabellen als CSV“](?visustruct&lektion=25-tabellen-als-csv) bis [„Daten als JSON“](?visustruct&lektion=26-json).
58+
- **Fenster mit Knöpfen:** eigene Programme mit Fenster, Textfeld und Knopf, ab [„Dein erstes Fenster“](?visustruct&lektion=28-erstes-fenster) bis [„Model View Controller“](?visustruct&lektion=40-model-view-controller).
59+
60+
> Den mBot2 brauchst du dafür nicht. Du kannst aber jederzeit zurückkommen und ihm neue Kunststücke beibringen.
61+
62+
## Spiel: Welche Welt?
63+
64+
::: spiel frage
65+
titel: Spiel: Welche Welt?
66+
intro: Ludwig hat Ideen für neue Programme. Lernst du das mit dem mBot2 in VisuBot oder ohne Roboter in VisuStruct? Acht Runden.
67+
antworten: VisuBot | VisuStruct
68+
69+
runde:
70+
frage: „Fahre bis zur Wand und piepe dann.“
71+
richtig: VisuBot
72+
> Abstandssensor, Motoren und Lautsprecher: Das ist ein Fall für den mBot2.
73+
74+
runde:
75+
frage: „Ein Fenster mit einem Knopf, der bis 10 zählt.“
76+
richtig: VisuStruct
77+
> Fenster mit Knöpfen baust du mit Swing in VisuStruct.
78+
79+
runde:
80+
frage: „Spiele eine Melodie, die in einem Array steht.“
81+
richtig: VisuBot
82+
> Arrays und Melodien hast du mit dem Lautsprecher des mBot2 gelernt.
83+
84+
runde:
85+
frage: „Lies die Noten der Klasse aus einer CSV-Datei.“
86+
richtig: VisuStruct
87+
> Dateien lesen und speichern lernst du in VisuStruct.
88+
89+
runde:
90+
frage: „Tippt jemand ‚abc‘ statt einer Zahl ein, soll das Programm nicht abstürzen.“
91+
richtig: VisuStruct
92+
> Abstürze fängst du mit try und catch ab. Das steht in VisuStruct.
93+
94+
runde:
95+
frage: „Folge mit dem Liniensensor einer schwarzen Linie.“
96+
richtig: VisuBot
97+
> Der Liniensensor sitzt unter dem mBot2.
98+
99+
runde:
100+
frage: „Sortiere zehn Zahlen der Größe nach.“
101+
richtig: VisuStruct
102+
> Suchen und Sortieren steht in VisuStruct. Den größten Wert finden kannst du aber schon.
103+
104+
runde:
105+
frage: „Zeichne den Ablauf als Plan mit Pfeilen.“
106+
richtig: VisuStruct
107+
> Das ist ein PAP. Ihn lernst du in VisuStruct in „PAP und Pseudocode“.
108+
:::
109+
110+
## Checkliste
111+
112+
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.
113+
114+
::: checkliste
115+
- Ich kann sagen, welche Grundlagen der Programmierung ich mit dem mBot2 gelernt habe. → Das kannst du jetzt
116+
- Ich kann einen Fehler in einem Roboterprogramm allein finden und reparieren. → Noch einmal: Warum läuft das nicht?
117+
- Ich kann die Themen nennen, die in VisuStruct noch auf mich warten. → Was noch fehlt
118+
:::
119+
120+
## Wissenstest
121+
122+
::: quiz
123+
? Gelten die Bausteine aus den Roboter-Lektionen auch für Programme ohne Roboter?
124+
→ Das kannst du jetzt
125+
- [x] Ja, jedes Java-Programm ist aus Sequenz, Verzweigung, Schleife, Variablen und Methoden gebaut
126+
- [ ] Nein, ohne Roboter braucht man ganz andere Befehle
127+
- [ ] Nur die Schleifen
128+
> Nur die `mbot.`-Befehle gehören zum Roboter. Alles andere ist ganz normales Java.
129+
130+
? Warum läuft `mbot.getDistance > 15` nicht?
131+
→ Noch einmal: Warum läuft das nicht?
132+
- [ ] Weil 15 zu klein ist
133+
- [x] Weil hinter dem Befehl die runden Klammern fehlen
134+
- [ ] Weil man `<` schreiben muss
135+
> Ohne Klammern sucht Java eine Variable `getDistance` und findet keine.
136+
137+
? Wo lernst du, wie ein Programm Abstürze mit try und catch abfängt?
138+
→ Was noch fehlt
139+
- [ ] In VisuBot
140+
- [x] In VisuStruct
141+
> Dort steht die Lektion „Wenn das Programm abstürzt: try und catch“.
142+
143+
? Welche Themen findest du in VisuStruct? Wähle die passende Liste.
144+
→ Was noch fehlt
145+
- [x] PAP, Sortieren, Dateien und Fenster mit Knöpfen
146+
- [ ] Liniensensor, LEDs und Motoren
147+
- [ ] Nur die for-Schleife
148+
> Liniensensor, LEDs und Motoren gehören zum mBot2, die for-Schleife kennst du schon.
149+
:::
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<struktogramm caption="85;112;32;116;111;32;116;104;101;32;119;97;108;108;">
3+
<strelem typ="4" zx="0" zy="0">
4+
<text>109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;32;62;32;49;53;</text>
5+
<schleifeninhalt>
6+
<strelem typ="0" zx="0" zy="0">
7+
<text>109;98;111;116;46;102;111;114;119;97;114;100;40;41;</text>
8+
</strelem>
9+
</schleifeninhalt>
10+
</strelem>
11+
</struktogramm>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<struktogramm caption="66;105;115;32;122;117;114;32;87;97;110;100;">
3+
<strelem typ="4" zx="0" zy="0">
4+
<text>109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;32;62;32;49;53;</text>
5+
<schleifeninhalt>
6+
<strelem typ="0" zx="0" zy="0">
7+
<text>109;98;111;116;46;102;111;114;119;97;114;100;40;41;</text>
8+
</strelem>
9+
</schleifeninhalt>
10+
</strelem>
11+
</struktogramm>
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
---
2+
titel: What's next?
3+
bereich: Outlook
4+
kurz: Look back at what you learned with the mBot2 and see what is still waiting for you in VisuStruct.
5+
---
6+
7+
## Skills I will gain now
8+
9+
::: kompetenzen
10+
- say which programming basics I learned with the mBot2
11+
- find and fix a mistake in a robot program on my own
12+
- name the topics that are still waiting for me in VisuStruct
13+
:::
14+
15+
## What you can do now
16+
17+
Congratulations, you have finished all the robot lessons! With the mBot2 you learned the **basics of structured programming**:
18+
19+
- reading and building a **structure chart** and checking it with a **desk check**,
20+
- **sequence**, **branch** and **switch**, conditions with **and**, **or** and **not**,
21+
- the loops **for**, **while** and **do-while**, also nested, and leaving a loop with **break**,
22+
- **variables**, **data types** and **constants** with `final`, counting, adding up and finding the largest value,
23+
- **arrays** and **strings**,
24+
- your own **methods** with parameters and a return value.
25+
26+
All of this is not just for robots. Every Java program is built from exactly these building blocks, even a game or an app.
27+
28+
::: angeberwissen
29+
Baah, do you know what you actually built with the mBot2? An **embedded system**: a small computer inside a device that measures its surroundings with sensors. Such systems are in washing machines, cars and pacemakers. A modern car has more than a hundred of them. And they are programmed with exactly the building blocks you know now.
30+
:::
31+
32+
## Once more: Why doesn't it run?
33+
34+
One last bug hunt to finish. This time it is a mistake that even professionals often make.
35+
36+
::: übung vb-fehler-23-wie-geht-es-weiter
37+
titel: Why doesn't it run?
38+
code: java
39+
auftrag: The program should drive up to just before the wall, but it doesn't run. "Open in editor" shows the code in the Code area. Click "Run" and read the error message. Fix the mistake and click Check.
40+
start: vb-fehler-23-wie-geht-es-weiter-start.visustruct
41+
welt: wand-kurz, wand-mittel, wand-lang
42+
tipp: Read the error message carefully. Compare the sensor with the other commands: what comes after `mbot.forward`?
43+
tipp: A command is always followed by round brackets, even if there is nothing inside them. It should be `mbot.getDistance() > 15`.
44+
lösung: vb-bis-wand-loesung.visustruct
45+
:::
46+
47+
## What is still missing
48+
49+
Some programming topics have little to do with the robot. You will find them in **VisuStruct**, the world without the robot. Because you already know the basics, you will make quick progress there. The links open in a new window.
50+
51+
- **Other ways to draw it:** writing algorithms as a chart with arrows or as text, in ["Flowcharts and pseudocode"](?visustruct&lektion=01-weitere-darstellungen).
52+
- **Keyboard input:** asking for values while the program runs, in ["Input and output"](?visustruct&lektion=06-eingabe-und-ausgabe).
53+
- **Tables in memory:** arrays with rows and columns, for example for a cinema, in ["Two-dimensional arrays"](?visustruct&lektion=16-zweidimensionale-arrays).
54+
- **Searching and sorting:** finding a value quickly and putting a list in order, in ["Searching and sorting"](?visustruct&lektion=19-suchen-und-sortieren).
55+
- **Other languages:** the same program in Python and JavaScript, in ["Python and JavaScript"](?visustruct&lektion=21-python-und-javascript).
56+
- **Catching crashes:** what happens when someone types "abc" instead of a number, in ["When the program crashes: try and catch"](?visustruct&lektion=22-try-und-catch).
57+
- **Files:** reading and saving text, tables and data, from ["Reading and saving text"](?visustruct&lektion=23-text-einlesen-und-speichern) via ["Tables as CSV"](?visustruct&lektion=25-tabellen-als-csv) to ["Data as JSON"](?visustruct&lektion=26-json).
58+
- **Windows with buttons:** your own programs with a window, a text field and a button, from ["Your first window"](?visustruct&lektion=28-erstes-fenster) to ["Model View Controller"](?visustruct&lektion=40-model-view-controller).
59+
60+
> You don't need the mBot2 for this. But you can come back at any time and teach it new tricks.
61+
62+
## Game: Which world?
63+
64+
::: spiel frage
65+
titel: Game: Which world?
66+
intro: Ludwig has ideas for new programs. Do you learn this with the mBot2 in VisuBot or without the robot in VisuStruct? Eight rounds.
67+
antworten: VisuBot | VisuStruct
68+
69+
runde:
70+
frage: "Drive up to the wall and then beep."
71+
richtig: VisuBot
72+
> Distance sensor, motors and speaker: that is a job for the mBot2.
73+
74+
runde:
75+
frage: "A window with a button that counts to 10."
76+
richtig: VisuStruct
77+
> You build windows with buttons with Swing in VisuStruct.
78+
79+
runde:
80+
frage: "Play a melody that is stored in an array."
81+
richtig: VisuBot
82+
> You learned arrays and melodies with the mBot2's speaker.
83+
84+
runde:
85+
frage: "Read the class's marks from a CSV file."
86+
richtig: VisuStruct
87+
> You learn to read and save files in VisuStruct.
88+
89+
runde:
90+
frage: "If someone types 'abc' instead of a number, the program should not crash."
91+
richtig: VisuStruct
92+
> You catch crashes with try and catch. That is in VisuStruct.
93+
94+
runde:
95+
frage: "Follow a black line with the line sensor."
96+
richtig: VisuBot
97+
> The line sensor sits under the mBot2.
98+
99+
runde:
100+
frage: "Sort ten numbers by size."
101+
richtig: VisuStruct
102+
> Searching and sorting is in VisuStruct. But you can already find the largest value.
103+
104+
runde:
105+
frage: "Draw the steps as a chart with arrows."
106+
richtig: VisuStruct
107+
> That is a flowchart. You learn it in VisuStruct in "Flowcharts and pseudocode".
108+
:::
109+
110+
## Checklist
111+
112+
Rate yourself honestly for each point: ☂️ not yet, ⛅ partly, ☀️ I can do this confidently. For ⛅ and ☂️, **Review** helps you. Then comes the quiz. It shows you whether your self-assessment is right.
113+
114+
::: checkliste
115+
- I can say which programming basics I learned with the mBot2. → What you can do now
116+
- I can find and fix a mistake in a robot program on my own. → Once more: Why doesn't it run?
117+
- I can name the topics that are still waiting for me in VisuStruct. → What is still missing
118+
:::
119+
120+
## Quiz
121+
122+
::: quiz
123+
? Do the building blocks from the robot lessons also work for programs without a robot?
124+
→ What you can do now
125+
- [x] Yes, every Java program is built from sequence, branch, loop, variables and methods
126+
- [ ] No, without a robot you need completely different commands
127+
- [ ] Only the loops
128+
> Only the `mbot.` commands belong to the robot. Everything else is ordinary Java.
129+
130+
? Why doesn't `mbot.getDistance > 15` run?
131+
→ Once more: Why doesn't it run?
132+
- [ ] Because 15 is too small
133+
- [x] Because the round brackets after the command are missing
134+
- [ ] Because you have to write `<`
135+
> Without brackets, Java looks for a variable `getDistance` and finds none.
136+
137+
? Where do you learn how a program catches crashes with try and catch?
138+
→ What is still missing
139+
- [ ] In VisuBot
140+
- [x] In VisuStruct
141+
> That is where the lesson "When the program crashes: try and catch" is.
142+
143+
? Which topics do you find in VisuStruct? Choose the right list.
144+
→ What is still missing
145+
- [x] Flowcharts, sorting, files and windows with buttons
146+
- [ ] Line sensor, LEDs and motors
147+
- [ ] Only the for loop
148+
> Line sensor, LEDs and motors belong to the mBot2, and you already know the for loop.
149+
:::

‎web/package-lock.json‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎web/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "visustruct-web",
33
"private": true,
4-
"version": "0.15.6",
4+
"version": "0.15.7",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

0 commit comments

Comments
 (0)