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

Ein­lei­tung

Bil­dungs­plan­be­zug

Das vor­lie­gen­de Ma­te­ri­al soll ex­em­pla­risch Ideen zur Um­set­zung der Bil­dungs­stan­dards In­for­ma­tik im Leis­tungs­fach der Kurs­stu­fe zum Thema: „Struk­tu­rier­te und ob­jekt­ori­en­tier­te Pro­gram­mie­rung“ skiz­zie­ren. Der Fokus liegt dabei auf fol­gen­den Kom­pe­ten­zen:

(14) ge­ne­ri­sche Da­ten­ty­pen bei der In­stan­zi­ie­rung vor­ge­ge­be­ner Klas­sen ver­wen­den

(15) sprach­li­che Mit­tel zur Samm­lung gleich­ar­ti­ger Ob­jek­te (Collec­tion) und zum Durch­lau­fen aller Ele­men­te der Samm­lung1 (zum Bei­spiel Ite­ra­ti­on, fo­reach, Lamb­da­aus­drü­cke etc.) nut­zen

Von den Ler­nen­den wird in bei­den Kom­pe­ten­zen le­dig­lich die Nut­zung ver­langt, ohne nä­he­res über die Im­ple­men­tie­rung der ge­ne­ri­schen Da­ten­ty­pen und der eben­falls ge­ne­ri­schen Samm­lun­gen zu ken­nen. Dies ist nur dann mög­lich, wenn eine Be­schrei­bung die­ser vor­liegt. An­statt diese den Schü­le­rin­nen und Schü­lern vor­zu­ge­ben, bie­tet sich die of­fi­zi­el­le Do­ku­men­ta­ti­on der grund­le­gen­den APIs der Java-Platt­form an. Dies ist ganz im Sinne fol­gen­der Kom­pe­tenz im sel­ben Ab­schnitt des Bil­dungs­plans:

(22) Do­ku­men­ta­tio­nen zu ge­ge­be­nem Quell­code und Bi­blio­the­ken nut­zen

Ent­spre­chend be­fä­higt die Kom­pe­tenz (22) ge­ra­de dazu (14) und (15) zu er­ler­nen.

Ein­bin­dung in den Un­ter­richt

Die­ses Do­ku­ment lie­fert nun die Hin­ter­grün­de zu den oben ge­nann­ten Kom­pe­ten­zen und ba­siert größ­ten­teils auf der of­fi­zi­el­len Sprach­spe­zi­fi­ka­ti­on2 und der Do­ku­men­ta­ti­on der grund­le­gen­den APIs3 ins­be­son­de­re java.util und java.util.function. Ers­te­re ent­hält das Collec­tions Frame­work, letz­te­re funk­tio­na­le In­ter­faces, wel­che für Lamb­da­aus­drü­cke be­nö­tigt wer­den.

Es gibt zu dem Thema viele of­fi­zi­el­le wie in­of­fi­zi­el­le Er­klä­run­gen und An­lei­tun­gen in eng­lisch wie auch auf deutsch. Al­ler­dings wer­den Fach­be­grif­fe oft un­ter­schied­lich und teils auch un­ge­nau bzw. falsch ins deut­sche über­setzt. Bei der Ver­wen­dung die­ser Quel­len und Be­grif­fe im Un­ter­richt kön­nen daher Fehl­vor­stel­lun­gen ent­ste­hen.

So wird bei­spiels­wei­se im Zu­sam­men­hang mit Me­tho­den der Be­griff „ac­tu­al pa­ra­me­ter“ teils mit „ak­tu­el­ler Pa­ra­me­ter“ über­setzt. „Ak­tu­ell“ sug­ge­riert, dass sich der Pa­ra­me­ter mit der Zeit än­dern kann. Genau ge­nom­men kann je­doch nur ein kon­kre­ter Wert beim Me­tho­den­auf­ruf über­ge­ben wer­den, ohne dass sich der Pa­ra­me­ter (be­nann­ter Wer­te­spei­cher) selbst än­dert. Im Me­tho­den­kon­text ist diese Un­ge­nau­ig­keit nicht wei­ter schlimm, da der Wert von der Me­tho­de selbst ma­ni­pu­liert wer­den darf. Wird al­ler­dings im Kon­text ge­ne­ri­scher Typen „ac­tu­al type pa­ra­me­ter“ mit „ak­tu­el­ler Typ­pa­ra­me­ter“ über­setzt, könn­te der Ein­druck ent­ste­hen, dass es sich hier eben­falls um einen Wert han­delt, wel­cher nach In­stan­zi­ie­rung einer ge­ne­risch de­fi­nier­ten Klas­se von die­ser ver­än­dert wer­den kann. Dies ist aber nicht der Fall. Zur kla­ren Ab­gren­zung ver­wen­det die­ses Do­ku­ment daher den Be­griff „Ar­gu­ment“ für ma­ni­pu­lier­ba­re Werte oder Ob­jek­te und „Pa­ra­me­ter“ für be­nann­te Wer­te­spei­cher. Bei einer Abs­trak­ti­on wird ‚for­mal‘ vor­an­ge­stellt, bei einer Kon­kre­ti­sie­rung ‚kon­kret‘. Die ge­nau­en Be­griffs­de­fi­ni­tio­nen fin­den sich im ent­spre­chen­den Ab­schnitt (Sei­ten 7,12).

Das Hin­ter­grund­do­ku­ment ist für die Lehr­kraft ge­dacht. Es be­han­delt weit aus mehr, als im Un­ter­richt mit den Schü­le­rin­nen und Schü­lern be­han­delt wer­den kann und muss. Viel­mehr soll es das Wich­tigs­te für die Lehr­kraft prä­zi­se und knapp auf deutsch zu­sam­men­fas­sen und si­cher­stel­len, dass eine kor­rek­te und ein­heit­li­che Fach­spra­che ver­wen­det wird.

In den Do­ku­men­ten 02_­Stoff­ver­tei­lungs­plan.odt und 03_­Un­ter­richts­ver­lauf.odt wird ein mög­li­cher Un­ter­richts­gang mit Auf­ga­ben skiz­ziert. Die­ser stellt klar, wel­che In­hal­te tat­säch­lich im Un­ter­richt be­han­delt wer­den sol­len und ver­weist auf ent­spre­chen­de Stel­len des Hin­ter­grund­do­ku­ments, die für ei­ge­nes Un­ter­richts­ma­te­ri­al ge­eig­net sind.

Der Un­ter­richts­gang setzt vor­aus, dass die Grund­la­gen der Ob­jekt­ori­en­tie­rung (Klas­se, At­tri­bu­te, Me­tho­den mit Pa­ra­me­tern und Rück­ga­be­wer­ten, Da­ten­ty­pen und Ty­pum­wand­lung, Me­tho­den­si­gna­tur, Zu­griffs­mo­di­fi­ka­ti­on ins­be­son­de­re Set­ter/Get­ter, Kap­se­lung, Kon­struk­to­ren und In­stan­zi­ie­rung) be­reits be­kannt und ein­ge­übt sind.

Es bie­tet sich an, die Ein­heit vor der Un­ter­richts­ein­heit zu ADTs ein­zu­schie­ben, da dort die Im­ple­men­tie­rung ei­ni­ger ADTs ge­ne­risch er­fol­gen kann. Im Gra­phen­tes­ter der Un­ter­richts­ein­heit „Gra­phen und ihre Al­go­rith­men“ kön­nen Lamb­da­aus­drü­cke ver­wen­det wer­den. Sol­len Lamb­da­aus­drü­cke un­ter­rich­tet wer­den, dann am bes­ten vor die­ser Ein­heit.

 

1 Es gibt zwei Arten zu­sam­men­ge­setz­ter Da­ten­ty­pen zur Spei­che­rung gleich­ar­ti­ger Ob­jek­te. Ar­rays und Collec­tions wie Lis­ten, Bäume, Queu­es, Stacks, etc. Da der Bil­dungs­plan bei Ar­rays von „Spei­che­rung und Ver­ar­bei­tung gleich­ar­ti­ger Daten“ (Brü­cken­kurs 3.1.2 Al­go­rith­men) spricht und bei „sprach­li­che Mit­tel zur Samm­lung gleich­ar­ti­ger Ob­jek­te“ (15) ex­pli­zit den Be­griff Collec­tion an­gibt, wer­den Ar­rays hier nicht zu den Samm­lun­gen ge­zählt.

2 https://​docs.​ora­cle.​com/​ja­va­se/​specs/​jls/​se11/​html/​index.​html(aus­ge­wer­tet am 22.12.2020)

3 https://​docs.​ora­cle.​com/​en/​java/​ja­va­se/​11/​docs/​api/​java.​base/​mo­du­le-​sum­ma­ry.​html(aus­ge­wer­tet am 22.12.2020)

 

Hin­ter­grund­in­for­ma­tio­nen: Her­un­ter­la­den [odt][370 KB]

Hin­ter­grund­in­for­ma­tio­nen: Her­un­ter­la­den [pdf][480 KB]

 

Wei­ter zu Tech­ni­sche Hin­ter­grün­de