Villuleit og prófun – Kerfisbundin úrlausn vandamála
Tilgangur
Að kenna nemendum kerfisbundna villuleit (debugging) og einfalda prófun (testing) í Python og byggja upp þrautseigju í lausnaleit.
Hæfniviðmið og námsmarkmið
Nemandi getur greint tegundir villna, lesið villuskilaboð og notað kerfisbundna nálgun til að finna og laga villur í Python forritum.
- Nemandi getur greint á milli syntax, runtime og logic villna
- Nemandi getur lesið og túlkað Python villuskilaboð
- Nemandi getur notað print-setningar og kerfisbundna nálgun til villuleitar
Getustig og forsendur nemenda
- Lestur: Nemendur geta lesið Python kóða og villuskilaboð á ensku.
- Tækni: Nemendur þekkja Python: breytur, lykkjur, skilyrði, lista og föll.
- Aðrar forsendur: Nemendur þurfa þolinmæði og rökhugsun – villuleit krefst skipulagðrar nálgunar.
Lýsing á kennslustund
Nemendur læra mismunandi tegundir villna (syntax, runtime, logic), hvernig á að lesa villuskilaboð og kerfisbundnar aðferðir til að finna og laga villur. Þeir nota print til villuleitar, kerfisbundna nálgun og skrifa einföld prófunarföll. Áherslan er á að villur eru eðlilegur hluti af forritun og að villuleit er lykilfærni.
1. Kynning – Tegundir villna (15 mín): Kennarinn sýnir þrjár tegundir: (a) Syntax villa: print('Halló – vantar loka-sviga. Python segir: SyntaxError. (b) Runtime villa: x = 10/0 – Python segir: ZeroDivisionError. (c) Logic villa: Forrit á að telja frá 1-10 en telur 0-9 – engin villa birtist, en niðurstaðan er röng! Kennarinn spyr hvaða tegund er erfiðust (logic!) og hvers vegna. 2. Villuleitaraðferðir (10 mín): Kennarinn kynnir aðferðir: (a) Lestu villuskilaboðin vandlega, (b) Notaðu print() til að skoða gildi breytna, (c) Keyrðu smá hluta í einu, (d) Notaðu Thonny debugger til að stíga í gegn. 3. Villuleitarverkefni (40 mín): Nemendur í pörum fá 6-8 Python forrit sem innihalda villur – blöndu af öllum þremur tegundum. Hvert forrit: (a) Keyra og lesa villuskilaboð, (b) Finna villuna, (c) Laga villuna, (d) Skrifa athugasemd sem útskýrir villuna. Verkefnin eru stigvaxandi í erfiðleika. 4. Samantekt (15 mín): Nemendur deila reynslu: Hvaða villa var erfiðust? Hvaða aðferð hjálpaði mest? Kennarinn dregur saman: Allir forritarar gera villur – góðir forritarar eru góðir í villuleit!
Verkfæri og hugbúnaður
Thonny sýnir villur á skýran hátt og hefur innbyggðan debugger sem leyfir skref-fyrir-skref keyrslu.
Python gefur skýr villuskilaboð sem eru gagnleg í kennslu um villuleit.
Kennsluaðferðir
Nemendur læra að flokka villur í þrjá flokka og nálgast hverja tegund á mismunandi hátt.
Rannsóknargrundvöllur: Ko o.fl. (2004) – Six Learning Barriers in End-User Programming: Skilningur á villutegundum eykur getu nemenda til að laga þær.
Nemendur vinna saman í pörum að villuleit þar sem annar les kóðann hátt og hinn fylgist með.
Rannsóknargrundvöllur: Williams og Kessler (2003) – Pair Programming: Samvinna við villuleit eykur árangur og þjálfar samskipti.
Matsaðferðir
- Verkefnamat: Hversu margar villur fann og lagaði parið? Eru athugasemdirnar réttar?
- Greiningarmat: Getur nemandinn greint tegund villu (syntax, runtime, logic) rétt?
- Sjálfsmat: Nemandinn metur sinn villuleitarferli – hvað geri ég fyrst þegar villa kemur upp?
Aðlögun
Nemendur skrifa eigin villuforrit sem bekkjarfélagar þurfa að laga, eða skrifa einföld assert prófunarföll.
Nemandinn fær villulista sem segir til um tegund villu í hverju forriti og dregur þannig úr leitarsvæðinu.
Þverfaglegar tengingar
- Enska – lestur villuskilaboða á ensku
- Rökfræði/stærðfræði – rökrétt hugsun og kerfisbundin nálgun