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

Dop­pel­stun­de 1: Kon­zept „Ver­ket­tung“

Ziel der Stun­de ist, dass die Schü­le­rin­nen und Schü­ler ver­ste­hen, wie man eine Kette von Ob­jek­ten bil­den kann, indem sich jedes Ob­jekt sei­nen Nach­fol­ger merkt. Dabei wird zu­nächst nicht pro­gram­miert, statt­des­sen wer­den Schreib­tisch­tests und Rol­len­spie­le ein­ge­setzt, um das Kon­zept der Ver­ket­tung dar­zu­stel­len. Aus­ge­hend von einem vor­stell­ba­ren Sze­na­rio nä­hert man sich der tat­säch­li­chen Im­ple­men­ta­ti­on im Com­pu­ter.

Der Ein­stieg ist ein Sze­na­rio aus der „rea­len Welt“ (Prä­sen­ta­ti­on 01_ver­ket­tung.odp): Die Rei­hen­fol­ge der Pa­ti­en­ten in einem War­te­zim­mer wird nicht zen­tral ver­wal­tet, indem sich eine Per­son merkt, wer wann an der Reihe ist. Statt­des­sen wird durch eine ein­fa­che Regel dafür ge­sorgt, dass eine „Kette“ von Pa­ti­en­ten ge­bil­det: Jeder merkt sich die nächs­te Per­son, die nach ihm dran­kommt. Die Sprech­stun­den­hil­fe muss sich damit nur noch mer­ken, wer vorne in der Schlan­ge steht.

Eine al­ter­na­ti­ve Lö­sung wäre, dass jeder Pa­ti­ent sich sei­nen Vor­gän­ger merkt. Beim Be­tre­ten des War­te­zim­mers mel­det sich der bis­he­ri­ge Letz­te und der neue Pa­ti­ent muss sich die­sen mer­ken. Wenn die Sprech­stun­den­hil­fe den nächs­ten Pa­ti­en­ten auf­ruft, geht der­je­ni­ge, der kei­nen Vor­gän­ger mehr hat, ins Be­hand­lungs­zim­mer. Sein Nach­fol­ger weiß jetzt, dass er kei­nen Vor­gän­ger mehr hat und damit als nächs­tes dran ist. Die­ser An­satz ist eben­falls denk­bar und mög­lich, führt aber nicht zu der hier be­ab­sich­tig­ten ver­ket­te­ten Liste. Hier gibt es ggf. Schwie­rig­kei­ten, wenn man spä­ter eine Per­son an der n-ten Po­si­ti­on ein­fü­gen möch­te.

Den Schü­le­rin­nen und Schü­lern wird das Sze­na­rio in­klu­si­ve der Re­geln be­schrie­ben und sie be­kom­men den Auf­trag, in Grup­pen­ar­beit ein Re­gel­werk zu er­ar­bei­ten, damit das Sys­tem funk­tio­nie­ren kann. Auf­ga­be der Lehr­kraft ist in die­ser Phase, die Ideen der Schü­le­rin­nen und Schü­ler in die rich­ti­ge Rich­tung zu len­ken, indem Si­tua­tio­nen be­schrie­ben wer­den, in der ihre bis­he­ri­ge Lö­sung fehl­schla­gen würde.

Nach der Er­ar­bei­tung wer­den die Vor­schlä­ge ge­sam­melt und fest­ge­hal­ten. Die Prä­sen­ta­ti­on ent­hält ein mög­li­ches Re­gel­werk, nach der man ar­bei­ten kann. Es bie­tet sich an, an der Tafel mit Strich­männ­chen (oder Bil­dern auf Kar­ten mit Ma­gne­ten) zu er­ar­bei­ten, was pas­siert, wenn ein neuer Pa­ti­ent ins War­te­zim­mer kommt bzw. was getan wird, wenn ein der nächs­te Pa­ti­ent zur Be­hand­lung ge­ru­fen wird.

Zur Ver­tie­fung er­ar­bei­tet man da­nach einen Al­go­rith­mus, mit dem man das Durch­zäh­len, das Ent­fer­nen von Pa­ti­en­ten und das wahl­freie Ein­fü­gen (an be­lie­bi­gen Stel­le, nicht nur der letz­ten) durch­füh­ren kann. Die er­ar­bei­te­te Tech­nik wird dann in einem Rol­len­spiel an­ge­wandt. Dazu kön­nen Sie mit Hilfe der Ko­pier­vor­la­ge 01_rol­len­spiel_ver­ket­tung.ods Kärt­chen er­stel­len las­sen. Die Ko­pier­vor­la­ge geht davon aus, dass der Kurs zwi­schen 8 und 24 Mit­glie­der hat. Tra­gen Sie dazu die Namen der Kurs­mit­glie­der in der ers­ten Ta­bel­le im grau­en Be­reich ein. Wenn Sie die Namen in eine zu­fäl­li­ge Rei­hen­fol­ge brin­gen wol­len, kli­cken Sie auf den But­ton „Namen mi­schen“. Dies funk­tio­niert nur, wenn Sie beim Öff­nen Ma­kros ak­ti­viert haben. Wenn Sie das nicht wün­schen, wer­den die Namen in der Rei­hen­fol­ge der Ein­tra­gung ver­wen­det.

Dru­cken Sie die Ta­bel­le „Kar­ten“ aus, nach Mög­lich­keit zwei­sei­tig (dre­hen an lan­ger Seite) – auf diese Weise er­hält jedes Kurs­mit­glied ein Kärt­chen mit dem Namen auf der einen und der „Rolle“ auf der an­de­ren Seite. Ein/e Schü­ler/in ist die Sprech­stun­den­hil­fe und muss die Auf­ga­ben er­le­di­gen. Sie kennt den ers­ten Pa­ti­en­ten im War­te­zim­mer. Fünf Kurs­mit­glie­der sit­zen im War­te­zim­mer und ken­nen je­weils ihren Nach­fol­ger (mit Aus­nah­me des letz­ten). Zwei wei­te­re Kurs­mit­glie­der wer­den spä­ter im War­te­zim­mer plat­ziert.

Die letz­te Seite der Ta­bel­le ist für Sie ge­dacht, dar­auf steht, wel­che Er­eig­nis­se zu be­han­deln sind: An­hän­gen eines neuen Pa­ti­en­ten, Ein­fü­gen eines Pa­ti­en­ten an einer be­stimm­ten Po­si­ti­on in der Kette, Zäh­len der Pa­ti­en­ten und Ent­fer­nen eines Pa­ti­en­ten. Es wur­den be­wusst nicht alle Kurs­mit­glie­der mit Rol­len ver­se­hen, damit z.B. das Durch­zäh­len nicht ein­fach durch Zäh­len der Per­so­nen im Raum er­le­digt wer­den kann. Die zu­fäl­li­ge Rei­hen­fol­ge sorgt dafür, dass die Kurs­mit­glie­der auch nicht ohne Kennt­nis der Ver­ket­tung wis­sen kön­nen, wer auf wen folgt. Wenn sich die Ab­fol­ge der Pa­ti­en­ten im War­te­zim­mer än­dert, sol­len die Än­de­run­gen auch durch Über­schrei­ben der Ein­trä­ge auf den Kärt­chen re­prä­sen­tiert wer­den.

Im Ar­beits­blatt 01_ver­ket­tung.odt nä­hert man sich wei­ter der tat­säch­li­chen Im­ple­men­ta­ti­on einer ver­ket­te­ten Liste an. Der erste Teil kann als Part­ner- oder Ein­zel­ar­beit durch­ge­führt wer­den, der zwei­te Teil ist als Ein­zel­ar­beit ge­dacht. Für den ers­ten Teil muss wie­der ein wenig Vor­be­rei­tung in­ves­tiert wer­den. Dru­cken Sie die Ta­bel­len aus der Datei 01_ver­ket­te­te_­lis­te.ods aus:

  • Ta­bel­le „Lis­ten­kno­ten“: Für jede Grup­pe be­nö­ti­gen Sie etwa sie­ben Lis­ten­kno­ten-Kar­ten. Dru­cken Sie die Ta­bel­le dop­pel­sei­tig, so dass auf der Vor­der­sei­te je­weils „new Lis­ten­kno­ten(…)“ steht und auf der Rück­sei­te der In­halt des Lis­ten­kno­tens. Be­ach­ten Sie, dass die vier­stel­li­gen Num­mern in­ner­halb jeder Grup­pe ein­deu­tig sein müs­sen.
  • Ta­bel­le „Liste“: Für jede Grup­pe be­nö­ti­gen Sie zwei bis drei Lis­ten-Kar­ten.

Zur Durch­füh­rung der ers­ten Ver­ket­tungs­übung legt man die Lis­ten­kar­ten offen auf den Tisch sowie die Lis­ten­kno­ten-Kar­ten so, dass die Vor­der­sei­te (!) sicht­bar ist. Die Kar­ten wer­den zu­fäl­lig auf dem Tisch ver­teilt. Dann ist die Auf­ga­be für die Schü­le­rin­nen und Schü­ler, die auf dem Ar­beits­blatt ge­nann­ten Lis­ten­ope­ra­tio­nen durch­zu­füh­ren. Dabei dür­fen Kärt­chen zwar um­ge­dreht wer­den, aber nicht mehr ver­scho­ben wer­den.

  • Eine Liste A wird er­zeugt: Auf ein Lis­ten-Kärt­chen wird der Name „A“ ge­schrie­ben.
  • An die Liste A wird ein Wert X an­ge­hängt: Ein Lis­ten­kno­ten-Kärt­chen wird um­ge­dreht. Das Um­dre­hen der Kärt­chen ent­spricht im Fol­gen­den immer dem Er­zeu­gen eines neuen Lis­ten­kno­tens. Der Wert wird an die ent­spre­chen­de Stel­le auf die Karte ge­schrie­ben und der Liste wird die Num­mer des ers­ten Lis­ten­kno­tens ein­ge­tra­gen.
  • Wenn wei­ter hin­ten Werte an­ge­hängt wer­den, muss zu­erst über die Nach­fol­ger-Ver­wei­se der letz­te Kno­ten ge­sucht wer­den. Dann wird die­sem sein neuer Nach­fol­ger ein­ge­tra­gen.
  • In spä­te­ren Auf­ga­ben wer­den neue Werte wei­ter vorne ein­ge­fügt oder ent­fernt. Dabei müs­sen Nach­fol­ger-Ver­wei­se über­schrie­ben wer­den oder der Liste muss ein neuer „Ers­ter Kno­ten“ ge­setzt wer­den.

Im zwei­ten Teil be­trach­tet man ver­ket­te­te Lis­ten, wie man sie sich im Ar­beits­spei­cher des Com­pu­ters vor­stel­len kann. Auf dem Blatt wird der Ar­beits­spei­cher eines ima­gi­nä­ren Com­pu­ters dar­ge­stellt1 , der über 100 Spei­cher­zel­len ver­fügt. Jede die­ser Spei­cher­zel­len kann eine Zahl von 00 bis 99 ab­spei­chern. Die Spei­cher­zel­len sind zei­len­wei­se durch­num­me­riert, d.h. die erste Zeile ent­hält die Spei­cher­zel­len von 00 bis 09, die zwei­te Zeile von 10 bis 19 usw.

Die­ser Spei­cher ent­hält zwei Lis­ten, die über den ge­sam­ten Spei­cher ver­streut sind. Man kann die Lis­ten durch­lau­fen, indem man die Nach­fol­ger-Ver­wei­se ver­folgt. Die Spei­cher­zel­le 02 (unten im blau­en Kreis) ver­weist auf den ers­ten Kno­ten der Liste A (seine Adres­se ist 16), die Spei­cher­zel­le 03 ver­weist auf den An­fang von Liste B (Adres­se 34).

Speicher mit zwei Listen

Bild­quel­le: Spei­cher mit zwei Lis­ten ZPG In­for­ma­tik [CC BY-NC-SA 3.0 DE], aus 01_­un­ter­richts­ver­lauf.odt

Jeder Lis­ten­kno­ten be­steht aus zwei auf­ein­an­der­fol­gen­den Spei­cher­zel­len. Im Bei­spiel rechts sind das die rot bzw. grün ein­ge­rahm­ten Zel­len. Die erste Zelle ist der Da­ten­wert, die zwei­te Zelle gibt die Adres­se des Nach­fol­gers an. Wenn die zwei­te Zelle eine 00 ent­hält, steht dies für „kein Nach­fol­ger“, d.h. das Ende der Liste.

Die rech­te Ta­bel­le ent­hält noch­mals die iden­ti­schen Zah­len, die im zwei­ten Teil der Auf­ga­ben über­schrie­ben wer­den kön­nen.

 

1 Die Dar­stel­lung ist von Mi­krSimD in­spi­riert. Zur Ver­ein­fa­chung wurde die He­xa­de­zi­mal­dar­stel­lung al­ler­dings durch eine De­zi­mal­dar­stel­lung er­setzt.

 

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

 

Wei­ter zu DS 2: Ver­ket­tung im­ple­men­tie­ren