Олимпиадалық есептер және олардың түрлері мен ерекшеліктері. Информатикадан олимпиада түрлері

Соңғы жылдары информатика пәні бойынша олимпиадалық тапсырмаларға қойылатын талаптар деңгейі күшеюде.

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

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

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

Пәндік олимпиадалар төмендегі мынадай негізгі міндеттерді шешуге мүмкiндiк береді:

- оқушылардың пәнге деген қызығуын арттыру;

- оқушыларды түрлі салалардың есептерін компьютерде шешуге қалыптастыру;

- мектеп оқушыларының ішінде ғылыми еңбекке бейім оқушыларды анықтау;

- жоғары сынып оқушыларына кәсіп тандауда көмектесу;

- мектепте сабақтан тыс жұмыстар, үйірмелер, факультативтердің жұмыстарын жандандыру.

Информатика пәнінен өткізілетін олимпиадалар программалау мен базалық курс бойынша өткізіледі.

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

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

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

Информатика пәнінің ең негізгі ұғымдарының бірі-алгоритм ұғымы. Алгоритм – рет-ретімен орындалатын командалар тізбегі деген мағына береді. Программалау барысында берілген есептің алгоритмін табу, яғни компьютерге, есепті орындау үшін орындалуы керек, командалардың ретін көрсету қажет. Есептердің математикалық моделін құру қажеттілігі де осында. Өйткені математиканың барлық есептері оңай алгоритмделеді. Сол үшін программалаумен айналысатын әрбір оқушыға терең математикалық білімді меңгеру талап етіледі.

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

Оқушылардың программалау бойынша дайындауда төмендегі екі факторға ерекше мән беру керек, оқушыға терең алгоритмдік ойлауды қалыптастырумен бірге оқушының бір программалау тілін (Паскаль, Qbasic, Си және т.б.) жете меңгеруін қамтамасыз ету қажет.

Осы бағыттағы жұмысты келесі кезеңдерге бөлуге болады:

1. Оқушылар арасынан математикаға қабылетті, логикалық ойлауы бар оқушыларды таңдау;

2. Таңдалған оқушының алгоритімдік ойлау қабылетін қалыптастыру;

3. Оқушыға компъютерді меңгерту;

4. Оқушыға программалау тілін үйрету.

Олимпиадаға дайындық үшін алынатын оқушыларды 5-6 сынып оқушыларының ішінен таңдаған дұрыс. Біріншіден, бұл сынып оқушыларында білімге деген құштарлық жоғары болса, екіншіден, мұғалім оқушыны олимпиадаға 7-8 сыныптан бастап қатыстыру арқылы, оқушының мол тәжірибе жинақтауына мүмкіңдік береді. Сонда оқушы олимпиадаға 3 рет қатысудың орнына 4-5 рет қатысып, білім денгейін толық көрсетуге мүмкіндік алады. Үшіншіден, мұғалім оқушыны 5-6 жыл үздіксіз дайындау арқылы оқушының пәнді жан-жақты меңгеруіне ықпал жасайды.

1-кезеңде оқушылармен төмендегідей жұмыстар өткізіледі:

- оқушылармен информатика пәні, оның алға қойған мақсаттары мен бағыттары жайлы сұқбат өткізу;

- пәнге қызығушылық танытқан оқушыларды жинап, тест жұмысын алу арқылы олардың қабылетін тексеру;

- тест жұмысын ойдағыдай тапсырған оқушыларды, сұхбат өткізу арқылы олардың ішінен математикаға қабылетті, алгоритмдік және логикалық ойлауы бар оқушыларды таңдау.

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

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

Демек, оқушының информатикалық білім деңгейін анықтау барысында оның логикалық талдауы мен компьютерлік сауаттылығы, яғни, оның программалау тілін меңгере отырып, қойылған мәселені шеше алатындай программа жасай алуы, файлдармен жұмыс істей алуы және де өздері тандап алған программалау тілінің трансляторын қолдана білуі қатар тексеріледі.

Жалпы алғанда, мектеп программасында берілгендер қоры мен файлдармен жұмыс істеу, яғни файлды құру, ашу, жабу сияқты мәліметтер қарастырылмағанымен, олардың қарапайым түрлерін меңгеру оқушыға қиын соқпайды. Олай болса, алдымен файлды құру, ашу және жабу мәселелеріне тоқталып өтелік. Ол үшін жалпыға бірдей түсінікті ету мақсатында қарапайым Pascal (Cи) тілінде яғни, Free Pascal (Dev C++) компиляторын пайдалана отырып түсіндіріледі.

Олимпиадалық тапсырмаларды орындау барысында негізінен үш түрлі файлдармен жұмыс жүргізіледі: енгізу файлы (текстік файл), жұмысшы файл (программа), нәтижелік файл (текстік файл).

Алғашқы мәліметтер жазылған, яғни енгізу файлы (тестік файл) текст түрінде құрылады. Оның алгоритмі:

1. Контестілі мәзір => Құру => Текстік құжат

2. Файл аты (input.txt)

3. Мәліметтерді ендіру

4. Файл => Сақтау

Программада берілгендер файлын ашып, ондағы қажетті мәліметтерді оқу үшін:

Pascal тілінде:

Assign(f, ’input.txt’); { f - файлдық айнымалыға ’input.txt’-

дискілік файл атын тағайындау }

Reset(f); {оқу үшін файлды ашу}

Readln(f,v); {файлдағы мәліметтерді v- айнымалысына енгізу}

...

Си тілінде:

#include <stdio.h>

long a,b;

int main(){

freopen("input.txt","r",stdin);

scanf("%ld%ld",&a,&b);

...

Ал, программа нәтижесін шығыс файлына жазу үшін келесі операторлар пайдаланылады:

Pascal тілінде:

Assign(f1 ’output.txt’); { f-файлдық айнымалыға ’output.txt’-

дискілік файл атын тағайындау }

Rewrite(f1); {жазу үшін файлды ашу}

Writeln(f1,v1); {v1-нәтижелік мәліметтерді файлға жазу}

Сlose(f1); {файлды жабу}

Си тілінде:

#include <stdio.h>

long a,b;

int main(){

freopen("output.txt","w",stdout);

printf("%ld",v1);

return 0;

}

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

Содан кейін оқушыларды берілген тапсырма моделін құрып, оны логикалық талдау жұмысына дағдыландыру мақсатында түрлі тапсырмалардың орындалуын талап етіледі.

Олимпиада есептеріне талдау

Программалау техникасын меңгеру тақырыптары:

- Программалау тілдерінің негізі (Паскаль,Си)

- Қарапайым берілгендердің типтері оңың өлшемдері. Айнымалылар. Сызықтық прогаммалар. Шартты операторлар. Циклдер. Процедуралар және функциялар;

- Күрделі берілгендер типтерімен (массивтер, қатарлар, жазбалар, нұсқаулар, файлдар) танысу;

- Массивтер. Бір өлшемді массивтер. Екі өлшемді массивтер(матрицалар). Көп өлшемді массивтер, Массивтерді реттеу және іздеу алгоритмдерін меңгеру;

- Қатарлар. Лексикалық және синтаксистік талдау элементтері. Қатарларман жүргізілетін операциялар. Лексем, әртүрлі типтегі лексемдер. Қатардан санды бөліп алу.

- Файлдармен жұмыс істеу. Тестік файлға жазу және оқу. Файлдан алынған деректерді керекті құрылымға өзгерту. Типтік файлдармен жұмыс істеу. Типтік емес файлдар. Енгізуді буферлеу.

- Рекурсия. Рекурсия ретінде берілетін математикалық функциялар. Алгоритмдерде рекурсияны қолдану білу. Рекурсиялық ішкі программалларға мысалдар. Итерация рекурсиясын ауыстыру.

- Комбинаторика элементтері.

- "Ұзын" арифметика. Стандартты типте сыймайтын сандарды сақтау. Тізіммен жұмыс істеу. "Ұзын" сандармен жұмыс істейтін арифметикалық операциялар.

- Динамикалық бағдарламалаудың принциптерін меңгеру. Динамикалық жадыда ақпаратты сақтау. Сызықтық тізімде берілгендерді сақтау. Екі байланысты тізімдер. Стек, шеңбер, кезек жайлы түсініктер. Үлкен массивтерді сақтау.

- Есептерді шешу алгориті, әдісі және принципі. Күрделі алгоритм жайлы түсінік. Күрделілігін анықтау. P және NP кластарындағы есептер. NP-толық есептер.

- Іздеу және реттеу алгоритмдері. Реттелмеген массивтен элементті іздеу. Кілт бойынша реттелген массивтен элементті іздеу. Фибоначчи әдісі бойынша іздеу. N- өлшемді реттелген массивте элементті іздеу. Реттеудің қарапайым алгоритмдері. Тез реттеу алгоритмдері

- Нұсқаларды іріктеу әдісі арқылы есептерді шешу. Жиындардың орны ауыстыру, сәйкестендіру, орналастыру. Нұсқаларды бөліп алу. Шекара және тармақ әдісі.

- Есептеу геометриясының алгоритмдерін меңгеру. Есептеу геометриясы және сандық әдістер. Кесіндінің ұзындығы. Түзу теңдеуі. Түзулердің қилысу нүктесі. Жазықтықтағы фигураға нүктенің жатуы. Дөңес көпбұрыштың ауданы. Теңдеулер жүейсін шешетін теңдеулер жүйесі.

- Графтар жайлы алгоритмдерді үйрену;

Бақылау сұрақтары:

1. Мектеп оқушыларын олимпиадаларға қатыстырудың қажеттілігі неде?

2. Информатикадан өткізілетін олимпиадалардың басқа пәндерден ерекшеліктері неде?

3. Оқушыларды олимпиадаға дайындау кезеңдерін ата.

4. Информатикадан олимпиадаға қатысатын оқушыларға математикалық білім қаншалықты қажет?

Наши рекомендации