Kódolvasási stratégia tanítása

Clickbait cím: Nem fogja elhinni, hogy 5 perc alatt javíthatja kódolási készségeit!

Összegzés: Ha 5-10 percet töltenek a kódolvasási stratégia tanításával, az jobb olvasási teljesítményhez vezethet, segítve megakadályozni az alacsony színvonalú előadókat túlterhelést és feladást! Bemutattam ezt a munkát a SIGCSE 2018-ban. Az erőforrásokhoz (oktatási segédanyagok, dokumentumok, diák) mutató hivatkozások a posta végén találhatók.

Tegyük fel, hogy a 4. osztályú matematikai tanulókat tanítom a különféle műveletekkel kapcsolatos problémák megoldására:

2 x (3 + 6)

Megtanítottam nekik az összeadás, kivonás, szorzás, osztás egyedi műveleteit. Tehát gyakorlati problémákat adok nekik, amelyeknek ezeknek a műveleteknek a keverékei vannak. És keményen dolgozó hallgatóim meglepően (?) Küzdenek velük! Mi történt?

Ebben az esetben nem kifejezetten megtanítottam nekik a problémák megoldásának stratégiáját. Vagyis nem tanítottam nekik a műveleti sorrendet (más néven elsőbbségi sorrend), például a PEMDAS bevezetésével. Ehelyett arra kértem a diákokat, hogy (talán vakon) állítsák össze saját stratégiájukat, amikor megoldják a problémákat.

A készségek alkalmazásának gyakorlása során a diákoktól a saját stratégiájuk kialakításának megkövetelése eredménytelen küzdelmet eredményezhet. Ehelyett kifejezetten taníthatunk egy stratégiát, és felkészíthetjük a hallgatókat arra, hogy többet megtudhassanak gyakorlataikból.

A fenti példa kissé abszurdnak hangzik, de ez történik manapság sok programozási kurzuson. Tehát tanítsuk kifejezetten a problémamegoldási stratégiákat annak javítása érdekében, hogy az emberek megtanulják kódolvasást!

Kód olvasása, a végrehajtás szimulálása az elmédben és a kimenet előrejelzése kódkövetésnek nevezik. Ez a nyomonkövetési képesség kritikus a programozás szempontjából, de az újoncok küzdenek ezzel! Ez részben azért van, mert még mindig fejlesztik tudásukat a kódkonstrukciókról (ha állítások, hurkok stb.), Hanem azért is, mert megpróbálják kitalálni a megfelelő stratégiákat a probléma megoldására. Ez szükségtelen nehézségeket okozhat, például a kezdők, akik a változtatott értékek megőrzésére koncentrálnak, amikor frissítik, vagy megpróbálják lefordítani a kódot angolra (fejlettebb készség). Ahhoz, hogy a kezdők a lehető legtöbbet hozhassák ki gyakorlásukból, állványokat kell biztosítanunk, hogy a kódolvasás képességének megtanulására összpontosítsanak anélkül, hogy túlterheltek lennének.

Íme az állításom: Egy soronkénti nyomon követést ösztönző stratégia kifejezett utasításának megadása és a változó értékek nyomon követésének érdekében a külső ábrázolás frissítése segíti a kezdőket arra, hogy a kód végrehajtásának fogalmazására összpontosítsanak, és javítják nyomonkövetési képességüket. Leírjuk ezt a stratégiát:

A stratégia két részből áll: a kódkövetési kérdés megoldására szolgáló lépések leírása és a memóriatáblák leírása, amelyeket a kezdők használhatnak a változó értékek nyomon követésére. A lépések a kérdés megértéséből, a kód végrehajtásának megkereséséből, majd a kód egy sorban történő követéséből állnak. A teljes utasítások az alábbiakban találhatók:

Azáltal, hogy ösztönzik a soronkénti nyomon követésre, a kezdők általános megközelítést alkalmaznak minden kódkövetési probléma megoldására.

Időnként a kezdőknek frissíteniük kell a memóriatáblát. A kezdő új memória táblát hoz létre minden egyes módszer meghívásakor. Ha egy változót deklarálnak abban a módszerben, akkor új sort töltenek be a memóriatáblába. Amikor egy változó frissítésre kerül, megtalálják azt a sort a táblázatban, áthúzzák az előző értéket, és beírják az újt. Miután egy módszer befejezte a végrehajtást, áthúzzák a teljes táblát.

A változók nyomon követéséhez memória táblázatok használatával a kezdőknek nem kell pazarolniuk az „agyi erőt” a változó értékek emlékezésére!Példa egy memória táblára egy változó swap művelet után.

Szóval ez a stratégia! Ez jól illeszkedik 2 darab papírra, és mindössze 5–10 percet töltöttük a kezdőknek (főiskolai hallgatók az első számítástechnikai osztályukban) oktatással.

A stratégia értékeléséhez 24 főiskolai hallgatókat toboroztam, akik öt hetet töltöttek be első informatikai tanfolyamon. Egyedül velük dolgozva, felüknek a stratégiáját tanítottam. Ezután az összes résztvevőnek ugyanazon 6 kódkövetési problémán keresztül kellett dolgoznom, hangosan elmondani gondolataikat, amint dolgoztak. Ezzel két kérdésre tudok válaszolni: 1) javítja-e a stratégia tanítása a nyomkövető teljesítményt? 2) hogyan változtatja meg ez a stratégia a hallgatók gondolkodási folyamatait a nyomkövetési kérdések megoldásakor? Nézzük meg az eredményeket!

Látjuk, hogy azok a résztvevők, akik megtanultak a stratégiát, jobban teljesítettek és kevésbé változékonyak, mint osztálytársaik, akik nem tanultak meg a stratégiát. Ez igaz azokra a 6 nyomkövetési kérdésre, amelyeket megkérdeztünk őket a tanulmányra, de a középtávukra is, amelyet a vizsgálatban való részvételük után 3–6 nappal vettek igénybe (lásd az alábbi ábrákat)! Ezzel megválaszolhatjuk első kérdésünket, és azt mondhatjuk, hogy a stratégia tanítása javítja a kódkövetés teljesítményét.

TELJESÍTMÉNY A KUTATÁSI KÉRDÉSEKHEZ: A résztvevők, akik megtanultak a stratégiát, átlagban végeztek el. 15% -kal jobb és 46% -kal kevesebb változékonysággal a kódkövetési kérdésekben a tanulmányban! (P <0,05)TELJESÍTMÉNY KÖZPONTJÁBAN: A stratégiát elsajátított résztvevők átlagon haladtak. 7% -kal jobb és 42% -kal kevesebb variabilitással a kurzus félidején.

A résztvevők gondolkodási folyamatainak megértése érdekében mindkét körülmények között hangosan elemezem a magas és alacsony színvonalú előadók csoportjainak gondolkodását. Az elemzés részletei megtalálhatók a SIGCSE 2018 cikkben (a posta végén van hivatkozás), de a legérdekesebb megállapítás az, hogy a stratégia miként támogatta az alacsony teljesítményű szereplőket. A kontrollcsoportban a 2 legkevésbé teljesítő fél eltért a soronkénti nyomon követésről, és nem írta le a változó értékeket. Ennek eredményeként túlterheltek és sok problémát felhagytak anélkül, hogy megoldást tudtak volna készíteni. Ezzel szemben a stratégiai feltétel alacsony teljesítményeivel, akik általában (de nem mindig) követik a stratégiát, és soronként nyomon követik és frissített memória táblázatokat követnek a változó értékek követésére. Ebből arra a következtetésre jutottunk, hogy a stratégia elősegítette az alacsony teljesítményű szereplőket abban, hogy haladjanak és ne adjanak fel.

Tehát bizonyítékokat találunk arra, hogy néhány percet töltve (számítógép nélkül) javíthatjuk a kezdők kódkövetési képességét. Ennek oka az lehet, hogy a stratégia támogatja a fokozatos haladást a soronkénti nyomon követéssel, és segített a kezdőknek arra összpontosítani, hogy a kód mit csinál, azáltal, hogy a változó értékek emlékezetének kognitív terhelését a memória táblázatokba töltik.

Az oktatókra gyakorolt ​​következményei: Adjon egyértelmű utasításokat a kezdők számára a problémák megoldására szolgáló stratégiák felkészítéséhez! A memória táblázatokat oktató eszközként használom, de tudom, hogy ezeket az értékeléseket is felhasználták.

A kutatás számos következménnyel jár! Fektetünk arra, hogy hogyan használhatjuk reprezentációkat, például memória táblázatokat, hogy rögzítsük a problémamegoldás közbenső lépéseit, hogy jobban megértsük a gondolati folyamatokat és a tévképzeteket. Azt is megvizsgáltam, hogyan lehet a memória táblázatokat lefordítani egy online domainre. Ez folyamatos kutatás, tehát működjünk együtt!

Az alábbiakban találunk forrásokat a stratégia megtanításához vagy a tanulmány kibővítéséhez, valamint linket a cikkhez és a diákhoz. Megismétlem, hogy ez számomra még mindig folyamatban lévő kutatás, ezért kérjük, vegye fel a kapcsolatot (megjegyzés, e-mail, tweet), ha tanár vagy, aki ezt a stratégiát szeretné bemutatni az osztályába, kutató, aki ezt a munkát kívánja kibővíteni, vagy bárki más. Különösen akkor kell elérnie, ha kíváncsi tanuló vagy! Várom válaszát.

  • Források az oktatási stratégiához, a tanulmány reprodukálásához (GitHub)
  • Papír (ACM DL)
  • Diák (PDF)