1.6 Программалауды оқытудың жалпы білім беру тұрғысынан дамуы. Оқушылардың алгоритмдік мəдениеті
Математикалық бағыттағы мектептерде программалауды оқыту, оқу өндiрiстiк комбинаттардағы сияқты, көбінесе, арнайы, кəсіби бағытталған мүдделерді көздеді. Бірақ сол кезде адамзат қызметінің жаңа саласы ретінде ЭЕМ мен программалаудың жаппай орта мектептiң оқыту мазмұнына жалпы білім беру ықпалын зерттеу табандылықпен жүргізілді. О бастан-ақ, программалау саласынан алынған идеялар мен əдістердiң жалпы бiлiм берерлік күшінің жалпы мектепте білім беру мазмұнының жаңа іргелі компоненттерiн дамытатындай аса үлкен əлеуеті бар екендігі түсінікті болған болатын. Практикалық программалаудың жалпы білім берудегі құндылығының ашылуына сол кезде (XX ғасырдың 60-70 жылдары) өтіп жатқан адам мен ЭЕМ арасындағы қатынастың табиғи түрлерінің дамуына бағытталған оның сырт əлпетінің тез өзгеруі де себепші болды. Программалаудың жалпы білім берудегі құндылығы мен ЭЕМ-дi қолданып есеп шығарудың жаңа əдіс-тəсілдерінен жалпы білім беруге не енуі тиіс жəне ол мектепте оқытудың əдістемесi мен мазмұнына қалай əсер етеді – міне, дербес компьютерлер мен мектеп информатикасының пайда болуы кезеңінiң алдында ғалымпедагогтардың белсенді түрде қызығушылығын тудырған сұрақтар болды.
ЭЕМ-ге программалаудың негізінде берiлген тiлдiң құралдарымен алгоритмдi құрастырып, сипаттау үдерісі ретінде кең көлемде қарастырылатын алгоритмдеу түсiнiгі жатыр. Бірақта, алгоритмдеу формальды орындаушы (автомат) мен адамның қатынасы сүйенетін əдіс ретінде ЭЕМ-ге программа құруға ғана байланысты емес. Модельдеу сияқты алгоритмдеу де кибернетиканың жалпы əдісі.
Түрлі жүйелердегі басқару үдерістері белгілі бір алгоритмнің жүзеге асырылуына келтіріледі. Алгоритмдерді құрумен ең қарапайым автоматты құрылғылардың жасалуы да, күрделi өндірістік үдерістерді басқарудың автоматтандырылған жүйесін жасап шығу да байланысты. Алгоритмдеудің іргелі негіздері, бүтіндей, заманауи математиканың теориялық саласында – алгоритмдер теориясында жатыр, бірақ алгоритмдеу, кең практикалық мағынада, алгоритмдер туралы ұтымды ойлаудың ерекше өзіне тəн дағдыларына негізделген белгілі бір практикалық тəсiлдердiң жиынтығы ретінде түсініледі.
Оқушылардың санасында алгоритмдік үдерістер мен оларды сипаттаудың тəсiлдерi туралы түсiнiктер информатика мен есептеу техникасының пайда болуына дейін мектеп пəндерін оқу барысында (айқын емес болса да) қалыптасқандығы бiзге жақсы белгiлi. Ол кезде мектеп пəндерінің арасында негізгі басты рөлді операциялық жəне алгоритмдік амал-əрекеттер оның оқу қызметінің маңызды элементтері болғандықтан математика атқарды. Шынында да, математикалық алгоритмдерді тұжырымдау, жазу, тексеру, сонымен бірге оларды дəл орындау біліктіліктері, “алгоритм” терминінің өзі мектептің оқу бағдарламасында қолданылмаса да, əрқашан да оқушылардың математикалық мəдениетінің маңызды құрамды бөлігі болды. ЭЕМ мен программалаудың тарап, дамуы нəтижесінде математикалық мəдениеттің бұл бөлiгi өзіндік мəнге ие бола бастады, тек оны алгоритмдеудің жалпы маңызды құрамды бөліктерімен толықтыру қажет болды. Осылайша құрылған өзіндік ерекшілігі бар, қазіргі заман адамының жалпы мəдениетінің жаңа элементін анықтайтын жəне сол себептен де мектеп жалпы білім беру мазмұнына қосуға болатын ұғымдар, іскерліктер мен дағдылар жиынтығы – «оқушылардың алгоритмдік мəдениеті» деген атау алды (М. П. Лапчик [6, 7, 9, 11]).
Алгоритмдеудің жалпы білім берерлік негiзiн талдау нəтижесiнде құрастырылған алгоритмдік мəдениеттің құрамды бөліктерінің тізбесі мен сипаттамасын қарастырайық.
1. Алгоритм ұғымы жəне оның қасиеті. Алгоритм ұғымы – алгоритмдеудің негізгі ұғымы жəне тиісінше, алгоритмдік мəдениеттің құрамды бөлігі болып табылады. Алгоритмдеуді оқу барысында осы ұғымның қатаң математикалық егжей-тегжейлі анықтамасын пайдаланудың қажеті (иə, мүмкіндік те) жоқ, тек оны интуициялық көрнекілік деңгейде түсіндіру жеткілікті. Баяндау барысында алгоритмнің түсiнiктiлiгі, жалпыға бiрдейлiгi, анықталғандығы мен нəтижелілігi сияқты мазмұнды қасиеттері маңызды мағынаға ие болады.
2. Алгоритмдерді сипаттау тілі ұғымы. Алгоритмді сипаттау мəселесi əрқашанда сипаттауды іске асыратын бір тілдің болуын талап етеді. Осы себептен де алгоритм ұғымы алгоритмді өрнектеу (беру) құралы ретіндегі тіл ұғымымен тығыз байланыста болады. Тілді таңдау əр жағдайда алгоритмнің қолдану саласымен, яғни, нақты айтқанда, орындаушы қызметiн атқаратын обьектінің (адамның, автоматтың, компьютердiң) қасиеттерімен анықталады. Сол немесе басқа орындаушымен қарым-қатынас кезінде тіл мүмкiндіктерінің шекарасынан мұқият шықпау талаптарын орындау кейбір жағынан алгоритмдеудің бастапқы негізі болып табылады. Осы жағдайды түсіну жəне пайдаланылатын тілдік құралдардың мүмкіншіліктерін сипаттаманың əрбiр нақты бағытында дəл сақтау алгоритмдік мəдениеттің маңызды құрамды бөлігін құрайды.
3. Сипаттау формализмінің деңгейі. Сипаттау формализмінің деңгейі ұғымы тіл ұғымымен тығыз байланысты. Егер сипаттама автоматқа құрылған болса, онда пайдаланылатын тіл қатаң шектеулерге бағынады, олар, əдетте, тілдің синтаксисін құрайтын формальды ережелер жүйесіне келтірілген болуы мүмкін. Осындай жағдайларда тілдің өзі формальданған тілге келтірілді дейді. Бірақ практикада, алгоритмдерді құру үдерісінде, əсiресе, алдын ала сипаттауларды құру кезiнде қатаң шектелген болуы міндетті емес тілдік құралдарды пайдалануға болады. Оның үстіне, осындай жағдай тек алдын-ала құру үдерісінде ғана емес болуы мүмкін. Мысалы, алгоритм адамға арналған болса, онда алгоритмдеудің соңғы нұсқасы формальды емес, “екі ұшты” келтірілуі мүмкін.
Практикада қолданылатын алгоритмдердің көбісі осы формальды емес нұсқада “жұмыс істейді”. Тек алгоритм орындаушыға түсінікті болуы керек, яғни ол оның мүмкіншіліктері шегінен шығатын сипаттау құралдарын пайдаланбауы керек. Сонымен, алгоритмдердi келтірудің практикада қолданылатын формальдау деңгейлері мейлiнше кең диапозонда: формальдаудың мүлдем жоқ болу деңгейінен “сондай немесе басқа мөлшерде” формальдау деңгейіне дейін жəне соңында “абсолютті” формальдау деңгейіне дейін өзгеруі мүмкін. Орындаушыға алгоритмнiң түсiнiктiлiгi факторын ескере отырып, формальдау деңгейі əртүрлi тілдермен жұмыс істей білу де алгоритмдік мəдениеттің маңызды құрамды бөлігі болып табылады.
4. Сипаттаудың дискреттілік (қадамдық) принципі. Алгоритмдi құру қажеттi нəтижеге алып келетін, мүмкiн болатын қарапайым, жай əрекеттердiң дəл мақсатқа бағытталған тізбегін бөліп көрсетудi талап етедi. Осы əрекеттердің ұйымдасқан жиынтығы алгоритмді түсiнiктi жəне нақтылы ететін алгоритмдi сипаттаудың белгілі бір дискреттi құрылымын құрайды. Əр түрлі тілдерде алгоритмнің осындай жеке кезеңдері түрлі құралдармен келтіріледі. Алгоритмнің сөзбен келтірілуінде (табиғи тілде) – бұл жеке сөйлемдер, нұсқаулар, пункттер, схемалар тілінде – бұл жеке блоктар, ЭЕМ-нiң объектілер тiлінде – бұл жеке жарлықтар, жоғарғы деңгейдегі алгоритмдiк тілде – операторлар.
5. Блоктар принципі. Алгоритмді құру үшiн қолданылатын тілдердің мүмкіндіктері сипаттауларды (алгоритмдiк жазбаларды) тəптіштеудің қандай да бір дəрежесін таңдап алуды қажет етеді. Бірақ бұл жағдай қажетті алгоритмді құру үдерісінде оның алғашқы схемасын сипаттау үшiн сол алгоритм адрестелген орындаушының мүмкіндігімен салыстырғанда iс-əрекет бірлігі мейлiнше ірілеу болатын тiлдi пайдалануға кедергі болмайды. Шын мəнінде, берілген жағдайда күрделі есепті қарапайым есептерге жекелеп бөле білу икемдігі туралы сөз болып отыр. Осындай жолды, əрқашан, есеп барынша күрделі болған жағдайда, оның шешу алгоритмін қажеттi тiлде тез жазу үшiн таңдауға тура келеді. Бұл жағдайда есеп əрқайсысына өзінше мəн берілетін ақпаратты тұйық бөліктерге (блоктарға) бөлiнеді де, есептiң бөліктерін байланыстыратын алғашқы схеманы құрып болғаннан кейін жеке блоктарды тəптіштеу жұмыстары жүргiзiледi. Осы блоктардың əрқайсысы осы дəл қазір сипатталған принцип бойынша тəптіштелуі керек.
Блоктар принципі, шын мəнінде, жалпы ойлау тəсiлi бола тұра, үлкен жалпы білімдiк жəне тəрбиелік мəнге ие. Осы принцип схемасына əр түрлі саладағы зерттеу үдерістері өте жиі келтіріледі.
Сыртқы байланыстарды анықтап, зерттеуші таныс емес облысты жеке дербес бөліктерге бөлуге тырысады, содан кейін барып əр блоктың ішіне кіредi. Немесе керісінше: жалпы байланыстар схемасына шолу жасау мақсатында, алдымен, жеке элементтер дербес блоктарға топталады, содан кейін олар бір-бірімен байланыстырылады. Блоктар принципі, программалау саласынан алынған тəсiлдердің жалпы білім беру күші қаншалықты бола алатындығын айқын көрсетеді.
Блоктардан аяғына дейін алгоритм құруда ымырасыз əртүрлі екі тəсіл болуы мүмкін:
а) блоктың тəптіштелген сипаты алгоритмнің сəйкес жеріне орналасады, ал блок өзінің алгоритмді іздеудiң жалпы тəсілі рөлін тамамдап, оған “сіңіп” кеткендей болады.
ə) блоктар мазмұны алгоритмге кірмейді, ал оның сəйкес орындарында жеке орналасқан блоктарға сілтемелер орналасады; басты алгоритм мен оның жеке блоктары (көмекші алгоритмдер) жиынтығы қорытынды алгоритм болып саналады.
6. Тармақталу принципі. Алгоритмді сипаттауға қолданылатын тiлдердiң алгоритмдік толықтығы талабы алгоритмдiк жазбаларда логикалық жағдайларды, яғни бастапқы берiлген шарттарға байланысты шешiм қабылдауды талап ететін жағдайларды жүзеге асыру мүмкiндiгiн беретiн құралдардың болуын қамсыздандыруы керек. Осындай алгоритмдерді ұйымдастыру тілдің логикалық (тармақталушы) құралдарын икемді қолдана білудi талап етеді. Мұнда төмендегілерді:
а) сипаттама бастапқы берілгендердің барлық мүмкін нұсқаларын алдын ала ескеруі керектігін жəне олардың əр комбинациясы үшiн нəтижелі болуы қажеттігін;
б) бастапқы берілгендердің нақты мəндері үшін алгоритмнiң орындалуы нақты шарттармен анықталатын жолдардың тек бiреуi бойынша ғана жүзеге асырылатындығын жете түсіну алгоритмдік сауаттылықтың маңызды құрамды бөлігі болып табылады.
7. Циклдiк принцип. Алгоритмдік сипаттамалардың тиімділігі, көп жағдайда, енетiн шамалардың əртүрлі мəндері үшiн сипаттамалардың белгілі бiр үзiндiлерін бірнеше рет пайдалану мүмкіндігімен анықталады. Сипаттамаларды құру тура осындай тəсілге, осы сипаттамаларда қарастырылған əрекеттер ауқымының өсуінен ұзамайтын сипаттамалар құруға негізделген. Сипаттаманың бiр үзiндiсін қайталап жүргізуге оралу тілдің логикалық құралдарын қолдану арқылы ұйымдастырыла алады, бірақ тілдің циклдік алгоритмдерді ұйымдастыратын арнайы құралдары да болуы мүмкін (мысалы, жоғары деңгейлі тілдердегі цикл операторлары). Қай жағдай болмасын, алгоритмдік мəдениеттің маңызды құрамды бөлігi мұнда циклдік үдерістің жалпы жұмыс істеу схемасын түсіну, əсiресе, алгоритмді құру барысында циклдің қайталанатын (жұмысшы) бөлігін ажырата білу біліктілігі болып табылады.
8. Алгоритмді орындау (негіздеу). Алгоритмдеу үдерісінде ұдайы қолданылатын алгоритмдi сипаттау үшiн құрылған үзiндiлерді жоспарланған нəтижелерден басқаша, қандай да бір мезетте автордың өзі не орындаушы қалай жасағысы келсе, солай емес, олар қалай сипатталса солай қабылдап, орындау біліктілігі алгоритмдік сауаттылықтың маңызды компоненті болып табылады. Басқа сөзбен айтқанда, автордың ойлағаны мен нақты жазылған нəрсе неге келтіретіндігін айқын салыстыра (бөле де) білудің дамыған біліктілігі талап етiледі. Алгоритмдеудің осы құрамды бөлігі алгоритмнiң авторын ұдайы суыққанды жəне тақуа орындаушы болуға мəжбүр етеді жəне, шын мəнінде, алгоритмнің дұрыстығына бақылау жасап, алгоритмді негiздеу бойынша алгоритмдік сипаттама жасау үдерісіндегі жалғыз жұмыс iстейтін (оны шын орындаушыға бергенге дейін) құрал болып табылады.
9. Мəліметтерді ұйымдастыру. Алгоритм үшiн бастапқы материал өңдеуге жататын ақпарат немесе бастапқы берілгендер болып табылады. Алгоритмді құрушы өңдеуді қандай ретпен жүргізуді ғана емес, сонымен қатар, алгоритмнің орындалуында алынған соңғы жəне аралық нəтижелерді қай жерге, қалай тиянақтап алуды ойлауы керек.
Жоғарыда көрсетілген алгоритмдік мəдениеттің құрамды бөліктерін меңгеру алгоритмдер құру – алгоритмдеу, демек, ЭЕМ үшін программалау дағдыларын қалыптастырудың негізiн қалайды. Дегенмен, алгоритмдік мəдениетті құрайтын құрамды бөліктердің ерекшелігі олардың тек оқушының ЭЕМ-мен қарымқатынасына ғана бағытталғандығынан ғана емес, жалпы айтқанда, программалаудан тəуелсіз кең мағынасы бар екендігінен тұрады. Басқа сөзбен айтқанда, оқушының алгоритмдік мəдениеті жалпы «программалауға дейінгі» түсініктер, біліктілiктер мен дағдылардың жиынтығы ретiнде оқушының алғашқы бір сауаттылық деңгейiн қамтамасыз етеді. Бұл тек «оқушы-компьютер» жүйесінде ғана емес, сонымен бірге формальды емес «оқушы-мұғалім», «оқушы-оқушы» т.с.с. машинасыз жүйелерде де жемісті жұмыс істеуді қамтамасыз етеді, яғни, жеке алғанда, «компьютерлік» жағдайдан тыс оқу пəндері шеңберінде оқушылардың іс-əрекетіне қызмет жасайтын операциялық толықтыру жасайды деуге болады.
ИЕТН пəнін мектепке енгізуге байланысты академик Е. П. Велихов атап өткендей, «информатика компьютерлерді пайдалануға келтірілмейтін, көшеде жолаушыға жол бағытын түсiндiре алу икемділігі сияқты жалпы адамзат мəдениетінің бір бөлігі болып табылады» [46].
Орта мектептің программалау курсына жалпы білім беру материалын айқындауға бағытталған зерттеулердің нəтижесі мектептiң оқу жоспарына жаппай енгізу мақсатында программалау курсынан жалпы білім беретiн пəндi (бөлімді) қалыптастырудың педагогикалық мəселесіне əкеп тіреді. Осындай əрекет 1970 жылдардың ортасында ең алғаш рет жүзеге асырылды: 8-сыныптың алгебра курсында «Есептеу жəне алгоритмдер» тақырыбы бойынша əңгімелесуге арналған материал, ал кейінірек 11 сағаттық «Алгоритмдер жəне программалау элементтері» бөлiмi пайда болды [47].
Мектептiң бiлiм берудiң жүйелі мазмұнына ЭЕМ-ге арналған программалау туралы мəліметтердің кенеттен «бұзып өтуінің» мəнін бағалау қиын, бұған қарамастан бұл əрекет бүтіндей алғанда сəтсіз болып шықты жəне бұл жаңа бөлiм көп кешікпей алгебра оқулығынан алынып тасталынды. Себебi сол уақытқа дейiн жасалынған алгоритмдеуді көрнекі оқытуға арналған аз да болса оқу-əдістемелік құралдарды ендiрудiң орнына оқулыққа Алгол-60 тілінің формальді ағылшын тіліндегі нұсқасы енгізілді, ал бұл өз кезегiнде дайындықсыз математика мұғалімдерін естен тандырды. Нəтижесінде оқушыларға алгоритмдік мəдениеттің құрамды бөліктерін қалыптастыру үшiн оқу машинасы (гипотетикалық) жəне алгоритмдеу тілдерін пайдалану идеяларының дамуы жандандырылды (И. Н. Антипов [48, 49], М. П. Лапчик [9] жəне т.б.). Мерзімді əдiстемелiк басылымдарда мектепке кибернетика элементтерін, ЭЕМ мен программалауды оқытуға арналған жалпы білім беретін курстарды табанды түрде енгізу керектігі жайында мəселе қойылып, оны талқылауға əдіскерлермен бірге атақты математиктер де [50-55 жəне т.б.] қатысты. Сол кезде алгоритмдеудiң мазмұндық-əдiстемелiк аспектілерiнiң дəстүрлі мектеп пəндеріне пəнаралық ықпалы, ең алдымен, математикаға тіл арқылы, мазмұнының алгоритмдік бағыттылығы, білімнің қолданбалы жағына назардың күшеюі жəне т.с.с. [56, 9, 55, 20, 57] арқылы ықпалы зерттелді. Осы жұмыстардың болашақтағы маңыздылығы – олардың программалау идеялары мен əдістерінiң оқыту мазмұны мен үдерісіне терең ықпал етуі қырларын қарастырғандығында. Олардың кемшiлiктері он жыл өткеннен кейін мектептерді батыл түрде компьютерлендiру етек алғанда толығымен біліне бастады.
Достарыңызбен бөлісу: |