Zur Haupt­na­vi­ga­ti­on sprin­gen [Alt]+[0] Zum Sei­ten­in­halt sprin­gen [Alt]+[1]

Frosch­hüp­fen

Das ge­sam­te Pro­jekt geht über drei Dop­pel­stun­den und be­inhal­tet Teile ohne PC und Teile mit Pro­gram­mier­auf­ga­ben für Scratch oder den MIT-App-In­ven­tor.

Im ers­ten Teil wird das Va­ria­blen­kon­zept wie­der­holt und bei der Pro­gram­mie­rung wer­den Zu­falls­zah­len ein­ge­setzt.

Im zwei­ten Teil wird eine neue Da­ten­struk­tur ein­ge­führt und ge­nutzt.

Frosch­hüp­fen – Teil I (Ak­ti­on)

Zu­nächst be­kommt jede Schü­le­rin und jeder Schü­ler einen Pa­pier­frosch1. Die Frö­sche sind durch­num­me­riert von eins bis zur An­zahl der Schü­ler. (Wenn im zwei­ten Auf­trag zwei oder drei Grup­pen ge­bil­det wer­den, weil die Klas­se zu groß ist, er­folgt die Num­me­rie­rung für jede Grup­pe extra, auch wenn die Schü­le­rin­nen und Schü­ler hier noch nicht in Grup­pen auf­ge­teilt sind. Hier bie­tet es sich an, für jede Grup­pe eine an­de­re Farbe der Kle­be­punk­te zu wäh­len, dass die Zu­ge­hö­rig­keit zur Grup­pe klar er­kenn­bar ist.)

In einem ers­ten Schritt be­kom­men alle den Auf­trag, ihren Frosch so­weit wie mög­lich sprin­gen zu las­sen und die Sprung­wei­te auf einen klei­nen Zet­tel zu no­tie­ren. Es soll das Va­ria­blen­kon­zept aus Klas­se 7 wie­der­holt wer­den. Des­halb be­kommt jeder eine leere Streich­holz­schach­tel mit der Auf­schrift „Sprung­wei­te“.

Der Zet­tel mit der no­tier­ten Sprung­wei­te wird in das Schäch­tel­chen ge­legt. Jetzt las­sen alle ihren Frosch ein wei­te­res Mal sprin­gen und ver­glei­chen die neue Sprung­wei­te mit der bis­he­ri­gen. Ist die neue Sprung­wei­te grö­ßer, so wird der alte Wert auf dem Zet­tel in der Streich­holz­schach­tel durch den neuen Wert er­setzt. Wenn nicht, wird der Wert der Va­ria­ble nicht ver­än­dert.

Das wird so lange fort­ge­setzt, bis jeder Frosch 10-mal ge­sprun­gen ist.

Die Schü­le­rin­nen und Schü­ler er­hal­ten den Auf­trag genau auf­zu­schrei­ben, wel­che Schrit­te sie in jedem Durch­gang ge­macht haben und sie tra­gen ihre Werte im Frosch­sprung­pro­to­koll (02_al­g_frosch_auf­tra­g_1_­pro­to­koll) ein. Ein Bei­spiel für ein aus­ge­füll­tes Pro­to­koll fin­den Sie in den Lö­sun­gen (02_al­g_frosch_auf­tra­g_1_bei­spiel­pro­to­koll).

Hin­ter­grund

Die Ak­ti­on dient auf der einen Seite der Wie­der­ho­lung des Va­ria­blen­kon­zep­tes, auf der an­de­ren Seite ist sie Grund­la­ge für die spä­te­re Ein­füh­rung einer neuen Da­ten­struk­tur.

In der Pro­gram­mie­rung be­zeich­net man als Va­ria­ble einen lo­gi­schen Spei­cher­platz mit des­sen Wert2. Jede Va­ria­ble be­sitzt einen Namen, unter dem man sie an­spre­chen und ihren Wert ver­än­dern kann.

Für die Schü­le­rin­nen und Schü­ler bie­tet sich hier als Ver­an­schau­li­chung ein Käst­chen an. Das Käst­chen be­kommt einen Namen und steht in der Folge für die Va­ria­ble.

Bei der In­itia­li­sie­rung wird der Va­ria­ble das erste Mal ein Wert zu­ge­wie­sen. In der Schü­ler­ak­ti­on ent­spricht dies dem Ein­le­gen des ers­ten be­schrif­te­ten Zet­tels in die Streich­holz­schach­tel.

Im Fol­gen­den wer­den in jedem Schritt (nach jedem Sprung des Fro­sches) der Wert der Va­ria­ble er­fragt und ggf. ver­än­dert. Hier­bei nut­zen die Schü­le­rin­nen und Schü­ler bei der Um­set­zung in der Pro­gram­mier­um­ge­bung eine Ver­zwei­gung ohne Al­ter­na­ti­ve: „Falls „die neue Sprung­wei­te“ grö­ßer ist als „die Sprung­wei­te (in der Schach­tel)“, wird der Wert der neuen Sprung­wei­te in der Va­ria­ble Sprung­wei­te ge­spei­chert (auf den Zet­tel in der Schach­tel ge­schrie­ben).“

Nach den zehn Sprün­gen ist bei jedem Frosch die ma­xi­ma­le Sprung­wei­te auf dem Zet­tel in der Schach­tel no­tiert. Dies ma­chen wir uns spä­ter bei der Ein­füh­rung der neuen Da­ten­struk­tur zu nutze.

Frosch­hüp­fen – Teil I (Pro­gram­mie­rung)

Der nächs­te Auf­trag (02_al­g_frosch_auf­tra­g_1) fin­det am PC statt. Hier wird das Frosch­hüp­fen von vor­her pro­gram­miert:

  1. Ein Frosch, der ganz links auf der Bühne sitzt, „springt“ beim An­kli­cken mit der Maus eine zu­fäl­li­ge Weite nach rechts.

  2. Das erste Er­geb­nis wird di­rekt in einer Va­ria­ble „Sprung­wei­te“ ge­spei­chert.

  3. Eine wei­te­re Va­ria­ble „Sprung­wei­te_­neu“ er­hält nach jedem „Sprung“ die neue Weite als Wert.

  4. Ab dem zwei­ten Sprung wird über­prüft, ob die neue Weite grö­ßer ist. Falls ja, wird der Wert der Va­ria­ble „Sprung­wei­te“ er­setzt, sonst bleibt er gleich.

  5. Zur Übung kann eine wei­te­re Va­ria­ble als Zäh­ler ge­nutzt wer­den, um die Sprün­ge des Fro­sches mit­zu­zäh­len.

Hin­ter­grund

Wenn die Schü­le­rin­nen und Schü­ler in Klas­se 7 noch nicht mit Zu­falls­zah­len ge­ar­bei­tet haben, ler­nen sie die Nut­zung hier ken­nen. Es ist nicht daran ge­dacht zu the­ma­ti­sie­ren, wie der Com­pu­ter Zu­falls­zah­len er­zeugt. Es geht hier le­dig­lich um die Er­öff­nung neuer Mög­lich­kei­ten, die Zu­falls­zah­len bei der Pro­gram­mie­rung bie­ten.

In un­se­rem Fall si­mu­lie­ren wir die Frosch­sprün­ge und er­hal­ten Sprung­wei­ten in einem vor­ge­ge­be­nen Be­reich.

Um das Ganze an­schau­lich zu ma­chen, las­sen die Schü­le­rin­nen und Schü­ler auf der Bühne in Scratch einen Frosch tat­säch­lich die zu­fäl­li­ge Weite in Pixel nach vorne sprin­gen. Um das deut­lich sicht­bar zu ma­chen, ist es sinn­voll, den Frosch beim An­kli­cken zu­nächst wie­der an die Aus­gangs­po­si­ti­on zu set­zen, dort kurz war­ten zu las­sen und erst dann den Sprung durch­zu­füh­ren.

Frosch­hüp­fen – Teil II (Ak­ti­on)

Der zwei­te Auf­trag geht an die ge­sam­te Grup­pe. Ist die Klas­se zu groß, kann man auch in zwei oder drei Un­ter­grup­pen auf­tei­len. Jede Grup­pe be­kommt den Auf­trag, die je­weils beste Sprung­wei­te aller Frö­sche der Grup­pe in einer neuen Da­ten­struk­tur zu spei­chern, um die Wei­ten ver­glei­chen zu kön­nen.

Dazu be­kommt jede Grup­pe zu­nächst den Auf­trag, ihre Schach­teln in der Rei­hen­fol­ge ihrer Frosch­num­mern an­ein­an­der zu legen. In Schach­tel Nr. 1 liegt also die ma­xi­ma­le Sprung­wei­te von Frosch Nr. 1, in Schach­tel Nr. 2 die ma­xi­ma­le Weite von Frosch Nr. 2, usw.

Die Schü­le­rin­nen und Schü­ler einer Grup­pe er­hal­ten dann den Auf­trag, in einem ers­ten Schritt den Frosch mit der größ­ten Weite zu fin­den, und in einem zwei­ten Schritt den Mit­tel­wert (arith­me­ti­sches Mit­tel) der Sprung­wei­ten aller Frö­sche in der Grup­pe zu be­rech­nen. Für beide Auf­ga­ben gibt es fol­gen­de Vor­ga­ben:

  1. Es darf immer nur eine Schach­tel ge­öff­net sein.

  2. Die Grup­pe darf sich zu­sätz­lich zum Wert in der ge­öff­ne­ten Schach­tel immer nur einen wei­te­ren Wert „mer­ken“. (Möch­te man auch wis­sen, wel­cher Frosch die beste Sprung­wei­te hatte, muss man sich dazu auch die je­wei­li­ge Po­si­ti­on mer­ken.)

Auch hier be­kom­men die Schü­le­rin­nen und Schü­ler wie­der die Auf­ga­be, ihre Schrit­te genau auf­zu­schrei­ben. (Es macht Sinn, einen Pro­to­kol­lan­ten oder eine Pro­to­kol­lan­tin zu be­stim­men.) Ein Bei­spiel­pro­to­koll fin­den Sie in den Lö­sun­gen (02_al­g_frosch_auf­tra­g_2 _bei­spiel­pro­to­koll).

Im Ple­num wird das Vor­ge­hen der ein­zel­nen Grup­pen vor­ge­stellt und be­spro­chen.

Im An­schluss daran er­hal­ten die Schü­le­rin­nen und Schü­ler ein Ar­beits­blatt zu Lis­ten (02_al­g_frosch_auf­tra­g_2_­lis­ten), bei dem sie grup­pen­in­tern zu­nächst Auf­ga­ben zur Schreib­wei­se und da­nach Auf­ga­ben zu Lis­ten in der Pro­gram­mier­um­ge­bung be­ar­bei­ten.

Hin­ter­grund

Meh­re­re Daten des glei­chen Typs las­sen sich in un­ter­schied­li­chen Da­ten­struk­tu­ren spei­chern. So­wohl in Scratch als auch im MIT-App-In­ven­tor heißt diese Da­ten­struk­tur Liste, ist aber eine Misch­form aus einem dy­na­mi­schen Array und einer ver­ket­te­ten Liste.

Bei einem Array (Feld) han­delt es sich um eine li­nea­re An­ord­nung von Daten des­sel­ben Grund­typs. Ein Array hat eine feste Größe, die nicht ver­än­der­bar ist. Da jedes Ele­ment mit einem Index ver­se­hen ist, kann di­rekt auf ein­zel­ne Ele­men­te zu­ge­grif­fen wer­den.

Eine ver­ket­te­te Liste da­ge­gen bie­tet die Mög­lich­keit, be­lie­big viele Ele­men­te ge­ord­net in einer Da­ten­struk­tur ab­zu­le­gen, es ist aber nur das erste Ele­ment be­kannt. Jedes Ele­ment kennt sei­nen Nach­fol­ger. Ein Zu­griff di­rekt auf ein Ele­ment ist aber nicht mög­lich.

Bei dop­pelt ver­ket­te­ten Lis­ten ist auch das letz­te Ele­ment be­kannt und jedes Ele­ment kennt so­wohl Vor­gän­ger als auch Nach­fol­ger.

Der große Vor­teil von Ar­rays ist es, dass man di­rekt auf ein Ele­ment durch sei­nen Index zu­grei­fen kann, der Nach­teil ist die feste Größe. Hier bie­tet sich die Struk­tur des dy­na­mi­schen Ar­rays an, bei dem die Größe des Fel­des ver­än­dert wer­den kann.

Wie oben schon er­wähnt, bie­ten beide Pro­gram­mier­um­ge­bun­gen eine ele­gan­te Misch­form an. Es kön­nen so­wohl be­lie­big viele Ele­men­te an­ge­hängt wer­den, ohne die Größe ver­än­dern zu müs­sen (wie bei ver­ket­te­ten Lis­ten), man kann auch di­rekt auf ein Ele­ment zu­grei­fen (wie bei Ar­rays).

Bei einem Array blei­ben Po­si­tio­nen, deren Ele­ment ge­löscht ist, un­be­setzt. Da es eine feste Größe be­sitzt, wird der Wert des ge­lösch­ten Ele­men­tes auf „null“ ge­setzt. Wird da­ge­gen ein Ele­ment aus einer Liste ge­löscht, wird der Nach­fol­ger des ge­lösch­ten Ele­men­tes an des­sen Vor­gän­ger an­ge­hängt. Diese Vor­ge­hens­wei­se der Liste wird auch hier in bei­den Um­ge­bun­gen ge­nutzt.

Zur Dar­stel­lung von Lis­ten wer­den in den meis­ten Pro­gram­mier­spra­chen ecki­ge Klam­mern ver­wen­det.

Bei­spie­le:

[23, 14, 56, 70, 50, 23] – Liste von Sprung­wei­ten eines Fro­sches

[ ] - leere Liste

[‘Simon‘, ‘Susi‘, ‘Hans‘, ‘Elke‘, ‘Micha‘] – Liste der Grup­pen­teil­neh­mer

Alle Ele­men­te einer Liste sind durch­num­me­riert. In den gän­gi­gen Pro­gram­mier­spra­chen star­tet die Zäh­lung bei 0. In Scratch und dem MIT-App-In­ven­tor star­tet sie – was für die jün­ge­ren Schü­le­rin­nen und Schü­ler in­tui­ti­ver ist – mit 1. Die Num­mer eines Ele­men­tes wird Index ge­nannt.

Bei­spiel:

S = [23, 14, 56, 70, 50, 23]

Die Liste S hat 6 Ele­men­te. Dabei be­schreibt S[ i ] das i-te Lis­ten­ele­ment.

S[ 1 ] ist 23, S[ 2 ] ist 14, usw.

Den Um­gang mit Lis­ten in Scratch und dem MIT-App-In­ven­tor fin­den Sie auf dem je­wei­li­gen Ar­beits­blatt für die Schü­le­rin­nen und Schü­ler (02_al­g_frosch_auf­tra­g_2_­lis­ten).

Frosch­hüp­fen – Teil II (Pro­gram­mie­rung)

Die Schü­le­rin­nen und Schü­ler ver­su­chen jetzt, ihre Ent­de­ckun­gen und ihr neu er­wor­be­nes Wis­sen über Lis­ten auch in der Pro­gram­mier­um­ge­bung um­zu­set­zen. Die Auf­trä­ge zur Um­set­zung mit Hil­fe­stel­lun­gen für Scratch (oder den AI2) fin­den Sie im Ma­te­ri­al (02_al­g_frosch_auf­tra­g_2).

Zu­nächst wird eine neue Liste er­zeugt, die ma­xi­ma­len Sprung­wei­ten der Frö­sche aus der Grup­pe dort ein­ge­ge­ben und es wer­den zwei Tas­ta­tur­er­eig­nis­se pro­gram­miert, die das Ma­xi­mum bzw. den Mit­tel­wert der Lis­ten­ele­men­te be­stim­men sol­len.

Im An­schluss daran kön­nen die bei­den As­pek­te ver­knüpft wer­den. Jede zu­fäl­li­ge Sprung­wei­te des Fro­sches auf der Bühne wird in die Liste ein­ge­tra­gen. Dann kön­nen Ma­xi­mum und Mit­tel­wert der Ele­men­te der Liste be­stimmt und aus­ge­ge­ben wer­den.

Als Dif­fe­ren­zie­rungs­mög­lich­keit kön­nen schnel­le Schü­le­rin­nen und Schü­ler sich über­le­gen, wie die Ein­trä­ge der Liste sor­tiert wer­den kön­nen. Für die Pro­gram­mie­rung eines Spiels mit High­s­core-Liste ist das zum Bei­spiel eine gute Vor­ar­beit.

Grund­sätz­lich ist die Sor­tie­rung noch nicht in Klas­se 8 im IMP-Bil­dungs­plan.

In der Er­pro­bung haben die Schü­le­rin­nen und Schü­ler, die ihre Lis­ten sor­tie­ren woll­ten, die Suche nach dem Ma­xi­mum ge­nutzt. Sie haben zwei wei­te­re Lis­ten de­fi­niert. Eine neue, leere Liste und eine Hilfs­lis­te, die an­fangs ihrer Liste der Sprung­wei­ten ent­spricht. Sie haben dann in der ur­sprüng­li­chen Liste nach dem Ma­xi­mum ge­sucht und die­ses an die neue leere Liste an­ge­hängt. An­schlie­ßend wurde aus der Hilfs­lis­te das Ele­ment mit dem größ­ten Wert ge­löscht. In den nächs­ten Schrit­ten wurde dies so fort­ge­setzt und das je­weils das neue Ma­xi­mum an den Be­ginn der Liste ge­setzt.

 


1 URL: http://​www.​mit­tags-​pause.​de/​ori­ga­mi-​frosch-​fal­ten-​an­lei­tung-​zum-​bas­teln/ (ab­ge­ru­fen am 19.04.2018); Al­ter­na­tiv kön­nen Kunst­stoff-Chips des sog. Floh-Spiels ver­wen­det wer­den.

2 Schü­ler­du­den In­for­ma­tik, 4. Auf­la­ge, 2003, S. 527, Be­griff: Va­ria­ble

 

Un­ter­richts­ver­lauf: Her­un­ter­la­den [odt][102 KB]

Un­ter­richts­ver­lauf: Her­un­ter­la­den [pdf][160 KB]

 

Wei­ter zu Ein­ar­mi­ger Ban­dit