Algoritmų atlikimas mokant algoritmavimo pagrindų
(Kompiuterinė programa ir jos taikymo metodikos aprašymas)
Mokant bet kurios algoritmavimo ar programavimo kalbos, didelę reikšmę turi algoritmų atlikimas. Programavimo kalbų konstrukcijos yra mokiniams neįprastos. Norint jas suprasti, reikia ne tik išklausyti mokytojo aiškinimą ar perskaityti atitinkamą teorijos dalį, bet ir savarankiškai atlikti keletą algoritmų, kuriuose yra panaudotos tos konstrukcijos. Yra žinoma, kad mokiniai neįgis algoritma 16116q1619q vimo įgūdžių, jeigu jie bus tik mokytojo ar draugų aiškinimų klausytojai.
Informatikos vadovėlyje yra daug pavyzdžių ir užduočių, kur reikia, atlikus algoritmą, nustatyti rezultatus. Tačiau visi žinome kokie skirtingi yra moksleiviai. Vieni iš jų konstrukcijas perpranta ir algoritmą atlieka labai greitai, kiti lėčiau, dar kitiems reikia žymiai daugiau laiko, kad išnagrinėtų paprasčiausius algoritmus. Jau senai bandome rašyti specialias kompiuterines programas, kurios padėtų individualizuoti mokymą, leistų kiekvienam mokiniui mokytis jam tinkamu tempu. Kompiuteris tampa geranorišku repetitoriumi, greitai reaguojančiu į klaidą ir leidžiančiu ją pataisyti, padedančiu ir priverčiančiu mąstyti tol, kol bus suprasta konstrukcija, nustatyti jos panaudojimo algoritme ryšiai su pačio algoritmo visuma. Tokios kompiuterinės programos padeda mokytojui diferencijuoti mokymą, individualizuoti papildomas užduotis, atsižvelgiant į mokinio individualybę ir sugebėjimus. Tai galima nesunkiai padaryti turint puikų V.Dagienės ir G.Grigo "Programavimo uždavinyną", kuriame yra daugybė įvairaus lygio tiek algoritmų analizės, tiek programų rašymo uždavinių.
Pirmosios tokio tipo kompiuterinės programos buvo sukurtos dar kompiuteriams BK 0010. Mokyklai gavus IBM tipo kompiuterius, sukūrėme didelę kompiuterinę programą Paskalio kalbos konstrukcijų mokymui, su kuria dirbant, procedūra ir funkcija naudojamos kaip algoritmo struktūrinimo priemonės. Ši programa yra atiduota į IPC platinamų programų banką.
Šiais metais sukūrėme kompiuterinę programą, kuri visiškai atitinka dabar naudojamą vadovėlį "Informatika 10 - 12", ir joje procedūra ir funkcija vartojamos, kaip algoritmo apiforminimo priemonės. Be to atsižvelgta į ankstesnės mokomosios programos trūkumus ir dauguma jų pašalinta (pvz. ankstesnėje programoje vienos temos užduotis yra sudaryta iš 10 pratimų, o jų visų nagrinėjimas užima per daug laiko, naujoje programoje užduotis susideda iš 5 pratimų).
Prieš apžvelgiant pačią kompiuterinę programą, reikia panagrinėti algoritmų atlikimo naudą ir ypatybes, mokant algoritmavimo kurso:
Visų pirma - tik atliekant algoritmą galima patikrinti, ar jis tinkamas, ar teisingas, ar su visais pradiniais duomenimis galime tikėtis norimų rezultatų. Be to reikia prisiminti, kad tik formalus ir skrupulingai tikslus visų algoritmo komandų atlikimas leidžia patikrinti algoritmą, aptikti klaidas ir netikslumus.
Antra - algoritmų atlikimas padeda atsirasti pradiniams algoritminio mąstymo įgūdžiams. Atlikdamas sakinius ar komandas, mokinys galų gale sąmoningai įsisavina konstrukcijas ir taisykles. Iš karto suprasti algoritmą be jo atlikimo gali labai nedaug mokinių. Tapdamas algoritmo vykdytoju, mokinys palaipsniui pradeda suprasti ir jo logiką, ir programavimo kalbą, kaip algoritmo užrašymo priemonę. Toks supratimas būtinas kiekvienam besimokančiam algoritmavimo pagrindų. Jei mokinys, sudarinėdamas algoritmą, nemokės pritaikyti atitinkamų programavimo kalbos struktūrų, o po to negalės atlikti įvairių jam į galvą ateinančių algoritmo variantų, tai teisingo rezultato galima nesitikėti.
Trečia - algoritmų atlikimas - tai galingas įrankis, įgalinantis mokinius aktyviai dalyvauti mokymosi veikloje. Mokytojas tuo pačiu metu gali diferencijuoti darbą su moksleiviais, individualizuoti užduotis.
Ketvirta - reguliarus algoritmų atlikimas pratina mokinius kruopštumo, tvarkingumo, dėmesingumo, susikaupimo, ir vysto loginį, racionalų mąstymą.
Penkta - algoritmų atlikimas pakankamai efektyvi mokinių kontrolės forma, padedanti išsiaiškinti ar mokinys supranta patį algoritmą arba atskiras konstrukcijas. Labai dažnai būna, kad jis nesugeba sudaryti atrodytų paprasčiausio algoritmo. Pasiūlius mokiniui atlikti kitą algoritmą, išaiškėja, kad jis blogai supranta tas ar kitas konstrukcijas arba algoritmų sudarymo taisykles.
Šios išvardintos savybės akivaizdžiai parodo, kad algoritmų atlikimas gali žymiai pagreitinti ir pagerinti algoritmavimo pagrindų mokymą. Todėl informatikos mokytojams reikėtų kaip galima efektyviau naudoti šį metodą. Tą padeda padaryti mūsų mokykloje sukurta mokomoji kompiuterinė programa, kurios struktūrą, bei taikymo metodiką toliau apžvelgsime.
Programa pateikia mokiniams atlikti keletą algoritmų arba jų fragmentų ir patikrina gautų rezultatų teisingumą. Pradėjus veikti programai, atsiranda meniu, kuriame galima pasirinkti vieną iš 14 temų. Temų eilė ir išdėstymas atitinka informatikos vadovėlio antroje dalyje naudojamą dėstymo sistemą:
1. Reiškinių reikšmės.
2. Priskyrimas.
3. Procedūra.
4. Funkcija.
5. Loginiai duomenys.
6. Vienas iš dviejų veiksmų.
7. Vienas iš kelių veiksmų.
8. Sudėtinis sakinys.
9. Ciklas WHILE.
10. Ciklas FOR.
11. Ciklas cikle.
12. Rekursija.
13. Programa.
14. Masyvas.
Pasirinkus norimą temą (tą galima padaryti tiek su pele, tiek su kursoriaus valdymo klavišais), kompiuterio ekrane atsiranda pasiūlymas pasirinkti mokomąjį arba kontrolinį temos variantą. Kiekvienu atveju mokiniui pateikiama nagrinėti 5 pratimai, kuriuose reikia atlikti algoritmus arba bent kelis sakinius, tai yra nustatyti rezultatus, turint pradinius duomenis.
Mokomuosiuose programos variantuose, algoritmai ar jų fragmentai yra vienodi visiems mokiniams, tačiau pradiniai duomenys parenkami kaip atsitiktiniai skaičiai (savaime suprantama atitinkantys tam tikras ribas ar reikalavimus). Tai, kad pradiniai duomenys kiekviename kompiuteryje skirtingi, verčia mokinius pratimus atlikti savarankiškai, nesižvalgant į draugus. Užduotys išdėstytos sunkėjimo tvarka. Mokiniai atlikę algoritmą, įveda rezultatus, o kompiuteris patikrina, ar įvesti duomenys teisingi. Jei mokinys suklydo, ekrane atsiranda pranešimas apie tai, ir parodomas rezultatas, kurį turėjo gauti. Po to jam siūloma dar kartą atlikti tą patį algoritmą, tik jau su kitais pradiniais duomenimis. Ir taip tol, kol mokinys supras algoritmo esmę ir jį atliks gerai. Mokytojas, naudodamas ne kompiuterinį užduočių pateikimo metodą, fiziškai nesuspėtų visiems parinkti skirtingus pradinius duomenis, iškart patikrinti ar mokinys nesuklydo, pranešti teisingą atsakymą ir duoti naujus duomenis. Be to, naudojant kompiuterinę programą mokinys gali mokytis ir mąstyti savarankiškai, jam tinkamu tempu.
Siūlyčiau tokią kompiuterinės programos temų mokomųjų variantų naudojimo metodiką:
Supažindinus mokinius su pagrindine temos teorine medžiaga, išnagrinėjus nedidelį pavyzdį, galima jiems leisti galutinai išsiaiškinti ir suprasti temą savarankiškai, naudojant kompiuterinės programos mokomąjį variantą. Savaime suprantama, gabiesiems moksleiviams galima duoti kitas, iš anksto apgalvotas užduotis, parinktas iš vadovėlio arba "Programavimo uždavinyno", gal būt iš algoritmų analizės srities ar iš pačių algoritmų rašymo. Greičiau su mokomosios programos uždaviniais susidorojusiems mokiniams, taip pat galima pateikti papildomas individualias užduotis. Tiems, kam sunkiau sekasi, gali padėti tiek mokytojas, tiek draugai. Visiems 5 pratimams atlikti turėtų pakakti 10 minučių laiko. Vėliau galima pereiti prie sudėtingesnių pavyzdžių nagrinėjimo, arba algoritmų rašymo.
Temų kontroliniuose variantuose siūlomi pratimai parenkami atsitiktinai iš trijų galimų, be to pradiniai duomenys skirtingi visiems mokiniams. Atlikus visus 5 pratimus, ekrane yra pateikiama suvestinė, kurioje matome teisingus atsakymus ir mokinio gautus rezultatus. Paspaudus norimo pratimo numerį, ekrane atsiranda atitinkamas algoritmas. Tokiu būdu tiek mokinys, tiek mokytojas gali atlikti klaidų analizę ir, gal būt, pašalinti žinių spragas. Be abejo, jeigu mokinys jau sugeba pritaikyti teorines žinias, kurdamas algoritmus, tokį kontrolinį jam duoti neverta. Žymiai daugiau naudos ir kūrybinio malonumo jis patirs, rašydamas algoritmus, kokioms tai problemoms ar uždaviniams spręsti. Mažiau gabiems, arba turintiems mokymosi sunkumų toks darbas padeda greičiau suprasti ir įsisavinti einamą temą, o mokytojui suteikia galimybę pamatyti ko mokinys dar nemoka ir padėti jam.
Kontrolinio varianto užduotims atlikti taip pat turėtų pakakti vidutiniškai 10 minučių laiko. Kartais mokiniai delsia įvesti gautą atsakymą bijodami suklysti ir gauti blogesnį pažymį, todėl nebūtina vertinti pažymiu kiekvieną kompiuterinį kontrolinį, arba tai daryti tik po klaidų analizės ir koreguojant kompiuterio įvertinimą.
Programa tikrai naudinga mokant pirmųjų temų, padeda gerai suprasti ir įsisavinti mokiniams neįprastas operacijas div ir mod, priskyrimą. Palengvina ir sunkesniųjų temų, pradedant ciklu while, mokymąsi. Visų temų dalis pratimų yra klasikiniai programavimo mokymo uždaviniai, kita dalis sudaryta taip, kad mokiniai geriau suprastų kalbos konstrukcijas, jų atliekamas funkcijas, pakartotų išeitas temas.
Kaip nors formalizuoti pateikiamo algoritmo atlikimo užrašymą neverta. Yra įvairiausių būdų, kaip tai daryti, bet jie naudingi tik labai silpniems mokiniams. Tam kad mokiniai galėtų pritaikyti įgūdžius įgytus atliekant algoritmus jų kūrimui, netgi geriau, kad sakinius jie atliktų mintinai, gal būt tik pasižymint kintamųjų reikšmes.
Efektyviai taikant algoritmų atlikimo metodą, jį derinant su algoritmų interpretatoriaus ir Turbo Pascal transliatorių teikiamomis algoritmų ir programų atlikimo pažingsniui bei kintamųjų reikšmių kitimo stebėjimo galimybėmis, individualizuojant mokinių darbą, galima juos sudominti algoritmų kūrimu ir palengvinti informatikos kurso antrosios dalies mokymąsi.
Naudota litertūra:
1. Lietuvos bendrojo lavinimo mokyklos bendrosios programos. Projektai. - Vilnius : Leidybos centras, 1994.
2. Lietuvos bendrojo lavinimo mokyklos bendrosios programos.
Informatika
Projektas. Parengė V.Dagienė, R.Ališauskas, 1995.
3. Pedagoginė psichologija. N.L.Gage, D.C.Berliner. - Vilnius : Alna litera, 1994.
4. Kompiuteriai mokykloje. Knyga mokytojams. R.Viljamsas, K.Maklynas. - Kaunas: Šviesa, 1989.
5. Bendrojo lavinimo mokyklos programos. Informatika. - Vilnius : Leidybos centras, 1994.
6. Informatika 10 - 12 klasei. Bandomoji mokymo priemonė. - V.Dagienė, G.Grigas. - Kaunas : Šviesa, 1991.
7. Informatikos mokymas vidurinėje mokykloje. Mokytojo knyga. -
V.Dagienė, G.Grigas. - Kaunas : Šviesa, 1992.
8.Programavimo uždavinynas.V.Dagienė, G.Grigas. - Kaunas : Šviesa, 1992.
9. Informatika i obrazovanije. Žurnalas. - Maskva : Pedagogika, 1987m Nr.1, Nr.2, Nr.3. 1988m Nr.1. 1991m Nr.4.
10. Kompiuterininkų dienos' 93. Birštonas. Konferencijos medžiaga. - Vilnius: 1993.
|