✉ almaty@bilimshuagy.kz ☎ +77711410882
InstagramFacebookYouTubeTelegramҚАЗ|РУС|ENGКіру / Тіркелу

← Журнал шығарылымына қайту

КОДТАҒЫ ҚАТЕЛЕРДІ ТАЛДАУ АРҚЫЛЫ ОҚУШЫЛАРДЫҢ ЗЕРТТЕУШІЛІК ДАҒДЫЛАРЫН ДАМЫТУ

Информатика сабағында бағдарламалау тілін меңгеру командаларды есте сақтаумен немесе дайын алгоритмді компьютерге енгізумен шектелмейді. Оқушы бағдарламаның қалай жұмыс істейтінін түсініп, алынған нәтижені қойылған мақсатпен салыстырып, сәйкессіздіктің себебін анықтай алуы қажет. Осы тұрғыдан алғанда, кодтағы қателерді талдау зерттеушілік әрекетті ұйымдастыруға қолайлы мүмкіндік береді. Қате пайда болған кезде оқушының алдында нақты мәселе туындайды: бағдарлама неге күтілгендей орындалмады, қандай шарт ескерілмеді және оны қалай тексеруге болады? Мұндай сұрақтар бақылауды, болжам жасауды, тәжірибе жүргізуді және қорытынды шығаруды талап етеді. Сондықтан қатені түзету бағдарламалау жұмысының соңындағы техникалық әрекет емес, оқушының ойлауын дамытатын мазмұнды оқу үдерісі ретінде қарастырылуы тиіс.

Зерттеушілік дағдылар адамның белгісіз жағдайды түсінуге бағытталған жүйелі әрекеттерінен көрінеді. Оларға мәселені нақтылау, сұрақ қою, ақпарат жинау, болжам ұсыну, оны тексеру және нәтижені түсіндіру жатады. Бағдарламалау кезінде бұл әрекеттер табиғи байланыста жүзеге асады. Оқушы кодты іске қосады, оның мінез-құлқын бақылайды, күтілген және нақты нәтижелерді салыстырады. Содан кейін сәйкессіздікті түсіндіретін болжам жасап, тексеру тәсілін таңдайды. Егер болжам расталмаса, басқа себеп іздейді. Осы үдеріс дұрыс ұйымдастырылғанда, оқушы кездейсоқ түзетулер енгізуден саналы зерттеуге көшеді. Ол бағдарламаның жұмысын сырттай бағаламай, әрекеттердің арасындағы байланысты түсінуге ұмтылады. Мұғалімнің міндеті осы ізденісті қолдап, әр қадамның мағынасын ашуға көмектесу болып табылады.

Қатеге деген педагогикалық қатынас зерттеушілік жұмыстың сапасына тікелей әсер етеді. Егер қате тек білімсіздіктің белгісі немесе төмен баға алудың себебі ретінде қабылданса, оқушы оны жасыруға, дайын шешімді көшіруге немесе күрделі тапсырмадан бас тартуға бейімделуі мүмкін. Ал қате бағдарламаның жұмысын түсінуге қажетті ақпарат ретінде қарастырылса, оны талқылау оқу әрекетінің қалыпты бөлігіне айналады. Мұғалім «Неге дұрыс жасамадың?» деген сұрақтың орнына «Бағдарлама қай жерде күткен нәтижеден ауытқыды?» деп сұрай алады. Мұндай тіл оқушының жеке қасиетіне емес, зерттелетін әрекетке назар аудартады. Қателесуге мүмкіндік беру талапты төмендету дегенді білдірмейді. Керісінше, оқушыдан өз шешімін тексеру, қатенің себебін түсіндіру және түзетудің негізін көрсету талап етіледі.

Кодтағы қателердің сипатын ажырату ізденіс бағытын дұрыс таңдауға көмектеседі. Синтаксистік қате бағдарламалау тілінің жазылу ережесінің бұзылуынан туындайды. Орындалу қатесі бағдарлама іске қосылғанымен, белгілі әрекетті орындай алмаған кезде байқалады. Логикалық қате жағдайында код орындалып, нәтиже шығарады, бірақ ол есептің шартына сәйкес келмейді. Сонымен бірге уақыт пен жад шектеулерін елемеу де шешімнің талапқа сай қабылданбауына әкелуі мүмкін. Бұл айырмашылықтарды тек анықтама ретінде жаттату жеткіліксіз. Оқушылар әртүрлі мысалды қарап, қатенің қалай көрінетінін және оны қандай тәсілмен тексеруге болатынын салыстыруы қажет. Қате түрін алдын ала анықтау барлық мәселені шешпесе де, қажетсіз әрекеттерді азайтып, зерттеуді мақсатты ұйымдастыруға мүмкіндік береді.

Синтаксистік қателермен жұмыс бағдарламаның құрылымына ұқыпты қарауды қалыптастырады. Жақшаның жабылмауы, қос нүктенің ұмытылуы немесе шегіністің дұрыс берілмеуі кодтың орындалуына кедергі келтіруі мүмкін. Мұндай жағдайда оқушы тек белгіленген жолды өзгертумен шектелмей, хабарламадағы мәліметті түсінуге үйренуі керек. Қате көрсетілген орын әрдайым оның бастапқы себебі бола бермейді: алдыңғы жолда жабылмаған жақша кейінгі жолда байқалуы ықтимал. Сондықтан мұғалім хабарламаны оқу, жақын орналасқан жолдарды тексеру және құрылымдық сәйкестікті қарастыру әрекеттерін бірізді көрсетеді. Оқушы түзетуден кейін бағдарламаны қайта іске қосып, өзгерістің әсерін бақылайды. Осы қарапайым жұмыс дәлдік, бақылау және себепті түсіндіру дағдыларының бастапқы негізін қалайды.

Орындалу қателерін талдау оқушыларды деректердің түрі мен рұқсат етілген әрекеттер арасындағы байланысты зерттеуге жетелейді. Мысалы, мәтін ретінде енгізілген мәнді санға айналдыру мүмкін болмауы немесе тізімде жоқ орынға жүгіну қате туғызуы ықтимал. Мұғалім оқушыға «Қай әрекет орындалмады?», «Осы сәтте айнымалыда қандай мән болды?», «Бағдарлама қандай мән күтті?» деген сұрақтар ұсынады. Бұл сұрақтар қате хабарламасын жай кедергі ретінде қабылдамай, мәселені түсіндіретін дерек ретінде пайдалануға көмектеседі. Оқушы кіріс мәліметін өзгертіп, қатенің қай жағдайда пайда болатынын тексереді. Нәтижесінде ол бағдарламаның жұмысын тек командалар тізбегі емес, нақты деректермен орындалатын әрекеттер жүйесі ретінде түсіне бастайды.

Логикалық қателер зерттеушілік жұмыстың тереңдеуіне ерекше мүмкіндік береді. Мұндай жағдайда компьютер қате туралы хабарлама бермеуі мүмкін, сондықтан сәйкессіздікті оқушы өзі анықтайды. Мысалы, сандардың ең үлкенін табатын бағдарлама барлық мән оң болғанда дұрыс нәтиже көрсетіп, теріс сандар берілгенде қате жауап шығаруы ықтимал. Бұл жағдай бастапқы мәннің қалай таңдалғанын зерттеуге әкеледі. Оқушы бағдарламаның дұрыс жұмыс істеуі бір ғана мысалмен дәлелденбейтінін түсінеді. Мұғалім оған қатені бірден көрсетпей, әртүрлі кіріс деректерінде нәтижені салыстыруды ұсына алады. Осылайша оқушы жасырын болжамды анықтайды: код барлық сандар нөлден үлкен деп есептеген болуы мүмкін. Қатені табу есептің шартын терең түсінумен байланысады.

Зерттеудің алғашқы қадамы күтілетін нәтижені нақтылау болуы тиіс. Оқушы бағдарламаның не істеуі керектігін анық түсінбесе, оның дұрыс немесе қате жұмыс істегенін бағалау қиын. Сондықтан кодты іске қоспас бұрын шағын мысалды қолмен орындау, жауапты есептеу немесе әрекет ретін сөзбен түсіндіру пайдалы. Мәселен, тізімдегі жұп сандардың қосындысын табу тапсырмасында оқушы алдымен қандай сандар таңдалатынын және олардың қосындысы неге тең болатынын көрсетеді. Кейін компьютер нәтижесі осы жауаппен салыстырылады. Мұндай тәсіл бағдарламаны тексерудің тәуелсіз негізін қалыптастырады. Егер күтілетін жауап та сол қате код арқылы есептелсе, тексеру өзінің мағынасын жоғалтады. Дұрыстықты бағалау үшін бөлек пайымдау қажет.

Қатені қайта туындата алу зерттеуді жүйелі жүргізуге көмектеседі. Кейде оқушы «Бағдарлама кейде дұрыс істемейді» деп хабарлайды, бірақ қандай деректер қолданылғанын сақтамайды. Мұндай жағдайда себепті анықтау қиындайды. Сондықтан тапсырмада қате шыққан кіріс мәліметін, алынған жауапты және күтілетін нәтижені белгілеу әдетін қалыптастыру маңызды. Осы үш мәлімет мәселені нақты сипаттауға мүмкіндік береді. Мұғалім қысқа жазбаша үлгі ұсынып, оқушыларды қатені түсінікті жеткізуге үйретеді. Бұл әрекет басқа адамнан көмек сұрағанда да пайдалы. Бағдарламаның толық мәтінін жіберіп, «Неге істемейді?» деудің орнына нақты жағдайды сипаттау бірлескен талдауды жеңілдетеді. Мәселені дәл қою оның шешімін іздеудің маңызды бөлігіне айналады.

Болжам жасау кезеңінде оқушы қате нәтижеге ықпал етуі мүмкін себептерді ұсынады. Мысалы, цикл бір рет кем орындалған, шарттың бағыты ауысқан немесе айнымалының бастапқы мәні сәйкес таңдалмаған болуы мүмкін. Бұл болжамдар кездейсоқ емес, байқалған нәтижеге сүйенуі керек. Егер қосындыға соңғы сан ғана қосылмаса, цикл шекарасын тексеруге негіз бар. Ал жауап әр айналымда қайта басталғандай көрінсе, жинақтаушы айнымалының қай жерде жаңартылатынын қарастыру қажет. Мұғалім «Осы себеп дұрыс болса, қандай белгі байқар едік?» деген сұрақ арқылы болжамды тексерілетін тұжырымға айналдырады. Оқушы себепті атаумен шектелмей, оны қандай дерек растайтынын ойластырады. Зерттеушілік әрекеттің нақтылығы осы байланыстан көрінеді.

Бір уақытта бірнеше өзгеріс енгізу қатенің нақты себебін түсінуді қиындатады. Бағдарлама түзелгенімен, қай өзгерістің әсер еткені белгісіз болып қалуы мүмкін. Сондықтан бастапқы оқытуда бір болжамды тексеретін шағын өзгеріс енгізіп, нәтижені салыстыру пайдалы. Мысалы, циклдің аяқталу шекарасы өзгертілсе, сол өзгерістің бұрын қате шыққан мысалға және басқа мысалдарға әсері бақыланады. Егер нәтиже жақсарса, оқушы оның себебін түсіндіреді; өзгеріс көмектеспесе, бастапқы нұсқамен салыстырып, келесі болжамға көшеді. Бұл тәсіл барлық бағдарламалық жұмыста тек бір жолды өзгерту керек деген қатаң ереже емес. Оның оқу мақсаты — өзгеріс пен нәтиже арасындағы себептік байланысты анық көруге үйрету.

Қадамдап орындау кодтың ішкі жұмысын түсінуге мүмкіндік береді. Оқушы әр командадан кейін айнымалылардың мәнін белгілеп, келесі әрекетті болжайды. Мұндай бақылауды кесте, қысқа жазба немесе орындау ортасының қолжетімді құралдары арқылы ұйымдастыруға болады. Әсіресе циклдер мен шарттарды меңгеру кезінде бұл тәсіл маңызды. Оқушы кодты тұтас оқығанда байқамаған өзгерісті әр қадамды қарастырғанда аңғарады. Мысалы, есептегіштің қажетті шарт орындалмаса да артып отырғаны анықталуы мүмкін. Қадамдап талдау тек қате іздеу үшін емес, бағдарламаны түсіндіру үшін де қолданылады. Алайда үлкен көлемді деректерді толық қолмен жүргізу тиімсіз, сондықтан алдымен мәселені көрсететін шағын мысал таңдалады. Көрнекі бақылау ойша модель құруға тірек болады.

Тексеру мақсатында аралық мәндерді шығару оқушыға бағдарламаның қай бөлігінде ауытқу пайда болғанын анықтауға көмектеседі. Бірақ барлық айнымалыны әр жолдан кейін шығару ақпаратты шамадан тыс көбейтіп, негізгі белгіні жасыруы мүмкін. Сондықтан бақылау нүктелері болжамға сәйкес таңдалады. Егер мәселе циклдің орындалу санында деп күтілсе, айналым көрсеткіші тексеріледі; егер қосынды дұрыс жиналмаса, қосылатын мән мен аралық нәтиже салыстырылады. Әр шығарылған мәліметтің қандай сұраққа жауап беретіні түсінікті болуы керек. Жұмыс аяқталған соң уақытша тексеру жазбалары алынып тасталады. Бұл әсіресе автоматты тексеру жүйесінде маңызды, өйткені артық ақпарат дұрыс нәтиженің қабылдануына кедергі келтіруі мүмкін. Бақылау құралын мақсатты қолдану зерттеудің жинақылығын сақтайды.

Қатені көрсететін мысалды кішірейту күрделі мәселені түсінуді жеңілдетеді. Ұзын тізімде байқалған қате бірнеше элементтен тұратын жағдайда да қайталануы мүмкін. Оқушы деректерді біртіндеп азайтып, сәйкессіздік сақталатын шағын нұсқаны табады. Осы кезде маңызды емес мәліметтер алынып, негізгі байланыс айқындалады. Мысалы, жүз саннан тұратын тізімдегі қате екі бірдей сан берілгенде-ақ көрінуі ықтимал. Бұл қайталанатын мәндерге қатысты шарттың дұрыс қарастырылмағанын аңғартады. Мұғалім мұндай әрекетті жай жеңілдету емес, зерттелетін құбылыстың маңызды белгілерін ажырату тәсілі ретінде түсіндіреді. Оқушы күрделі жағдайды шағын модельге айналдырып, сол модель арқылы себепті тексереді. Бұл зерттеушілік ойлаудың басқа пәндерге де ортақ әрекеті болып саналады.

Тест деректерін саналы таңдау бағдарламаның дұрыстығын бағалаудың негізгі шарты. Оқушылар көбіне есептегі дайын мысалды ғана пайдаланып, дұрыс жауап шықса, жұмысты аяқталды деп есептейді. Алайда бір мысал тек белгілі жағдайдағы нәтижені көрсетеді. Сондықтан мұғалім қалыпты, шекаралық және ерекше жағдайларды ажыратуды үйретеді. Бір элементтен тұратын тізім, барлық мәні бірдей жиын, ең кіші рұқсат етілген сан немесе кері ретпен берілген деректер әртүрлі қателерді ашуы мүмкін. Бұл жағдайлар есептің шартына сәйкес таңдалуы тиіс. Егер бос тізімге рұқсат берілмесе, оны міндетті талап ретінде енгізудің қажеті жоқ. Тестілеу тапсырмадағы нақты шектеулерді түсінумен қатар жүргізіледі.

Шекаралық жағдайларды зерттеу оқушыны алгоритмнің қолданылу аясын ойлауға үйретеді. Мысалы, цикл нөл рет орындалатын жағдайда айнымалының мәні анықтала ма, ең кіші өлшемдегі матрица дұрыс өңделе ме, ізделген элемент табылмаса не шығарылады деген сұрақтар қойылады. Бұл сұрақтар кодты жазып болғаннан кейін ғана емес, жоспарлау кезінде де қарастырылуы мүмкін. Мұғалім оқушылардан есептің шартындағы әр шектеудің бағдарламаға қандай талап қоятынын түсіндіруді сұрайды. Осы әрекет шартты формалды оқудан оның мағынасын талдауға көшуге көмектеседі. Қате көбіне күрделі бөлікте емес, ескерілмеген қарапайым жағдайда пайда болатыны байқалады. Оқушы алгоритмнің сенімділігі барлық рұқсат етілген жағдайды қамтуымен байланысты екенін түсінеді.

Индекстерге қатысты қателерді талдау деректер құрылымын түсінуге мүмкіндік береді. Оқушы элементтің мәнін оның орналасқан орнымен шатастыруы немесе соңғы индексті элементтер санына тең деп қабылдауы мүмкін. Мұндай жағдайда тізімді орындары көрсетілген сызба түрінде бейнелеу пайдалы. Кейін кодтағы әр жүгінудің қай элементке сәйкес келетіні анықталады. Мұғалім индекстің өзгеру шекарасын деректердің нақты өлшемімен байланыстырады. Матрицаларда қатар мен бағанның орнын ауыстыру да осы тәсілмен талданады. Тікбұрышты матрицаны қолдану кейбір қателерді шаршы матрицаға қарағанда анық көрсетуі мүмкін. Себебі өлшемдер бірдей болғанда жасырын қалған сәйкессіздік әртүрлі өлшемде байқалады. Тест таңдау мен ұғымды түсіну осылай өзара байланысады.

Айнымалының бастапқы мәнін зерттеу алгоритмнің логикасын ашуға көмектеседі. Қосындыны жинау, көбейтінді есептеу немесе ең үлкен мәнді табу тапсырмаларында бастапқы мәннің қызметі әртүрлі болады. Оқушы барлық жағдайда бірдей мән беруге дағдыланса, кейбір деректерде қате нәтиже алады. Мұғалім дайын ережені ғана айтпай, бастапқы мәннің кейінгі әрекетке қалай ықпал ететінін талдатады. Мысалы, көбейтінді жинақталатын айнымалыға нөл беру келесі көбейтулердің нәтижесін өзгеріссіз қалдыратыны қадамдап көрсетіледі. Ал максимумды табуда бірінші элементке сүйену неліктен орынды болатыны есептің шартымен байланыстырылады. Осы талдау оқушыға айнымалыны жай сақтау орны емес, алгоритмдегі белгілі міндетті атқаратын құрал ретінде түсінуге мүмкіндік береді.

Шарттардың орналасуы мен логикалық байланысын талдау себеп-салдарлық ойлауды дамытады. Бірнеше шартты жеке тексеру мен өзара балама тармақтар ретінде ұйымдастыру әртүрлі нәтиже беруі мүмкін. Оқушы мұны тек синтаксистік айырмашылық ретінде емес, орындалу тәртібі арқылы түсінуі керек. Мұғалім бір кіріс мәнінде қандай тармақтардың іске қосылатынын болжауды ұсынады. Егер екі шарт бір уақытта орындалса, бағдарлама бірнеше әрекет жасай ма, әлде біреуін ғана таңдай ма деген сұрақ қарастырылады. Кейін болжам нақты орындалумен салыстырылады. Осындай тапсырмалар шарттардың мағынасын түсінуге және олардың бірін-бірі толықтыруын тексеруге көмектеседі. Логикалық байланыстарды саналы құру күрделі бағдарламалардағы қателердің алдын алуға негіз болады.

Қате тек есептеу логикасында емес, нәтижені шығару тәсілінде де кездесуі мүмкін. Бағдарлама дұрыс мәнді есептегенімен, оны талап етілген ретпен немесе форматпен бермесе, шешім қабылданбайды. Мұндай жағдай оқушыға тапсырма талаптарын толық оқудың маңызын көрсетеді. Мысалы, матрица элементтерін жеке қатарларға бөлу, бірнеше нәтижені белгілі ретпен шығару немесе артық түсіндірме қоспау талап етілуі мүмкін. Мұғалім оқушыны бірден алгоритмді өзгертуге емес, есептелген мән мен көрсетілген нәтижені ажыратуға бағыттайды. Осы талдау «Бағдарлама дұрыс есептеді ме?» және «Жауап дұрыс ұсынылды ма?» деген екі сұрақты бөліп қарастыруға көмектеседі. Нәтижесінде зерттеу нақты мәселенің орналасқан деңгейіне сәйкес жүргізіледі.

Алгоритмнің уақыт шығынын талдау зерттеушілік жұмысты тиімділік мәселесіне кеңейтеді. Шағын деректерде дұрыс орындалған бағдарлама үлкен көлемде белгіленген уақытқа сыймауы мүмкін. Бұл жағдайда оқушы жауаптың дұрыстығы мен оны алу тәсілінің тиімділігін ажыратуы қажет. Мұғалім кіріс көлемін біртіндеп арттырып, орындалатын әрекеттер санының қалай өзгеретінін талдауды ұсынады. Тек уақыт өлшеміне сүйену жеткіліксіз, өйткені құрылғы мен орындау жағдайы нәтижеге әсер етеді. Сондықтан циклдердің құрылымы және қайталанатын есептеулер де қарастырылады. Оқушы артық әрекетті байқап, оны азайтудың жолын іздейді. Осындай жұмыс алгоритмді «істейді» немесе «істемейді» деп бағалаудан оның ресурстық талаптарын түсінуге жетелейді.

Бір есептің қарапайым және тиімді шешімдерін салыстыру тексерудің пайдалы тәсілі бола алады. Шағын деректер үшін түсінікті, бірақ баяу алгоритм құрып, оның нәтижесін күрделірек шешіммен салыстыруға болады. Егер нәтижелер сәйкес келмесе, нақты мысал зерттеледі. Алайда екі бағдарлама да бірдей қате болжамға сүйенуі мүмкін екенін ескеру қажет. Сондықтан бастапқы мысалдардың бір бөлігі қолмен тексеріледі. Мұғалім осы тәсілді оқушылардың дайындық деңгейіне сай қолданады. Негізгі мақсат күрделі құрал көрсету емес, бір шешімді басқа жолмен тексерудің маңызын түсіндіру. Оқушы нәтижеге сенімділіктің тек бағдарламаның орындалуынан емес, әртүрлі тексеру негіздерінің үйлесуінен қалыптасатынын байқайды.

Қате коды бар тапсырмалар мұғалімге белгілі ойлау әрекетін мақсатты ұйымдастыруға мүмкіндік береді. Мұндай код алдын ала таңдалған бір немесе бірнеше сәйкессіздікті қамтуы мүмкін. Бірақ тапсырма оқушы меңгермеген көптеген ұғыммен ауырлатылмауы тиіс. Егер барлық жол түсініксіз болса, зерттеу нақты қатені талдаудан кездейсоқ болжауға айналады. Алғашқы кезеңде таныс құрылымдағы бір қате ұсынылып, кейін бірнеше өзара байланысты мәселе қарастырылады. Оқушыдан қатені табу ғана емес, оны көрсететін тест құру және түзетудің себебін түсіндіру талап етіледі. Осылайша тапсырма дайын жауапты жылдам іздеу жарысына айналмайды. Бағдарламаны түсіну мен дәлелді тексеру негізгі орын алады.

Жұптық жұмыс кодты талдау кезінде ойды дауыстап түсіндіруге жағдай жасайды. Бір оқушы болжамын айтып, тексеру қадамын ұсынады, екіншісі оның шартқа сәйкестігін қарап, нақтылаушы сұрақ қояды. Кейін рөлдер ауысады. Бұл ұйымдастыру бір баланың барлық кодты түзетіп, екіншісінің тек бақылап отыруынан сақтайды. Жұптағы әңгімеде «Меніңше, мәселе осы жерде, өйткені…» немесе «Бұл өзгерісті қандай мысалмен тексереміз?» деген сөйлемдер қолданылады. Мұғалім дайын шешімді бір-біріне айтуға емес, пайымдау жолын түсіндіруге бағыттайды. Қысқа жеке ойлану кезеңі әр қатысушының өз болжамымен келуіне мүмкіндік береді. Бірлескен тексеру дербес ойды толықтырып, дәлелдің түсініктілігін бағалауға көмектеседі.

Топтық зерттеу күрделірек мәселелерді бөліп қарастыруға мүмкіндік береді. Бір топ есептің шартын талдаса, екіншісі тест деректерін құрады, үшіншісі кодтың орындалу жолын бақылай алады. Кейін алынған мәліметтер біріктіріліп, ортақ қорытынды жасалады. Алайда жұмыс бөліктерге бөлінгенде әр оқушы тек өз әрекетінің нәтижесін біліп қалмауы керек. Сондықтан қорытынды талқылауда барлық топ мәселенің толық түсіндірмесін қарастырады. Түзетуге дейінгі және кейінгі нәтиже салыстырылып, қандай дәлелдің шешуші болғаны анықталады. Мұндай жұмыс зерттеу барысында әртүрлі мәліметтің бір мәселені түсіндіруге қалай қосылатынын көрсетеді. Сонымен бірге ортақ қорытындының негізін түсіну және өз үлесіне жауап беру дағдылары қалыптасады.

Мұғалімнің бағыттаушы сұрақтары оқушының дербестігін сақтауы тиіс. Қате көрініп тұрған жағдайда оны бірден көрсету уақыт үнемдегендей әсер қалдырады, бірақ зерттеу мүмкіндігін азайтады. Оның орнына мұғалім күтілетін нәтижені сұрап, қате қай деректерде байқалатынын нақтылауға көмектесе алады. Кейде «Осы айнымалы циклдің әр айналымында қандай мән алады?» деген бір сұрақ жеткілікті болады. Қолдау оқушының нақты қиындығына сай беріледі. Шартты түсінбеген балаға тест ұсынудан бұрын есептің мағынасын талдау қажет, ал болжамы бар оқушыға оны тексеру жолын таңдауға көмек керек. Қолдау біртіндеп азайғанда, оқушы бұрын естіген сұрақтарды өзіне қойып, зерттеу әрекетін дербес ұйымдастыруға үйренеді.

Жұмыстың барысын қысқаша тіркеу зерттеушілік дағдыларды бекітеді. Оқушы қандай қате байқағанын, қандай болжам ұсынғанын, оны қалай тексергенін және қандай қорытынды жасағанын жаза алады. Мұндай жазба ұзақ есепке айналмауы тиіс; бірнеше нақты сөйлем жеткілікті. Оның мақсаты орындалған әрекеттердің логикасын түсіну және кейін ұқсас мәселе туындағанда тәжірибеге қайта оралу. Қате түзелгенімен, себебі түсіндірілмесе, оқушы келесі жолы сол қиындыққа қайта тап болуы мүмкін. Ал қысқа қорытынды белгілі заңдылықты есте сақтауға көмектеседі. Мысалы, «Соңғы элемент циклге кірмегендіктен, қосынды толық есептелмеді» деген түсіндіру өзгертілген таңбадан гөрі мазмұнды білім береді. Жазба ойлаудың нәтижесін бекітеді.

Бағалау барысында тек бағдарламаның соңғы жұмысын есепке алу жеткіліксіз. Бір оқушы дайын түзетуді қолданып дұрыс жауап алса, екіншісі қатенің себебін дәл анықтап, бірақ ұсақ рәсімдеу мәселесін аяқтамауы мүмкін. Сондықтан зерттеушілік мақсатқа сәйкес мәселені сипаттау, тест таңдау, болжамды негіздеу және қорытындыны түсіндіру ескеріледі. Бұл нәтиженің дұрыстығын елемеу дегенді білдірмейді. Дұрыс бағдарлама мен оған апарған саналы әрекет бірге бағаланады. Мұғалім нақты кері байланыс береді: «Қатені қайталайтын мысалды дұрыс таңдадың, енді өзгерістің басқа жағдайларға әсерін тексер» деген ұсыныс келесі қадамды көрсетеді. Осындай бағалау оқушыны тек жауап алуға емес, шешімнің сенімділігін дәлелдеуге ынталандырады.

Кодтағы қателерді талдауға арналған жұмыс жүйелі ұйымдастырылғанда ғана тұрақты дағдыға айналады. Бір сабақтағы қызықты тапсырма жеткіліксіз; бақылау, болжам және тексеру әрекеттері әртүрлі тақырыпта қайталанып, біртіндеп күрделенуі қажет. Алғашында қарапайым шарттағы қате зерттелсе, кейін цикл, тізім, матрица немесе функциялардағы байланыстар қарастырылады. Оқушы бұрынғы тәсілін жаңа жағдайда қолдануды үйренеді. Сонымен бірге барлық қатені бірдей жолмен іздеуге болмайтынын түсінеді. Кейде қадамдап орындау тиімді болса, басқа жағдайда шағын тест немесе есептің шартын қайта талдау маңызды болады. Зерттеушілік дербестік осы тәсілдердің ішінен орындысын таңдай білуден көрінеді. Мұғалім әр тақырыпта осы таңдаудың негізін талқылауға мүмкіндік береді.

Кодтағы қателерді талдау оқушыны белгісіздікпен жұмыс істеуге, дәлелге сүйенуге және өз болжамын тексеруге үйретеді. Бағдарлама күтілген нәтиже бермегенде, ол сәтсіздікті тоқтау нүктесі емес, жаңа сұрақтың бастауы ретінде қабылдай алады. Бұл көзқарас есептің шартын түсіну, деректерді салыстыру, әрекетті бақылау және қорытындыны нақтылау тәжірибесі арқылы қалыптасады. Информатика мұғалімі қатені талдауға жеткілікті уақыт беріп, дайын түзетуден бұрын себепті іздеуге бағыттағанда, бағдарламалау зерттеушілік оқу алаңына айналады. Оқушы тек жұмыс істейтін код құруды емес, оның неліктен жұмыс істейтінін және қандай жағдайда дұрыс нәтиже беретінін түсіндіруді меңгереді. Осындай саналы тәжірибе зерттеуге негізделген ойлау мәдениетін қалыптастырады.

Пайдаланылған әдебиеттер

  1. McCauley R. et al. Debugging: A Review of the Literature from an Educational Perspective // Computer Science Education. — 2008. — Vol. 18, № 2. — P. 67–92. — DOI: 10.1080/08993400802114581.
  2. Fitzgerald S. et al. Debugging: Finding, Fixing and Flailing, a Multi-Institutional Study of Novice Debuggers // Computer Science Education. — 2008. — Vol. 18, № 2. — P. 93–116. — DOI: 10.1080/08993400802114508.
  3. Agans D. J. Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems. — AMACOM, 2002.
  4. Downey A. B. Think Python: How to Think Like a Computer Scientist. — 2nd ed. — O’Reilly Media, 2015.
  5. Matthes E. Python Crash Course: A Hands-On, Project-Based Introduction to Programming. — 3rd ed. — No Starch Press, 2023.
  6. Пойа Д. Как решать задачу: пособие для учителей. — Москва: Учпедгиз, 1959. — 208 с.