You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 7, 2026. It is now read-only.
Repository navigation
Commit 081f0d9
Browse filesBrowse the repository at this point in the historyBrowse files
Web 0.15.4: Lektion 1 geteilt, neue Lektion 2 „PAP und Pseudocode“ (#269)
VisuStruct zählt Lektionen jetzt wie VisuBot in Dateireihenfolge durch;
die neue Lektion 01-weitere-darstellungen behält Dateinummer 01, Verweise
„Lektion N“ und nach: werden automatisch umgeschrieben.
Claude-Session: https://claude.ai/code/session_01Ugz28SUi7WrLyAgxYxQzrJ
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,8 +7,9 @@ The format is loosely inspired by Keep a Changelog.
7
7
## [Unreleased]
8
8
9
9
### Changed
10
-
-**Web 0.15.3, VisuBot orange like visucode.de:** the VisuBot theme in the app used #e07000 (buttons, selection, focus) and #f08a00 („Bot“ in the title bar), the visucode.de start page uses #c2410c with the gradient #ea580c → #c2410c (css/visucode.css, MARKE.md). The app now uses the same values; white text on the accent goes from 3.2 : 1 to 5.2 : 1. The command group „Fahren“ (stripe and dot) moves from the old VisuBot orange #d96a00 to #c2410c as well.
11
10
11
+
- **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.
12
+
-**Web 0.15.3, VisuBot orange like visucode.de:** the VisuBot theme in the app used #e07000 (buttons, selection, focus) and #f08a00 („Bot“ in the title bar), the visucode.de start page uses #c2410c with the gradient #ea580c → #c2410c (css/visucode.css, MARKE.md). The app now uses the same values; white text on the accent goes from 3.2 : 1 to 5.2 : 1. The command group „Fahren“ (stripe and dot) moves from the old VisuBot orange #d96a00 to #c2410c as well.
12
13
-**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.
13
14
-**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.
14
15
-**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).
Copy file name to clipboardExpand all lines: web/lessons/de/01-was-ist-ein-struktogramm.md
+1-176Lines changed: 1 addition & 176 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,6 @@ kurz: Algorithmen als Folge klarer Schritte darstellen und lesen.
10
10
- erklären, was ein Algorithmus ist
11
11
- ein Struktogramm lesen
12
12
- die drei Grundbausteine Sequenz, Verzweigung und Wiederholung erkennen
13
-
- einen PAP (englisch *flowchart*) lesen und selbst zusammenbauen
14
-
- erklären, warum Sprünge im PAP zu Fehlern führen
15
-
- einen einfachen Algorithmus als Pseudocode lesen
16
13
:::
17
14
18
15
## Ein Algorithmus ist eine genaue Anleitung
@@ -45,7 +42,7 @@ Die Darstellung stammt von **Isaac Nassi und Ben Shneiderman** (1973). Deshalb h
45
42
Links Isaac „Ike“ Nassi (Foto: [Ed Schipul](https://commons.wikimedia.org/wiki/File:Me_with_Ike_Nassi!!!!!_%286893328729%29.jpg), [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/deed.de), zugeschnitten), rechts Ben Shneiderman (Foto: [Robert Kosara](https://commons.wikimedia.org/wiki/File:Ben_Shneiderman_at_UNCC_%283x4_cropped%29.jpg), CC0).
46
43
:::
47
44
48
-
> Ein Struktogramm hat immer genau einen Anfang (oben) und ein Ende (unten). Es gibt keine Pfeile und keine Sprünge kreuz und quer. Programme, die kreuz und quer springen, nennt man **Spaghetticode**, weil sich ihr Ablauf verheddert wie Nudeln auf dem Teller. Mehr dazu in Schritt 10.
45
+
> Ein Struktogramm hat immer genau einen Anfang (oben) und ein Ende (unten). Es gibt keine Pfeile und keine Sprünge kreuz und quer. Programme, die kreuz und quer springen, nennt man **Spaghetticode**, weil sich ihr Ablauf verheddert wie Nudeln auf dem Teller. Mehr dazu in der nächsten Lektion.
49
46
50
47
::: angeberwissen
51
48
Määäh, aufgepasst! 1972 waren Nassi und Shneiderman noch Doktoranden an der Stony Brook University bei New York, Shneiderman etwa 25 und Nassi etwa 23. Also quasi zwei Studis, die nebenbei Informatikgeschichte geschrieben haben.
@@ -123,138 +120,6 @@ Die Kästen können auch **ineinander geschachtelt** werden: In einer Schleife o
123
120
Trostpflaster für alle mit einer verpatzten Arbeit: Die berühmte Fachzeitschrift *Communications of the ACM* hat den Struktogramm-Artikel abgelehnt. Laut Nassi meinte der Gutachter sogar, sie sollten alle Exemplare einsammeln und verbrennen. Autsch! Er erschien 1973 dann in einem kleineren Heft und wird heute tausendfach zitiert. Ätsch!
124
121
:::
125
122
126
-
## Andere Darstellungen: Der PAP
127
-
128
-
Es gibt noch zwei weitere Arten, Algorithmen darzustellen: den **Programmablaufplan**, kurz **PAP**, und den **Pseudocode**. Beide wirst du im Unterricht treffen. Auf Englisch heißt der PAP **flowchart**, auf Deutsch auch Flussdiagramm. Das englische Wort begegnet dir oft, zum Beispiel in Programmen und im Internet.
129
-
130
-
Hier siehst du noch einmal unser Struktogramm zum Teetrinken aus „Alle drei zusammen“. Als Nächstes schauen wir uns den PAP an, und zwar mit demselben Beispiel.
131
-
132
-
::: diagramm l1-grundbausteine.visustruct
133
-
Das Tee-Beispiel als Struktogramm: erst die Tasse, dann die Verzweigung für den Zucker, dann die Schleife.
134
-
:::
135
-
136
-
### Derselbe Algorithmus als PAP
137
-
138
-
::: grafik l01-pap.svg
139
-
Das Tee-Beispiel als Programmablaufplan. Der Pfeil von „1 Minute warten“ zurück nach oben bildet die Schleife.
140
-
:::
141
-
142
-
### Die Elemente
143
-
144
-
Ein PAP besteht aus wenigen Symbolen, die mit **Pfeilen** verbunden sind. Er ist nach DIN 66001 genormt.
145
-
146
-
-**Oval:** Start oder Ende. Jeder PAP hat genau einen Start und ein Ende.
147
-
-**Rechteck:** eine Anweisung, zum Beispiel *Tasse auf den Tisch stellen*.
148
-
-**Raute:** eine Verzweigung. In der Raute steht eine Frage, heraus führen zwei Pfeile: **ja** und **nein**.
149
-
-**Parallelogramm:** eine Ein- oder Ausgabe. Im Tee-Beispiel kommt sie nicht vor.
150
-
-**Pfeil:** zeigt, welcher Schritt als Nächstes kommt.
151
-
152
-
Eine Schleife hat im PAP kein eigenes Symbol. Du erkennst sie daran, dass ein Pfeil **zurück nach oben** führt.
153
-
154
-
### Die Vorteile
155
-
156
-
-**Sehr gut lesbar**, auch für Leute, die noch nie einen PAP gesehen haben. Man folgt einfach den Pfeilen mit dem Finger.
157
-
- Flussdiagramme benutzt man nicht nur beim Programmieren, sondern überall, wo ein Ablauf erklärt wird: in Bedienungsanleitungen, bei der Fehlersuche („Leuchtet die Lampe? Nein: Steckt der Stecker?“) oder in Firmen für Arbeitsabläufe.
158
-
159
-
## Übung: Kuchen backen als PAP
160
-
161
-
Jetzt baust du selbst einen PAP. Ludwig backt einen Kuchen und geht so vor:
162
-
163
-
Er gibt die Zutaten in die Schüssel und rührt den Teig. Ist der Teig noch nicht glatt, rührt er weiter. Ist er glatt, füllt er den Teig in die Form und backt den Kuchen 30 Minuten. Dann prüft er mit einem Holzstäbchen: Klebt noch Teig daran, backt er 5 Minuten weiter und prüft noch einmal. Ist das Stäbchen sauber, nimmt er den Kuchen heraus und ruft: „Der Kuchen ist fertig!“
164
-
165
-
::: pap
166
-
titel: Übung: Kuchen backen als PAP
167
-
auftrag: Die Plätze im Plan sind leer. Lege jedes Element an seinen Platz. Die Form des Platzes hilft dir.
erklärung: Zwei Schleifen, zwei Pfeile zurück nach oben: Beim Rühren führt der Pfeil zurück zu „Teig rühren“, beim Backen von „5 Minuten weiterbacken“ zurück zur Frage. Die Ausgabe steht im Parallelogramm.
179
-
legende: ja
180
-
:::
181
-
182
-
## Nachteile des PAP: Sprünge
183
-
184
-
Ein Pfeil im PAP darf von jedem Symbol zu jedem anderen führen. Das klingt praktisch, ist aber gefährlich.
185
-
186
-
Früher hat man Programme genau so geschrieben. Jede Zeile hatte eine **Nummer**, und der Befehl **GOTO**, auf Deutsch „gehe zu“, sprang zu einer Zeilennummer. Jedes GEHE ZU ist ein Pfeil aus dem PAP. Unser Tee-Beispiel sähe so aus:
187
-
188
-
```
189
-
10 Tasse auf den Tisch stellen
190
-
20 WENN kein Zucker gewünscht, GEHE ZU 40
191
-
30 Zucker hineingeben
192
-
40 WENN Tee nicht zu heiß, GEHE ZU 70
193
-
50 1 Minute warten
194
-
60 GEHE ZU 40
195
-
70 Tee trinken
196
-
```
197
-
198
-
### Eine Zeile mehr, und schon springt es falsch
199
-
200
-
Jetzt verbesserst du den Algorithmus: Nach dem Zucker soll der Teebeutel heraus. Du fügst die neue Zeile 40 ein, und alle Zeilen darunter rutschen eine Nummer weiter. Die Sprünge zeigen aber noch auf die alten Nummern:
201
-
202
-
```
203
-
10 Tasse auf den Tisch stellen
204
-
20 WENN kein Zucker gewünscht, GEHE ZU 40
205
-
30 Zucker hineingeben
206
-
40 Teebeutel herausnehmen
207
-
50 WENN Tee nicht zu heiß, GEHE ZU 70
208
-
60 1 Minute warten
209
-
70 GEHE ZU 40
210
-
80 Tee trinken
211
-
```
212
-
213
-
Spiel es durch: Zeile 70 schickt dich nicht mehr zur Prüfung in Zeile 50, sondern zum Teebeutel. Und wenn der Tee kühl genug ist, springt Zeile 50 zu Zeile 70 und nicht mehr zu *Tee trinken*. Du nimmst also immer wieder den Teebeutel heraus und trinkst nie. Bei jeder Änderung musst du jedes GEHE ZU prüfen. In einem großen Programm mit Hunderten Sprüngen geht dabei leicht etwas schief.
214
-
215
-
### Kreuz und quer: Spaghetticode
216
-
217
-
Mit Pfeilen kann man auch mitten aus einer Schleife herausspringen oder von außen mitten in eine Schleife hinein. Solche **Aussprünge** und Einsprünge machen den Plan schnell unübersichtlich. Bei vielen Sprüngen kreuzen sich die Pfeile, bis der Plan aussieht wie ein Teller Spaghetti. Deshalb nennt man das **Spaghetticode**. Den Ablauf kann man kaum noch verfolgen, und Fehler verstecken sich gut.
218
-
219
-
Im Struktogramm gibt es keine Pfeile. Fügst du einen Kasten ein, rutscht alles darunter einfach mit, und kein Sprung kann auf die falsche Stelle zeigen. Für das vorzeitige Verlassen einer Schleife gibt es dort einen eigenen, ordentlichen Kasten, den Aussprung. Den lernst du in Lektion 18 kennen.
220
-
221
-
::: angeberwissen
222
-
1968 schrieb der Informatiker Edsger Dijkstra einen berühmten Brief: „Go To Statement Considered Harmful“, auf Deutsch „GOTO gilt als schädlich“. Seitdem baut man Programme nur noch aus Sequenz, Verzweigung und Wiederholung. In Java ist `goto` bis heute ein reserviertes Wort, benutzen darf man es aber nicht. Mäh, Spaghetti esse ich lieber, als sie zu programmieren.
223
-
:::
224
-
225
-
## Pseudocode und Vergleich
226
-
227
-
**Pseudocode** ist Text, der wie ein Programm aussieht, aber in normaler Sprache geschrieben ist. Feste Wörter wie WENN und SOLANGE zeigen die Bausteine, die **Einrückung** zeigt, was dazugehört. Sprünge gibt es auch hier nicht. Das ist unser Tee-Beispiel:
228
-
229
-
```
230
-
Tasse auf den Tisch stellen
231
-
WENN Zucker gewünscht DANN
232
-
Zucker hineingeben
233
-
ENDE WENN
234
-
SOLANGE Tee noch zu heiß
235
-
1 Minute warten
236
-
ENDE SOLANGE
237
-
Tee trinken
238
-
```
239
-
240
-
Pseudocode hat **keine feste Schreibweise**. Manche schreiben FALLS statt WENN, andere setzen einen Pfeil für die Zuweisung (`zahl ← 5`) oder schreiben ganz ohne ENDE-Zeilen. Das ist alles erlaubt. Wichtig ist nur, dass jeder Mensch ihn ohne Erklärung versteht. Pseudocode ist also keine weitere Programmiersprache, die man lernen muss.
241
-
242
-
::: angeberwissen
243
-
Kommt dir Pseudocode bekannt vor? Die Programmiersprache Python sieht ihm sehr ähnlich, und das ist Absicht: Ihr Erfinder Guido van Rossum wollte, dass sich Programme fast wie normaler Text lesen. Auch Python zeigt mit der Einrückung, was zusammengehört. Aber Vorsicht: Python ist eine echte Programmiersprache mit festen Regeln. Ein Leerzeichen zu viel, und der Computer meckert. Pseudocode ist da großzügiger, so wie ich beim Frühstück.
244
-
:::
245
-
246
-
### Im Vergleich
247
-
248
-
-**Struktogramm:** Kästen ineinander, die Schleife ist ein gekipptes L. Die Struktur siehst du auf einen Blick, wilde Sprünge sind unmöglich.
249
-
-**PAP:** Symbole mit Pfeilen, die Schleife ist ein Pfeil zurück nach oben. Sehr anschaulich, aber bei großen Plänen schnell unübersichtlich, und Sprünge kreuz und quer sind möglich.
250
-
-**Pseudocode:** Text mit Einrückung, die Schleife steht zwischen SOLANGE und ENDE SOLANGE. Schnell geschrieben und schon nah am Programmcode.
251
-
252
-
> Alle drei beschreiben denselben Algorithmus. Wenn du eine Form lesen kannst, lernst du die anderen schnell.
253
-
254
-
::: angeberwissen
255
-
Nassi und Shneiderman wollten den Pfeilen an den Kragen! Ihr Artikel von 1973 hieß „Flowchart Techniques for Structured Programming“. Flowchart ist das englische Wort für Ablaufplan. Mit Pfeilen kann man nämlich kreuz und quer springen, bis der Plan aussieht wie ein Teller Spaghetti. Im Struktogramm geht das gar nicht. Mäh, so mag ich das: ordentlich, wie mein Stall.
256
-
:::
257
-
258
123
## Erst die Struktur, dann der Code
259
124
260
125
Beim Programmieren passieren zwei Dinge gleichzeitig: Du musst dir den Ablauf überlegen und die Schreibweise der Programmiersprache beachten. Mit einem Struktogramm trennst du beides.
@@ -321,10 +186,6 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀
321
186
- Ich kann ein Struktogramm von oben nach unten lesen. → So liest du ein Struktogramm
322
187
- Ich kann die drei Grundbausteine Sequenz, Verzweigung und Wiederholung nennen. → Baustein 1: Die Sequenz
323
188
- Ich kann jeden Baustein im Struktogramm an seiner Form erkennen. → Alle drei zusammen
324
-
- Ich kann die Elemente eines PAP benennen und einen einfachen PAP lesen. → Andere Darstellungen: Der PAP
325
-
- Ich kann einen einfachen Algorithmus selbst als PAP zusammenbauen. → Übung: Kuchen backen als PAP
326
-
- Ich kann erklären, warum Sprünge mit GOTO zu Fehlern und Spaghetticode führen. → Nachteile des PAP: Sprünge
327
-
- Ich kann einen einfachen Algorithmus als Pseudocode lesen. → Pseudocode und Vergleich
328
189
:::
329
190
330
191
## Wissenstest
@@ -365,40 +226,4 @@ Schätze dich bei jedem Punkt ehrlich ein: ☂️ noch nicht, ⛅ teilweise, ☀
365
226
-[ ] Ein bestimmtes Programm in Java
366
227
-[ ] Ein Bild, das ein Programm erklärt
367
228
> Ein Algorithmus ist unabhängig von der Programmiersprache. Ein Struktogramm ist eine Möglichkeit, ihn aufzuschreiben.
368
-
369
-
? Woran erkennst du in einem Programmablaufplan (PAP) eine Schleife?
370
-
→ Andere Darstellungen: Der PAP
371
-
-[ ] An einem gekippten L
372
-
-[x] An einem Pfeil, der zurück nach oben führt
373
-
-[ ] Am Wort SOLANGE
374
-
> Das gekippte L gehört zum Struktogramm, SOLANGE zum Pseudocode.
375
-
376
-
? Ordne jedem Symbol im PAP seine Bedeutung zu.
377
-
→ Andere Darstellungen: Der PAP
378
-
= Oval -> Start oder Ende
379
-
= Rechteck -> Anweisung
380
-
= Raute -> Verzweigung
381
-
= Parallelogramm -> Ein- oder Ausgabe
382
-
> Die Raute hat zwei Ausgänge: ja und nein.
383
-
384
-
? Wie heißt der Programmablaufplan auf Englisch?
385
-
→ Andere Darstellungen: Der PAP
386
-
-[x] Flowchart
387
-
-[ ] Structure chart
388
-
-[ ] Pseudocode
389
-
> Auf Deutsch sagt man auch Flussdiagramm. Structure chart ist das Struktogramm.
390
-
391
-
? Du fügst in ein Programm mit GOTO eine neue Zeile ein. Was kann passieren?
392
-
→ Nachteile des PAP: Sprünge
393
-
-[x] Die Sprünge zeigen auf die falschen Zeilen, weil sich die Nummern verschoben haben
394
-
-[ ] Nichts, die Sprünge passen sich von selbst an
395
-
-[ ] Das Programm wird automatisch schneller
396
-
> Jedes GEHE ZU zeigt auf eine feste Zeilennummer. Rutschen die Zeilen weiter, springt das Programm an die falsche Stelle.
397
-
398
-
? Was zeigt im Pseudocode, welche Zeilen zu einer Schleife gehören?
399
-
→ Pseudocode und Vergleich
400
-
-[ ] Die Farbe
401
-
-[x] Die Einrückung und das ENDE SOLANGE
402
-
-[ ] Ein Pfeil
403
-
> Alles zwischen SOLANGE und ENDE SOLANGE ist eingerückt und wird wiederholt.
0 commit comments