Сипаттаудың дискреттілік (қадамдық) принципі. Алгоритмдi құру қажеттi нәтижеге алып келетін, мүмкiн болатын қарапайым, жай әрекеттердiң дәл мақсатқа бағытталған тізбегін бөліп көрсетудi талап етедi. Осы әрекеттердің ұйымдасқан жиынтығы алгоритмді түсiнiктi және нақтылы ететін алгоритмдi сипаттаудың белгілі бір дискреттi құрылымын құрайды. Әр түрлі тілдерде алгоритмнің осындай жеке кезеңдері түрлі құралдармен келтіріледі. Алгоритмнің сөзбен келтірілуінде (табиғи тілде) – бұл жеке сөйлемдер, нұсқаулар, пункттер, схемалар тілінде – бұл жеке блоктар, ЭЕМ-нiң объектілер тiлінде - бұл жеке жарлықтар, жоғарғы деңгейдегі алгоритмдiк тілде – операторлар.
Блоктар принципі. Алгоритмді құру үшiн қолданылатын тілдердің мүмкіндіктері сипаттауларды (алгоритмдiк жазбаларды) тәптіштеудің қандай да бір дәрежесін таңдап алуды қажет етеді. Бірақ бұл жағдай қажетті алгоритмді құру үдерісінде оның алғашқы схемасын сипаттау үшiн сол алгоритм адрестелген орындаушының мүмкіндігімен салыстырғанда iс-әрекет бірлігі мейлiнше ірілеу болатын тiлдi пайдалануға кедергі болмайды. Шын мәнінде, берілген жағдайда күрделі есепті қарапайым есептерге жекелеп бөле білу икемдігі туралы сөз болып отыр. Осындай жолды, әрқашан, есеп барынша күрделі болған жағдайда, оның шешу алгоритмін қажеттi тiлде тез жазу үшiн таңдауға тура келеді. Бұл жағдайда есеп әрқайсысына өзінше мән берілетін ақпаратты тұйық бөліктерге (блоктарға) бөлiнеді де, есептiң бөліктерін байланыстыратын алғашқы схеманы құрып болғаннан кейін жеке блоктарды тәптіштеу жұмыстары жүргiзiледi. Осы блоктардың әрқайсысы осы дәл қазір сипатталған принцип бойынша тәптіштелуі керек.
Блоктар принципі, шын мәнінде, жалпы ойлау тәсiлi бола тұра, үлкен жалпы білімдiк және тәрбиелік мәнге ие. Осы принцип схемасына әр түрлі саладағы зерттеу үдерістері өте жиі келтіріледі.
Сыртқы байланыстарды анықтап, зерттеуші таныс емес облысты жеке дербес бөліктерге бөлуге тырысады, содан кейін барып әр блоктың ішіне кіредi. Немесе керісінше: жалпы байланыстар схемасына шолу жасау мақсатында, алдымен, жеке элементтер дербес блоктарға топталады, содан кейін олар бір-бірімен байланыстырылады. Блоктар принципі, программалау саласынан алынған тәсiлдердің жалпы білім беру күші қаншалықты бола алатындығын айқын көрсетеді.
Блоктардан аяғына дейін алгоритм құруда ымырасыз әртүрлі екі тәсіл болуы мүмкін:
а блоктың тәптіштелген сипаты алгоритмнің сәйкес жеріне орналасады, ал блок өзінің алгоритмді іздеудiң жалпы тәсілі рөлін тамамдап, оған “сіңіп” кеткендей болады.
ә блоктар мазмұны алгоритмге кірмейді, ал оның сәйкес орындарында жеке орналасқан блоктарға сілтемелер орналасады; басты алгоритм мен оның жеке блоктары (көмекші алгоритмдер) жиынтығы қорытынды алгоритм болып саналады.
Тармақталу принципі. Алгоритмді сипаттауға қолданылатын тiлдердiң алгоритмдік толықтығы талабы алгоритмдiк жазбаларда логикалық жағдайларды, яғни бастапқы берiлген шарттарға байланысты шешiм қабылдауды талап ететін жағдайларды жүзеге асыру мүмкiндiгiн беретiн құралдардың болуын қамсыздандыруы керек. Осындай алгоритмдерді ұйымдастыру тілдің логикалық (тармақталушы) құралдарын икемді қолдана білудi талап етеді. Мұнда төмендегілерді:
а) сипаттама бастапқы берілгендердің барлық мүмкін нұсқаларын алдын ала ескеруі керектігін және олардың әр комбинациясы үшiн нәтижелі болуы қажеттігін;
б) бастапқы берілгендердің нақты мәндері үшін алгоритмнiң орындалуы нақты шарттармен анықталатын жолдардың тек бiреуi бойынша ғана жүзеге асырылатындығын жете түсіну алгоритмдік сауаттылықтың маңызды құрамды бөлігі болып табылады.
Циклдiк принцип. Алгоритмдік сипаттамалардың тиімділігі, көп жағдайда, енетiн шамалардың әртүрлі мәндері үшiн сипаттамалардың белгілі бiр үзiндiлерін бірнеше рет пайдалану мүмкіндігімен анықталады. Сипаттамаларды құру тура осындай тәсілге, осы сипаттамаларда қарастырылған әрекеттер ауқымының өсуінен ұзармайтын сипаттамалар құруға негізделген. Сипаттаманың бiр үзiндiсін қайталап жүргізуге оралу тілдің логикалық құралдарын қолдану арқылы ұйымдастырыла алады, бірақ тілдің циклдік алгоритмдерді ұйымдастыратын арнайы құралдары да болуы мүмкін (мысалы, жоғары деңгейлі тілдердегі цикл операторлары). Қай жағдай болмасын, алгоритмдік мәдениеттің маңызды құрамды бөлігi мұнда циклдік үдерістің жалпы жұмыс істеу схемасын түсіну, әсiресе, алгоритмді құру барысында циклдің қайталанатын (жұмысшы) бөлігін ажырата білу біліктілігі болып табылады.
Алгоритмді орындау (негіздеу). Алгоритмдеу үдерісінде ұдайы қолданылатын алгоритмдi сипаттау үшiн құрылған үзiндiлерді жоспарланған нәтижелерден басқаша, қандай да бір мезетте автордың өзі не орындаушы қалай жасағысы келсе, солай емес, олар қалай сипатталса солай қабылдап, орындау біліктілігі алгоритмдік сауаттылықтың маңызды компоненті болып табылады. Басқа сөзбен айтқанда, автордың ойлағаны мен нақты жазылған нәрсе неге келтіретіндігін айқын салыстыра (бөле де) білудің дамыған біліктілігі талап етiледі. Алгоритмдеудің осы құрамды бөлігі алгоритмнiң авторын ұдайы суыққанды және тақуа орындаушы болуға мәжбүр етеді және, шын мәнінде, алгоритмнің дұрыстығына бақылау жасап, алгоритмді негiздеу бойынша алгоритмдік сипаттама жасау үдерісіндегі жалғыз жұмыс iстейтін (оны шын орындаушыға бергенге дейін) құрал болып табылады.
Мәліметтерді ұйымдастыру. Алгоритм үшiн бастапқы материал өңдеуге жататын ақпарат немесе бастапқы берілгендер болып табылады. Алгоритмді құрушы өңдеуді қандай ретпен жүргізуді ғана емес, сонымен қатар, алгоритмнің орындалуында алынған соңғы және аралық нәтижелерді қай жерге, қалай тиянақтап алуды ойлауы керек.
Жоғарыда көрсетілген алгоритмдік мәдениеттің құрамды бөліктерін меңгеру алгоритмдер құру – алгоритмдеу, демек, ЭЕМ үшін программалау дағдыларын қалыптастырудың негізiн қалайды. Дегенмен, алгоритмдік мәдениетті құрайтын құрамды бөліктердің ерекшелігі олардың тек оқушының ЭЕМ-мен қарым-қатынасына ғана бағытталғандығынан ғана емес, жалпы айтқанда, программалаудан тәуелсіз кең мағынасы бар екендігінен тұрады. Басқа сөзбен айтқанда, оқушының алгоритмдік мәдениеті жалпы «программалауға дейінгі» түсініктер, біліктілiктер мен дағдылардың жиынтығы ретiнде оқушының алғашқы бір сауаттылық деңгейiн қамтамасыз етеді. Бұл тек «оқушы-компьютер» жүйесінде ғана емес, сонымен бірге формальды емес «оқушы-мұғалім», «оқушы-оқушы» т.с.с. машинасыз жүйелерде де жемісті жұмыс істеуді қамтамасыз етеді, яғни, жеке алғанда, «компьютерлік» жағдайдан тыс оқу пәндері шеңберінде оқушылардың іс-әрекетіне қызмет жасайтын операциялық толықтыру жасайды деуге болады.
ИЕТН пәнін мектепке енгізуге байланысты академик Е.П. Велихов атап өткендей, «информатика – компьютерлерді пайдалануға келтірілмейтін, көшеде жолаушыға жол бағытын түсiндiре алу икемділігі сияқты жалпы адамзат мәдениетінің бір бөлігі болып табылады» [11].
Орта мектептің программалау курсына жалпы білім беру материалы айқындауға бағытталған зерттеулер ақыр соңында мектептiң оқу жоспарына ары қарай жаппай ендiру мақсатында программалау курсынан жалпы білім беретiн пәндi (бөлімді) қалыптастырудың педагогикалық мәселесіне әкеп тіреді. Осындай әрекет 1970 жылдардың ортасында ең алғаш рет жүзеге асырылды: 8-сыныптың алгебра курсында «Есептеу және алгоритмдер» тақырыбы бойынша әңгімелесуге арналған материал, ал кейінірек 11-сағаттық «Алгоритмдер және программалау элементтері» бөлiмi пайда болды [2].
Мектептiң бiлiм берудiң жүйелі мазмұнына ЭЕМ-ге арналған программалау туралы мәліметтердің кенеттен «бұзып өтуінің» мәнін бағалау қиын, бұған қарамастан бұл әрекет бүтіндей алғанда сәтсіз болып шықты және бұл жаңа бөлiм көп кешікпей алгебра оқулығынан алынып тасталынды. Себебi сол уақытқа дейiн жасалынған алгоритмдеуді көрнекі оқытуға арналған аз да болса оқу-әдістемелік құралдарды ендiрудiң орнына оқулыққа Алгол-60 тілінің формальді ағылшын тіліндегі нұсқасы енгізілді, ал бұл өз кезегiнде дайындықсыз математика мұғалімдерін естен тандырды. Нәтижесінде оқушыларға алгоритмдік мәдениеттің құрамды бөліктерін қалыптастыру үшiн оқу машинасы (гипотетикалық) және алгоритмдеу тілдерін пайдалану идеяларының дамуы жандандырылды (И. Н. Антипов [6, 3], М.П. Лапчик [46] және т.б.). Мерзімді әдiстемелiк басылымдарда мектепке кибернетика элементтерін, ЭЕМ мен программалауды оқытуға арналған жалпы білім беретін курстарды табанды түрде енгізу керектігі жайында мәселе қойылып, оны талқылауға әдіскерлермен бірге атақты математиктер де [7, 8, 12, 30, 32, 36, 56 және т.б.] қатысты. Сол кезде алгоритмдеудiң мазмұндық-әдiстемелiк аспектілерiнiң дәстүрлі мектеп пәндеріне пәнаралық ықпалы, ең алдымен, математикаға тіл арқылы, мазмұнының алгоритмдік бағыттылығы, білімнің қолданбалы жағына назардың күшеюі және т.с.с [9, 46, 56, 59, 75] арқылы ықпалы зерттелді. Осы жұмыстардың болашақтағы маңыздылығы - олардың программалау идеялары мен әдістерінiң оқыту мазмұны мен үдерісіне терең ықпал етуі қырларын қарастырғандығында. Олардың кемшiлiктері он жыл өткеннен кейін мектептерді батыл түрде компьютерлендiру етек алғанда толығымен біліне бастады.
Достарыңызбен бөлісу: |