LIETUVOS EDUKOLOGIJOS UNIVERSITETAS GAMTOS, MATEMATIKOS IR TECHNOLOGIJŲ FAKULTETAS

INFORMATIKOS KATEDRA

Marek Oleškevič

Programavimo kalbų naudojimo Lietuvos mokyklose analizė

Analysis of Programming Languages Usage in Lithuanian schools

Informatikos baigiamasis magistro darbas

Darbo vadovas doc. dr. T. Petkus

Vilnius

2014 ĮVADAS ...... 3

1. PROGRAMAVIMO KALBŲ ISTORIJA IR RAIDA ...... 5

1.1. Programavimo kalbų raidos apžvalga ...... 5

1.2. Programavimo kalbų raidos filosofija...... 9

1.3. Programavimo kalbų populiarumas ...... 16

1.4. Programavimo kalbų bendrosios savybės ...... 19

2. PROGRAMAVIMO KALBŲ NAUDOJIMAS LIETUVOS MOKYMO ĮSTAIGOSE ...... 22

2.1. Programavimo kalbų atsiradimas informatikos egzamine...... 24

2.2 Programavimo kalbų per IT VBE pasirinkimo analizė ...... 26

2.3. Eksperimentinis tyrimas ...... 27

2.4. Eksperimentinio tyrimo apibendrinimas ...... 33

2.5. Apklausos duomenų analizė ...... 34

2.6. Apklausos duomenys: „Programavimo kalbų naudojimo Lietuvos mokyklose analizė . 35

3. C++ IR TAIKYMO GALIMYBĖS ...... 43

3.1. Free Pascal taikymo galimybės: ...... 43

3.2. Pagrindinės FPS savybės ir funkcinės galimybės: ...... 43

3.3. C++ taikymo galimybės: ...... 44

3.4. Pagrindinės C++ savybės ir funkcinės galimybės[16]: ...... 44

3.5. C++ ir FPS programų kodų palyginimai ...... 45

4. IŠVADOS ...... 47

5. SANTRAUKA ...... 49

6. SUMMARY...... 50

7. LITERATŪROS SĄRAŠAS...... 51

2 ĮVADAS

Šiuolaikinėje Lietuvoje su kompiuteriniu programavimu susipažįstama jau mokykloje. Dėstomų programavimo kalbų įvairovė yra gana didelė, dažniausiai naudojamos kalbos yra „FPS“, „C++“, „“, „Python“, „Java“, „PHP“, „Logo“, „Scratch“, „“, „Lego Mindstrom Education“. Visos išvardintos kalbos turi savo istorijas, jos buvo kurtos skirtingais laikais bei siekiant skirtingų tikslų. Dėl šių priežasčių programavimo kalbos turi daug skirtumų. Skirtumai dažniausiai yra ne vien sintaksiniai ar loginiai, gali skirtis programavimo kalbos paskirtis. Vienos kalbos skirtos struktūriniam programavimui, kitos objektiniam, trečios skirtos programavimo logikos ugdymui. Be minėtų skirtumų šios kalbos turi ir panašumų, todėl perpratus vieną kalbą, lengvai galima perprasti ir kitas. Pagal Švietimo ir mokslo ministerijos nuostatas, programavimas Lietuvos mokyklose yra privalomas, pasirinkus informacinių technologijų dalyką „A“ lygiu. Mokiniai jau 6 klasėje susipažįsta su „Komenskio Logo“ arba „Imagine Logo“ programa. Vėliau – 9 klasėje su informacinių technologojų logika, t. y. su skaičiavimo sistemomis, loginiais operatoriais, algoritmais. Jau 10 klasėje galima pasirinkti programavimo modulį, kuriame realizuojamos nesudėtingų algoritmų transformacijos į programas. Šiame darbe yra apžvelgta programavimo kalbų istorija ir jų raida, pradedant nuo pačios pirmosios programos ir pirmosios programuotojos ir baigiant šiuolaikinėmis programavimo kalbomis. Taip pat apžvelgiama programavimo kalbų filosofija ir jų populiarumas šiuo metu, analizuojamos programų populiarumo pasikeitimo tendencijos. Taip pat yra atlikti anketiniai ir eksperimentiniai tyrimai, parodantys programavimo kalbų populiarumą mokyklose, pateikti mokinių gebėjimų įvertinimai mokinantis skirtingas programavimo kalbas. Mokyklinio kurso lygmenyje išanalizuotos informacinių technologijų valstybiniame brandos egzamine naudojamos programavimo kalbos, jų struktūra, sintaksė ir galimybės.

3 Darbo tikslas – ištirti programavimo kalbų Lietuvos mokyklose naudojimą ir jų įtaką tolimesniam programavimo mokymui.

Uždaviniai:

• Apžvelgti programavimo mokymo raidą ir filosofiją;

• Palyginti „C++“ ir „Pascal “ programavimo kalbų galimybes mokyklinio kurso lygmenyje;

• Atlikti programavimo kalbų naudojimo anketinį tyrimą;

• Atlikti praktinį skirtingų programavimo kalbų mokymo eksperimentą su mokiniais.

4 1. PROGRAMAVIMO KALBŲ ISTORIJA IR RAIDA

1.1. Programavimo kalbų raidos apžvalga

Nuo pat programavimo eros pradžios buvo naudojamas paprasčiausias mašininis kodas, tai 1 ir 0 seka.[1]

Suteikus mašininio kodo eilutėms simbolinius vardus atsirado Asembleris, jis egzistuoja nuo pat kompiuterių atsiradimo pradžios.

Evoliucionuojant Asembleriui atsirado kitos programavimo kalbos.

1945 m. sukurta pirmoji žinoma programavimo kalba Plankalkül.[2]

 Fortran (1954);  Algol 58 (1958);  Lisp (1959);  Cobol (1960);  Simula (1962);  BASIC (1964);  Logo (1967);  Pascal (1971);  C (1972);  C++ (1983);  Perl (1987);  Python (1991);  Java (1995);  PHP (1997);  C# (2000).

Nuo XX a. 6-ojo dešimtmečio vidurio dauguma kalbų kurtos ne iš naujo, o tobulinant ir jungiant jau sukurtas kalbas [2]. Paveikslėliuose (1-5 pav.) pavaizduota aukšto lygio programavimo kalbų genealogija ir jų tarpusavio ryšiai, vienų kalbų įtaka kitoms.

5

1 pav. Programavimo kalbų raidos schema[8]

6

2 pav. Programavimo kalbų raidos schema[3]

3 pav. Programavimo kalbų raidos schema[3]

7

4 pav. Programavimo kalbų raidos schema[3]

5 pav. Programavimo kalbų raidos schema[3]

8 1.2. Programavimo kalbų raidos filosofija

Ada Lovelace laikoma pirmąja kompiuterių programuotoja. Ji dirbo kartu su matematiku Charles Babbage, kai jis kūrė analitinę mašiną. Ada rašė užrašus, skirtus šiai analitinei mašinai, kuri niekada nebuvo pagaminta. Šie užrašai pripažįstami kaip pirmoji programa.[3]

Ada Lovelace buvo poeto Lord George Gordon Byron dukra. Su Charles Babbage ji susipažino 1833 m. Babbage buvo pirmasis, kuris turėjo programuojamo kompiuterio idėją. Šią idėją suprato Ada Lovelace (pavardė pagal vyrą). Gruodžio 10 d. – Ados gimimo diena, laikoma programuotojų diena.[3]

Kai atsirado pirmos skaičiavimo mašinos ir dar nebuvo šiuolaikinių programavimo kalbų, tų laikų programuotojai dirbo tiesiogiai su mašininiu kodu. Žinoma, tokie žmonės buvo labai vertinami, tačiau jiems buvo keliami ir dideli reikalavimai, tokie kaip nepriekaištingos mašininės kalbos žinios, visos kompiuterių architektūros išmanymas. Tais laikais visa informacija buvo saugoma ne kietajame diske kaip dabar, o perforuotose kortose.[4]

Tiesioginio mašininio kodo pvz.:

Dviejų skaičių sumavimo operacija atrodo taip:

000000 00001 00010 00110 00000 100000

Pirmasis žingsnis link civilizuoto programavimo buvo perėjimas prie Asemblerio[4].

Asembleris mašininio kodo eilutėms suteikė simbolinius vardus.

(pateikiamas “Hello world” fragmentas Asemblerio kalba [4]): assume cs:cseg, ds:dseg, ss:sseg mov ax,dseg mov ds,ax ;duomenu segmento iniciavimas lea dx, welcome mov ah, 09h int 21h mov ah,4ch int 21h

Tai buvo milžiniškas žingsnis į priekį, dabar programuotojui nereikėjo aiškintis, kaip užrašyti komandą mašininiu lygiu. Programuojant Asembleriu atsirado galimybė naudoti atžymas, tai gerokai palengvino programų testavimą ir klaidų paiešką. Atsirado galimybė gaminti

9 mašinas vienodu ar suderinamu mašininių komandų rinkiniu, tai galima pavadinti pirmuoju bandymu padaryti programinį kodą pernešamu. Asembleris leido dar vieną naujovę: atsirado du programų variantai, tai yra mašininio kodo ir sukompiliuoto pavidalu. Tačiau bėgant laikui ir tobulėjant šiai kalbai, bei vystantis kompiuteriams, programavimas Asembleriu darėsi vis sudėtingesnė problema, kol galiausiai tapo išvis beveik neįmanomas[4]. Šiandien Asembleris naudojamas labai retai, bet vis dar naudojamas situacijose, kur reikalingas išskirtinis greitis ir optimizavimas, pavyzdžiui, Linux branduolys kernelis parašytas C programavimo kalba (kuris vadinamas dar ir aukšto lygio asembleriu) ir dalis – Asembleriu, taip pat žaidimuose, šifravimo, duomenų spaudimo ir panašiuose programavimo uždaviniuose.

Reikėtų paminėti pirmąją programavimo kalbą Plankalkül. Ją sukūrė vokiečių mokslininkas Konradas Ciuzė (Konrad Zuse) 1945 m. rašydamas daktaro disertaciją. Kalba turėjo pačius primityviausius duomenų tipus ir nedaug valdymo struktūrų. Kalba nebuvo realizuota – tais laikais dar tik pradėjo atsirasti pirmieji, labai primityvūs kompiuteriai. Tačiau kalba turėjo neabejotiną svarbą: parodytas kelias, kaip kurti programavimo kalbas. Kaip istorinę reikšmę turintis dokumentas, jos aprašas buvo išspausdintas tik 1972m.[14]

Fortran

1954-1958 – FORmula TRANslator. Kalbos kūrėjai – John Backus ir kiti IBM darbuotojai. Kalba skirta matematiniams skaičiavimams. Fortran II (1958) turėjo paprogrames, funkcijas, ciklus, primityvų for sakinį. Vardų ilgis buvo ribojamas 6 simboliais. Nors šioje kalboje duomenų ir valdymo struktūros buvo labai menkos, tačiau kelios pagrindinės programavimo kalbų teorinės idėjos buvo perteiktos. Čia buvo vartojami loginiai kintamieji – suprasta jų reikšmė programavime. Buvo įgyvendinta išrinkimo sakinio idėja, nors dar gana netobulai, labai neaiškiai. Apskritai pirmosios kalbos vis dar tebebuvo labiau skiriamos kompiuteriui, o ne žmogui.[3][4]

Lisp

1958-1960 – LISt Processing. Programos autorius Mac Carthy. Funkcinė kalba sąrašų apdorojimui. Pilnai rekursinė kalba. Nėra skirtumo tarp kodo ir duomenų.[3][4]

Algol 68

Algol – 1960 / Algol 68 – ALGOrithmic Language. Apibrėžė tarptautinis kompiuterių mokslo specialistų simpoziumas. Tai pirmoji universali nuo kompiuterio nepriklausoma kalba. Panaudojo bloko sakinius ir lokalius kintamuosius bloko viduje. Įgyvendinta ribota rekursija, nes buvo manoma, kad ji nenaudinga. Naudojo dinaminius masyvus, vadinasi vėlesnes kalbos (Pascal, C), kurios naudojo statinius masyvus dėl efektyvumo, regresavo. Turėjo IF THEN ELSE, :=

10 priskyrimas, SWITCH su GO TO operatoriumi, BEGIN, END, WHILE ciklas. Algol 60 vis dar buvo orientuotas matematiniams skaičiavimams. Nauja versija buvo pradėta 1964 ir užbaigus, pavadinta Algol 68. Ji turėjo =+ priskyrimo ir sudėties apjungimui. Algolo-68 kalboje leidžiama programuotojui pačiam, panaudojant standartinius tipus ir keletą jų komponavimo būdų konstruoti naujus duomenų tipus. Šią savybę perėmė vėlesnės kalbos: Paskalis, C, Modula–2. Ada.[3][4]

Cobol

Cobol – 1960 – COmmon Business Oriented Language. Apibrėžė komitetas CODASYL (COnference on DAta SYsystems Languages). Komitetą globojo JAV gynybos departamentas. Cobol – procedūrinė kalba, skirta įmonės valdymui.

Jos programa dalinama į 4 skyrius:

 apibrėžimas,  aplinka,  duomenys,  procedūra. Šioje kalboje buvo įvesta Ji įvedė RECORD duomenų struktūra. Programas dokumentavo jų sintaksė, nes ilgi raktiniai žodžiai. Europoje nepaplito, tačiau JAV išgyveno iki šių dienų.[3][4]

Basic

Basic – 1964 – Beginner’s All-purpose Symbolic Instruction Code. Programos autoriai: John Kemeny, Thomas Kurtz. Pirmoji versija buvo kompiliuojama, vėliau tapo interaktyvi ir interpretuojama. Kiekviena eilutė turėjo numerį, kad būtų galima naudoti GOTO. Pirmieji IBM PC (1981) naudojo MS-DOS ir jos interpretuojamą Basic. 1982 Microsoft sukūrė kompiliuojamą Basic. Toje pačioje dekadoje Pascal ir C pakeitė Basic. Microsoft iki šiol naudoja Basic. Visual Basic – programoms, ASP – internetui, programose naudojama papildoma kalba (macro komandos) – kuri taip pat yra Basic.[3][4]

Simula 67

Simula 67 – 1962-1967. Programos autoriai: Ole-Johan Dahl, Kristan Nygaard. Simula projektas buvo pradėtas 1962. Tikslas – sukurti priemonę diskretinių įvykių sistemos valdymui. Pradžioje tai buvo Algol išplėtimas. Naudojama oro uostų, transporto ir kitų socialinių sistemų valdymui. Tai buvo specializuota priemonė. 1966 buvo nuspręsta sukurti universalią kalbą. Ši kalba įvedė klases, paveldimumą, objektus. Klasės leido sujungti funkcijas (metodus) su objektais.[3][4]

11 PL/1

PL/1 – 1965 – number One – Pradinis pavadinimas NPL (New Programming Language). Autorius ir kurėjas – IBM. Tai buvo bendros paskirties ir modulinė kalba. Baziniai žodžiai buvo rezervuoti tik tam kontekstui, kur buvo naudojami kaip baziniai žodžiai. Labiau nepriklausoma nuo aparatūros, nei ankstesnės kalbos. Tokie buvo tipai: fixed, real, complex, character, bit, bin, pointer, picture, file, etc.... Duomenys turėjo numatytuosius atributus, kurie priklausė nuo konteksto. Buvo sudėtiniai duomenų tipai: masyvas, struktūra, unija ir jų kombinacijos. IF THEN ir SELECT .. WHEN .. OTHERWISE – sąlyginės struktūros. DO variacijos leido įvairius ciklus. Kintamųjų gyvavimo klasės: automatinė, statinė, (visoje programoje), valdoma, bazinė. Įvestas išimčių valdymas.[3][4]

Pascal

Pascal programavimo kalbą sukūrė Šveicarijos Federalinės aukštosios politechnikos mokyklos Informatikos instituto direktorius Niklausas Virtas () 1970 m. Jis pavadino kalbą prancūzų mokslininko Blezo Paskalio vardu, atsidėkodamas jam už Paskaliną.

Paskalina viena iš tobulesnių mechaninių skaičiavimo mašinų, išlikusių iki šių dienų ir turėjusiu didelę įtaką kitiems mokslininkams, 1642 m. sukūrė prancūzų mokslininkas Blezas Paskalis (Blaise Pascal, 1623 - 1662). Jaunasis Blezas, ilgas valandas padėdavęs tėvui, tuometiniam mokesčių rinkimo valdininkui, skaičiuoti pinigus, sugalvojo įrenginį, galintį atlikt sudėtį. Amžininkai įrenginį pavadino Pascalina. Ją sudarė rutuliukai, ant kurių užrašyti skaitmenys nuo 0 iki 9. Apsisukęs vieną kartą, rutuliukas užkabindavo gretimą ratuką ir pasukdavo jį per vieną skaitmenį, t.y. atitinkama skaičių skiltis padidėdavo vienetu. B. Paskalio taikytas „surištų ratukų“ principas buvo naudojamas beveik visuose vėliau sukurtuose mechaniniuose skaičiuotuvuose.[5]

B. Paskalis vėliau tapo žymiu matematiku ir filosofu, tačiau jo nuopelnai kompiuterių istorijai prisimenami iki šiol. Jo vardu pavadinta viena iš populiariausių programavimo kalbų - Paskalio programavimo kalba.

Paskalio kalbos devizas – paprastumas. Projektuojant Paskalį buvo iškeltas tikslas: sukonstruoti tokią kalbą, kad būtų kuo panašesnė į šnekamąsias kalbas, tikintis, kad pradedantiems mokytis programuoti būtų lengviau.[17] Kalba, skirta kompiliatorių projektavimo palengvinimui ir mokymui, skiriant dėmesį struktūriniam programavimui. Kalba buvo tiek paprasta ir išraiškinga, be to turėjo tokias geras aukšto lygio duomenų ir valdymo struktūras, kad greitai paplito tarp programuotojų ne tik kaip mokymosi kalba. UCSD Pascal buvo parašytas mikro kompiuteriams.

12 Jis kompiliuodavo programas į P kodą, kuris buvo pernešamas ir interpretuojamas (kaip vėliau Java). Jis turėjo pilną derinimo aplinką, vėliau panaudotą . Kalba susilaukė visuotino pripažinimo, todėl 1977 m. buvo sudaryta mokslininkų grupė Pascal kalbos standartui parengti. 1983 m. paskelbtas tarptautinis Pascal kalbos standartas ISO 7185. Juo remiamasi, kuriant transliatorius įvairių tipų kompiuteriams. Kai 1983 pasirodė Turbo Pascal (Anders Hejlsberg), greitas ir su pilna aplinka, kalba turėjo didelį pasisekimą ir naudojama iki šiol.

Nuo 2001 atsirado Free Pascal, tai viena iš oficialių pasaulinės informatikos olimpiados, Baltijos šalių ir Lietuvos olimpiadų kalbų.

Pascal tinka ir žmogui algoritmus rašyti bei skaityti, ir kompiuteriui - programoms vykdyti. Todėl juo parašytus algoritmus galima vadinti ir algoritmais, ir programomis, o pačią kalbą - ir algoritmavimo, ir programavimo.[5]

Smalltalk

Smalltalk – 1972, Programos autoriai: Alan Kay ir the Software Concept Group. Tai pilnai objektinė kalba, kuri visuomet vykdoma grafinėje aplinkoje su langais, su pele ir t. t.[3]

C

C – 1972 – C yra B (čia neminėta) įpėdinis, o B yra BCPL (čia neminėta) įpėdinis. Programos autorius: Dennis Ritchie (kalbą vystė iki 1980 metų). Ji pradžioje buvo skirta UNIX sistemos programavimui. Bet dėl savo mobilumo ir greitumo ji greitai tapo universalia. Aparatinės įrangos vystymas inicijavo C kalbos kūrimą. BCPL neturėjo tipų (kaip PHP ar kitos šiuolaikinės skriptų kalbos). Paskelbimai int i, char b buvo sukurti C. Kiti tipai pasirodė vėliau. += operatorius atėjo iš Algol 68. BCPL naudojo bloko sakinį su skliaustais (* ir *). C kalba panaudojo { ir }. ++ jau buvo B kalboje o "include" atėjo iš PL/I. C kalbos konstrukcijos buvo perimtos iš Paskalio, Algolo-68 ir netipizuotos žemo lygio programavimo kalbos BCPL. Todėl C kalba turi nemažai žemo lygio programavimo kalboms būdingų bruožų. Pavyzdžiui, beveik nėra duomenų tipų kontrolės. Daugelis programuotojų mėgsta kalbą C dėl jos lankstumo, didesnių galimybių tiesiogiai prieiti prie kompiuterio vidinio funkcionalumo. Už C kalbos darbus Nacionalinius technologijų medalius kūrėjams įteikė prezidentas Bilas Klintonas.[3]

Prolog

Prolog – 1970+. Programos autoriai: A. Colmerauer, D. Roussel. Buvo vystoma tuo pat metu Prancūzijoje ir Škotijoje. Įvedė loginį programavimą. Programą sudaro Horn sakiniai. Prolog yra deklaratyvioji kalba.[3]

13 Ada

Ada – 1980+ – pavadinta Ada Byron de Lovelace garbei (pirmoji pasaulio programuotoja). Sukurta JAV gynybos departamento užsakymu, neturėjo tokios sėkmės kaip Cobol. Įkvėpta Pascal ir Algol, bet sudėtingesnė. Įvedė algoritmų bendrumą (GENERICITY) ir primityvų objektinį programavimą. Objektine tapo vėliau. Įvedė paketus, kurie yra nepriklausomi moduliai.[3]

C++

1985 m. Bjarne Stroustrup „Bell Labs“ kompanijos darbuotojas patobulino C kalbą, joje atsirado OOP (Object Oriented Programming) - objektinis programavimas, įvedė operatorių užklojimą, vienos eilutės komentarus (//), kurie jau buvo BCPL. Buvo įgyvendintas daugybinis paveldimumas ir šablonai (nepriklausomumas nuo tipų) tiek funkcijoms, tiek ir klasėms. Kalba buvo pavadinta C++. Šia kalba parašyta Windows sistema. Pirmieji šios kalbos vartotojai buvo “Bell Labs” kompanijos darbuotojai, o pirmasis komercinis transliatorius buvo parašytas 1993 m. Pirmuoju transliatoriumi tapo preprocesorius croft, transliuojantis C++ kodą į alternatyvų jam C kodą. Kaip tik nuo tada atsirado knygų apie C++ ir jos greitai išpopuliarėjo. Vėliau atsirado virtualios funkcijos, šablonai, operatorių užklojimas, daugiaprotėviškumas. C++ kalbos standartas patvirtintas 1998 m. Dabar ši kalba laikoma viena svarbiausių kuriant didelius ir sudėtingus projektus.[4]

Objektinė C

Objective C – 1984. Programos autorius: Brad Cox. Kita C kalbos objektinė versija. Nėra operatorių užklojimo. Buvo naudota NextStep operacinės sistemos parašymui Next kompiuteryje. Šiuo metu kalba įgavo antrą kvėpavimą – plačiai naudojama iPhone programavimui.[3]

Perl

Perl – 1987 – Practical Extracting and Report Language. Programos autorius: Larry Wall. Buvo skirta, kad pakeistų UNIX komandinės eilutės kalbą. Išlaikė tą pačią nemalonią sintaksę. Naudojama pagrindinai sistemų administravimui ir CGI skriptų rašymui. Turi sąrašus ir asociatyvius masyvus, kuriuos galima indeksuoti bet kokio tipo kintamaisiais. FOREACH ciklas leidžia peržiūrėti sąrašus.[3]

Python

Python – 1991 – Pagal anglišką TV kiną "Monty Python Flying Circus". Programos autorius: Guido Van Rossum. Skriptų kalba su dinaminiais tipais. Skirta pakeisti Perl kalbą.

14 Išplečiama C bibliotekomis ir objektinė. Sluoksnio operatorius [a : b] leidžia ištraukti iš sąrašo jo dalį. Yra versija, kuri kompiliuojama į Java baitinį kodą, gali būti pernešama į .NET platformą. Naudojama kai kuriose pasaulio (ir Lietuvos) mokyklose.[3]

Java

Java – 1994. Programos autorius James Gosling ir kiti Sun firmos programuotojai. Sugalvota 1991 m. kaip interaktyvi kalba, pavadinta Oak, bet sėkmės neturėjo. 1994 m. perrašyta internetui ir pervadinta Java. Nuo 1995 m. naršyklės gali vykdyti Java applet’us. Java yra objektinė kalba, artima C++. Ji kompiliuojama į baitinį kodą, kuris gali būti interpretuotas bet kuriame kompiuteryje. Ji paprastesnė, nei C++: vienas failas – viena klasė, automatinis atminties valdymas, nėra rodyklių, nėra daugybinio paveldėjimo, nėra operatorių užklojimo, bet įgyvendintas lygiagretus programavimas.[3]

PHP

PHP – 1995 – Personal Home Pages Hypertext Processor. Programos autorius: Rasmus Lerdorf. Daugiaplatformė skriptų kalba, įterpiama į HTML. Artima C, bet be tipų. Kintamieji pradedami $ simboliu, kaip UNIX aplinkoje ar Perl kalboje. Interpretorius skaito HTML puslapį, turintį PHP kodą, ir suformuoja švarų HTML puslapį. Funkcijų biblioteka leidžia kurti dinaminius puslapius. Microsoft Windows sistemoje naudoja alternatyvią kalbą ASP, artimą Basic.[3]

JavaScript

JavaScript – 1995 (iš pradžių pavadinta LiveScript), sukurta Brendan Eich Netscape firmoje. Skriptų kalba, įterpianti procedūrinį kodą į web puslapius. Gali naudoti kiti pritaikymai, pavyzdžiui XML stiliaus kalbos. Sintaksė, kaip ir C kalbos, bet kintamieji be tipų. Web elementai (langai, lentelės ir kita) išrenkami per dokumento objektinį modelį.[3]

C#

C# – 2000 – (C-sharp), programos autoriai: Anders Hejlsberg / Microsoft. Tai pagrindinė .NET platformos kalba, programinės įrangos, skirtos internetui, kūrimui. Kaip ir Java, išlaiko C kalbos sintaksę. Tie patys patobulinimai: šiukšlių surinkimas, nėra rodyklių, lygiagretumas, C# kompiliuoja į tarpinę kalbą. Platformos originalumas – leidžia įvairias kalbas kompiliuoti į tarpinę kalbą ir apjungti rezultatus. Yra operatorių užklojimas, yra foreach masyvų peržiūrai.[3]

15 1.3. Programavimo kalbų populiarumas

Po programavimo kalbų raidos istorijos ir filosofijos apžvalgos aktualu susipažinti su programavimo kalbų populiarumu šiai dienai. Žemiau esančioje lentelėje (1 lentelė) yra pateiktas programavimo kalbų populiarumas pagal www.tiobe.com.

1 lentelė. Programavimo kalbų populiarumas pagal www.tiobe.com

16 Dar vienas informacijos šaltinis kuris mums padės suformuoti šiuolaikinį požiūrį į programavimo kalbų populiarumą pateiktas žemiau esančioje diagramoje (6 pav.) pagal www.langpop.com

6 pav. Programavimo kalbų populiarumas pagal www.langpop.com

17 Po programavimo kalbų populiarumo apžvalgos, galima išanalizuoti programavimo kalbas skirtus mokslui, pagal žimių mokslininkų užpildytą lentelę. Žemiau pateikta mokymui skirtu programavimo kalbų lentelė pagal L. Mannila ir M. de Raadt

2 lentelė. Mokymui skirtų programavimo kalbų lentelė pagal L. Mannila ir M. de Raadt

Iš lentelės (2 lentelė) galima matyti, kad daugiausiai kriterijų tenkina C++, Eiffel, Java ir Python programavimo kalbos. Jos ir šiandien turėtų labiausiai tikti mokymuisi. Deja, nėra taip paprasta. Pavyzdžiui, Eiffel programavimo kalba nėra populiari daugelyje taikomųjų sričių, be to, ją intensyviau naudoja tik viena kita šalis. Kita vertus, Pascal programavimo kalba, nors ir senstelėjusi, nors ir tenkina nedaug kriterijų, vis dar grakšti kai kuriomis semantinėmis konstrukcijomis ir populiari įvairiose šalyse (Lietuvoje, Rusijoje, Bulgarijoje ir kt.) mokant programavimo, o ypač algoritmavimo.[6]

18 1.4. Programavimo kalbų bendrosios savybės

Prieš pradedant aiškintis, kokios programavimo kalbos yra naudojamos Lietuvos mokyklose, svarbu sužinoti, kas iš viso yra programavimo kalba ir kam ji naudojama.

Programavimo kalba – tai dirbtinė kalba, skirta programoms užrašyti. Programavimo kalbų pagalba sukurtos programos valdo elektroninių įrenginių, tarp jų ir kompiuterių veikimą.[2]

Programavimo kalbos aprašymas susideda iš sintaksinių bei semantinių taisyklių, kurios, atitinkamai, nusako jos struktūrą ir prasmę. Daugumos programavimo kalbų sintaksinės ir semantinės taisyklės yra tam tikra forma aprašomos jų specifikacijose, kai kurios iš jų yra oficialiai paskelbtos – įgyvendintos, kai tuo tarpu kitos yra įgyvendintos dominuojančiais sertifikatais.[7]

Savybės, kurios paprastai yra keliamos kuriamoms programavimo kalboms:

. Funkcionalumas: Programavimo kalba yra kalba, skirta užrašyti programas kompiuteriui, kurios leistų panaudoti kompiuterio resursus, atliekant tam tikrus skaičiavimus arba algoritmus ir leistų valdyti išorinius įrenginius, pvz., spausdintuvus, robotus ir panašiai.[2][7]

. Paskirtis: Skirtingai nuo natūraliųjų kalbų, kurios paprastai yra naudojamos tik žmonių tarpusavio bendravimui, programavimo kalbos komandų pagalba leidžia žmonėms bendrauti su kompiuteriais ar kitais elektroniniais įtaisais. Kai kurios programavimo kalbos yra naudojamos bendraujant vienam įrenginiui su kitu. Pavyzdžiui, PostScript programos paprastai yra sukuriamos kitų programų, kad valdytų spausdintuvus arba displėjus.[2][7]

. Specialūs konstruktai: Programavimo kalbos gali turėti specialius konstruktus, skirtus apibrėžti ir manipuliuoti tam tikromis duomenų struktūromis arba kontroliuoti duomenų srautus.[2][7]

. Panaudojimo galimybės: Skaičiavimų teorija klasifikuoja programavimo kalbas pagal skaičiavimus, kuriuos galima atlikti naudojant šias programavimo kalbas. Visomis pilnai Tiuringo kalbomis galima sukurti tą pačią algoritmų aibę. Pavyzdžiui, SQL ir Charity yra nepilnai Tiuringo kalbos, nors taip pat yra vadinamos programavimo kalbomis. [2][7]

Kalbos, kurios nėra skirtos atlikti skaičiavimams, tokios kaip žymėjimų kalbos, pavyzdžiui, HTML, arba formalios gramatikos, pvz., BNF, paprastai nėra laikomos programavimo kalbomis. Programavimo kalbos (pilnos arba nevisai pilnos Tiuringo kalbos) gali būti integruotos į šias ne skaičiavimams atlikti skirtas kalbas.[7]

19 Programavimo kalbos skirstomos pagal vykdymo tipą:

Vykdymo tipas – būdas, kai programos kodas paverčiamas kompiuteriui suprantamomis instrukcijomis ir vykdomas.

. Teorinės kalbos - aprašytos, tačiau nevykdomos.

. Kompiliuojamos kalbos – kompiliatorius iš pradinio teksto sukuria vykdomą programą. (pvz., C, Pascal)

. Interpretuojamos kalbos – jų išeities tekstas analizuojamas vykdant. (pvz., BASIC, Perl, Python, Ruby)

. Mišrios kalbos – naudojamas ir kompiliatorius, ir interpretatorius.

Pagal abstrakcijos lygį:

Kuo kalba abstraktesnė, tuo ji yra aukštesnio lygio.

. Mašininis kodas

. Žemo lygio kalbos (pvz., Asembleris)

. Sisteminės kalbos (pvz., C)

. Objektinės kalbos (pvz., SmallTalk)

Pagal vyraujančia paradigmą:

. Funkcinės kalbos (pvz., Lisp, ML)

. Procedūrinės kalbos (pvz., C, Pascal)

. Objektinės kalbos (pvz., SmallTalk, Java, Ruby)

. Loginės kalbos (pvz., Prolog)

. Daugaparadigmės kalbos (pvz. Python (nors dažniausiai naudojama objektinė paradigma)

Pagal sudėtingumą:

BASIC:

Labai paprastus algoritmus suprogramuoti labai paprasta, sudėtingiems algoritmams skirtos kitos programavimo kalbos.

C, C++:

Kalba tokia sudėtinga, kad bet kokiam uždaviniui būtų galima sukurti įmanomai mažesnės apimties programą.

20 Pascal, Python:

Tekstas skirtas ne tik kompiuteriui, bet ir žmogui, viskas turi būti kuo aiškiau, (Pascal: griežtos duomenų tipų taisyklės mažina klaidų tikimybę).

Perl, PHP, Python:

Paprasti algoritmai užrašomi paprastai, įmanoma parašyti ir sudėtingus algoritmus.

Pagal paskirtį:

Kai kurios kalbos dažniau sutinkamos tam tikrose, joms būdingose nišose. Vienos kalbos buvo sukurtos specialiai tam tikros srities problemoms spręsti, kitos išpopuliarėjo savo srityje dėl istorinių aplinkybių.

Keletas išskirtinių sričių su joms būdingomis kalbomis:

. Sisteminis programavimas (operacinių sistemų, kompiliatorių) – C, C++;

. Interneto svetainių programavimas – PHP, Perl, Python, Adobe ColdFusion;

. Matematiniai skaičiavimai – PROLOG, Fortran, MATLAB, MAPLE;

. Mokymas – Pascal, Logo.

Kokios programavimo kalbos yra naudojamos mokyklose?

Lietuvos mokyklose dažniausiai yra naudojamos šios programavimo kalbos: Free Pascal, C++, Delphi, Visual Basic, PHP, Logo, Scratch ir Lego Mindstrom Education.

21 2. PROGRAMAVIMO KALBŲ NAUDOJIMAS LIETUVOS MOKYMO ĮSTAIGOSE

Programavimo mokymas, ypač mokymasis – aktuali problema. Programavimo pradedama mokytis įvairaus amžiaus: nuo pradinių klasių iki aukštosios mokyklos ir dar vėliau. Lietuvos bendrojo lavinimo mokyklose galimybė susipažinti su pirmaisiais programavimo žingsniais įgyvendinta informacinių technologijų programoje: jau penktoje klasėje mokytojai turi supažindinti mokinius su programų kūrimu, pavyzdžiui, pasitelkdami Logo, Scratch arba Lego Mindstrom Education aplinką. Vėliau, devintoje ir dešimtoje klasėje, numatyta galimybė pasirinkti programavimo modulį (čia skiriamas dėmesys algoritmavimui ir programavimo įvadui).[15]

Lietuvoje nuo 1986 m. iki pat pertvarkos 1999 m. privalomas informatikos kursas buvo dėstomas 10–12 klasėse, didžiausia dalis buvo skirta algoritmavimui, dėl kompiuterių stygiaus dažnai buvo mokoma tik teoriniu lygiu. Taip darė ir kitos šalys, ypač – Rytų Europos. Algoritmuojant siekiama išmokyti suprasti formalių žymenų reikšmę, gebėti jais išreikšti veiksmus. Šio kurso dalis glaudžiai susijusi su matematika.

Algoritmuojant svarbu ne tik veiksmų, bet ir duomenų, aprašų, pasirinktos kalbos formalizavimas, produkto užbaigimas ir pateikimas. Kreipiamas dėmesys į formalios kalbos konstrukcijų supratimą, uždavinio algoritmo atlikimą kompiuteriu. UNESCO parengtose pavyzdinėse informatikos (informacinių technologijų) mokymo programose Lietuva, įgijusi ilgametę algoritmavimo mokymo patirtį, turi gajas sąsajas su taikomosios matematikos uždaviniais, nemažą pedagogų ir mokslininkų įdirbį šioje srityje. Sukurtus algoritmus reikia vykdyti kompiuteriu, todėl aktualus programavimo kalbos pasirinkimas.

Nuo pat informatikos atsiradimo Lietuvos mokyklose algoritmų buvo siūloma mokyti Paskalio kalba, tai skatino mokyklose naudojami informatikos, vėliau informacinių technologijų vadovėliai.[8]

Reformuotos Lietuvos mokyklos informacinių technologijų bendrojoje programoje mokant algoritmų nesiūloma jokių konkrečių priemonių, tačiau dauguma vadovėlių remiasi minimaliomis Paskalio kalbos konstrukcijomis. Naudojami sveikieji ir realieji skaičiai, loginis tipas, priskyrimo ir sąlyginis sakiniai, ciklai.

BASIC programavimo kalbą Lietuvos moksleiviai galėjo mokytis iki 1995-1998 metų, kai pereita tik prie Paskalio kalbos. Kažkur apie 1995 m. Lietuvos mokyklose pradeda dėstyti Pascal kalba.

Nuo 1995 metų Lietuvoje buvo įvesta dar vieną programavimo kalba LogoWriter, lietuviška šios programos versija atsirado 1996 metais.

22 Žymiai tobulesnė Komenskio Logo (Comenius Logo), pritaikyta šiuolaikinėms OS, atsirado po kelių metų, ir nuo 1998 metų Lietuvos mokyklos pradeda naudoti Komenskio Logo.

Atsiradus naujai aplinkai, nuo 1998 metų Lietuvoje buvo pradedama dirbti su Turbo Pascal kompiliatoriumi (sistema). Turbo Pascal apima standartinį N. Virto Paskalį ir daugiau galimybių valdyti kompiuterį turinčią aplinką.

Nuo 2001 metų Lietuvos mokyklos perėjo prie Free Pascal programos, kuris veikia Windows ir Linux sistemose. Šios kalbos sintaksė nesiskiria nuo Turbo Pascal, programa yra laisvai platinama (atvirojo kodo).

Nuo 2006 metų Lietuvos mokyklas pasiekia Imagine Logo, ir tais pačiais metais kai kurios Lietuvos mokyklos jau integravo profesionalią programavimo kalbą C++.

Pagal programavimo kalbų atsiradimo ir populiarumo tendencijas Lietuvos mokyklose dėstoma viena kita populiaresnė programavimo kalba. Atsižvelgiant į mokytojo kompetencijas ir profesionalumą, bandoma mokinius sudominti papildomo ugdymo metu tokiomis programomis kaip: Delphi, Visual Basic, JAVA, PHP, Python.

JAV edukologas profesorius S. Papertas (1928) „kalčiausias“ dėl to, kad atsirado kompiuterinė sistema Logo, kurios veikėjas – vėžliukas. Pirmoji Logo buvo skirta darbui DOS terpėje.

S. Papertas programos dėka parodė, kad 7-8 metų vaikai gali sėkmingai ir noriai mokytis matematikos per Logo, net tie, kurie buvo laikomi "negabiais matematikai". Tai aprašė knygoje Mindstorms: Children, Computers, and Powerful Ideas (Minčių audros: Vaikai, kompiuteriai ir veiksmingos idėjos). S. Papertas 1997 m. yra buvęs Lietuvoje.

Logo – tai viena žymiausių programavimo kalbų tarp mokinių ir mokyklų. Ši kalba orientuota į kūrybą, leidžiančią vaikams realizuoti savo idėjas ir sumanymus.[6]

23 2.1. Programavimo kalbų atsiradimas informatikos egzamine.

Informatika – mokslas, nagrinėjantis informacijos apdorojimo procesus: jų teoriją, analizę, modeliavimą, projektavimą, realizavimą ir taikymus. Informatikos dalykas mokykloje nukreiptas mokinių algoritminiam, operaciniam, kompiuteriniam mąstymui ugdyti.[18]

Informacinės technologijos (IT) – priemonių ir būdų visuma informacijai apdoroti naudojant kompiuterius ar kitą šiuolaikinę techniką. IT dalykas mokykloje suteikia mokiniams e. įgūdžių, kryptingai derina minimalias teorines technologines žinias ir maksimalius praktinius gebėjimus[18]

Lietuvoje Pascal kalba pradėta praktiškai vartoti nuo 1977 metų, kai tuometinis Matematikos ir kibernetikos institutas įsigijo atitinkamą transliatorių kompiuteriui БЭСМ-6. Nuo 1979 metų Pascal kalba vartojama neakivaizdinėje Jaunųjų programuotojų mokykloje.[5]

Informatika į Lietuvos mokyklas buvo įvesta 1986 metais, kaip atskiras dalykas pavadinimu Informatika ir skaičiavimo technikos pagrindai.[10]

Buvo mokoma programuoti algoritmine kalba, taip pat Pascal pagrindai.

Jau pirmame informatikos egzamine buvo programavimo užduotys.

Bet jei turim omeny IT VBE ( Informacinių technologijų valstybinis brandos egzaminas), tai jis vykdomas nuo 2006 metų, ir tik nuo 2009 metų galima naudoti ne tik Pascal bet ir C++ kalbas. Šių kalbų pasirinkimas IT egzaminui kiekvienais metais keičiasi, vis daugiau mokinių pasirenka programavimo aplinką C++, ir pagal pasirinkimą beveik susilygino su Free Pascal aplinka (7 pav).

Iš visų IT VBE užduočių, su programavimu susijusių užduočių ir testų kiekis siekia 50%.

Nors IT VBE laikomas naudojant tik Free Pascal ir C++, griežtų nurodymų kokią programavimo kalbą dėstyti mokykloje nėra. Programavimo kalbas Lietuvos mokyklose pasirenka pats mokytojas pagal savo kompetencijas ir profesionalumą.

Pradedant nuo 2006 metų, kai buvo vykdomas IT VBE vis daugiau mokinių pasirenka laikyti šį egzaminą (3 lentelė).

24 Informacinių technologijų valstybinis brandos egzaminas vykdomas nuo 2006 metų, žemiau pateiktoje lentelėje (3 lentelė) pateikti duomenys apie egzamino populiarumą nuo 2006 iki 2014 metų, bei mokinių pasiekimus atitinkamais metais.

3 lentelė. Informacinių technologijų pasirinkimas nuo 2006 iki 2014 m. (pagal www.nec.lt)

Metai 2014 2013 2012 2011 2010 2009 2008 2007 2006 Leista laikyti 2992 2574 2078 2125 1989 757 869 910 1200 Neatvyko 246 248 254 197 44 37 35 36 Pašalinta 2 Nevertinta 1 Iš viso įskaitytų darbų 2328 1830 1871 1792 710 832 873 1164 Maksimali galina taškų 100 100 100 100 100 100 100 100 suma Maksimali pasiekta taškų 100 100 100 100 100 98 100 100 suma Taškų sumos vidurkis 43,90 41,26 45,97 43,24 60,47 43,39 54,77 51,92 Minimali egzamino 12 12 12 12 30 15 23 21 išlaikymo taškų sumos riba

Neišlaikiusiųjų kandidatų 17,57 7,27 2,31 10,00 10,00 11,50 11,20 10,60 dalis procentais

Žemiau pateiktoje diagramoje (7 pav.) matome programavimo kalbų pasirinkimas informacinių technologijų valstybiniame brandos egzamine. Pastebima programavimo kalbų tendencija ir perspektyvos.

Free Pascal ir C++ pasirinkimas 97,41% 100,00% 87,23% 90,00% 80,00% 70,00% 61,89% 60,00% 50,00% 38,11% 40,00% 30,00% 20,00% 12,77% 10,00% 2,59% 0,00% 2011 2012 2013 PAS % CPP %

7 pav. Programavimo kalbų pasirinkimas per IT VBE

25

2.2 Programavimo kalbų per IT VBE pasirinkimo analizė

Kaip matome iš aukščiau pateiktų iliustracijų (3 lentelė) mokinių susidomėjimas informacinėmis technologijomis vis auga, be to apie IT specialistų trūkumą kiekvieną dieną mums primena įvairūs informacijos šaltiniai. Tiesą sakant, ne kiekvienas mokinys pasirinkęs IT VBE, svajoja būti IT specialistu arba programuotoju. Ne maža dalis mokinių pasirenka šį egzaminą, nes galvoja, kad jis pakankamai lengvas ir su jo užduotimis lengvai susidoros. Bet net ir puikiai išmanant visą bendrąjį informacinių technologijų kursą maksimaliai galima surinkti tik 50% taškų, o jeigu įvertinti egzamino nervinę įtampą ir spragas žiniose, gaunam rezultatus, kurie nedžiugina net pačių mokinių. Tai labai silpnai išlaikytas egzaminas, tarkim iki 10 balų, arba neišlaikytas egzaminas. Kai kurie mokiniai į prieš pusmetį pasirinktą egzaminą paprasčiausiai neateina.

Likusi dalis mokinių, kurie pasirinko IT VBE ir svajoja tapti IT specialistais arba programuotojais, pagal Lietuvos Respublikos švietimo ir mokslo ministerijos (LR ŠMM) reikalavimus turi galimybę išreikšti savo programavimo žinias trim budais, pasirinkę programavimo aplinkas FreePascal 0.6.4a versija, CodeBlocks 10.05 versija arba DEV C++ 4.9.9.2 versija; Iš diagramos (7 pav.) gerai matosi koks procentas mokinių kokia programavimo kalba pasirenka egzamino metų, ir pastebim, kad vis daugiau mokinių pasirenka C++ programavimo kalbą, o pasirinkimas Free Pascal programavimo kalba su kiekvienais metais vis mažėja. Tad būtent šitas programavimo kalbas ir analizuosime Lietuvos mokyklose.

Šiam tikslui pasiekti buvo atliktas eksperimentas su 10 (II gimn.) klasės mokiniais pasirinkusiais programavimo modulį vienoje iš gimnazijų.

O visiems Lietuvos mokytojams ruošiantiems abiturientus, pasirinkau apklausos metodą, pasinaudojau www.apklausa.lt svetainės pagalbą.

Nuoroda su apklausos duomenimis buvo išsiųsta į visas Lietuvos mokyklas turinčias 11- 12 klases, arba III-IV gimnazines klases.

Pirmiausiai susipažinkime su atliktu eksperimentu:

26 2.3. Eksperimentinis tyrimas

Eksperimentiniam tyrimui parinktos dvi dešimtų klasių grupės.

• Su pirma grupe darbas vykdomas su Free Pascal (FPS):

• pradėta nuo algoritmų,

• Šiai dienai susipažino: sintaksė, sąlygos sakiniai, ciklai.

• Su antra grupe darbas vykdomas su C++ (Dev C++)

• pradėta nuo algoritmų,

• Šiai dienai susipažino: sintaksė, sąlygos sakiniai, ciklai.

Eksperimento rezultatus apžvelgsime lentelėse (4-8 lentelės), lentelių skaitinius rezultatus pateikiu diagramų pavidalų (pav. 8-12) , taip geriau pastebimi tyrimo rezultatų skirtumai ir panašumai.

27 4 lentelė. Mokinių pažymiai už programos sintaksę

Programos sintaksė Nr. C++ pogr. FPS pogr.

1 6 10

2 6 4

3 7 10

4 6 8

5 5 10

6 6 10

7 6 8

Vidurkis 6,0 8,6

Programos sintaksė

10 9 8 7 6 5 4 C++ pogr. 3 2 FPS pogr. 1 Vidur 1 2 3 4 5 6 7 kis C++ pogr. 6 6 7 6 5 6 6 6,0 FPS pogr. 10 4 10 8 10 10 8 8,6

8 pav. Pažymių skirtumas

28 5 lentelė. Mokinių pažymiai už sąlyginius sąkinius

Programos sąlygos sakiniai Nr. C++ pogr. FPS pogr.

1 6 4

2 7 4

3 7 8

4 4 8

5 5 7

6 6 7

7 7 10

Vidurkis 6,0 6,9

Programos sąlygos sakiniai

10 9 8 7 6 5 C++ pogr. 4 3 FPS pogr. 2 1 Vidur 1 2 3 4 5 6 7 kis C++ pogr. 6 7 7 4 5 6 7 6,0 FPS pogr. 4 4 8 8 7 7 10 6,9

9 pav. Pažymių skirtumas

29 6 lentelė. Mokinių pažymiai už ciklus

Pažymiai už ciklų naudojimą Nr. C++ pogr. FPS pogr.

1 7 6

2 10 4

3 8 7

4 5 7

5 5 6

6 10 5

7 8 7

Vidurkis 7,6 6,0

Programos ciklų naudojimas

10 9 8 7 6 5 C++ pogr. 4 3 2 FPS pogr. 1 Vidur 1 2 3 4 5 6 7 kis C++ pogr. 7 10 8 5 5 10 8 7,6 FPS pogr. 6 4 7 7 6 5 7 6,0

10 pav. Pažymių skirtumas iš ciklų naudojimo

30 7 lentelė. Mokinių pažymiai už praktinius įgudžius

Praktiniai įgūdžiai Nr. C++ pogr. FPS pogr.

1 6 6

2 6 4

3 7 7

4 5 7

5 5 6

6 7 5

7 7 7

Vidurkis 6,1 6,0

Programavimo praktiniai įgudžiai

10 9 8 7 6 5 C++ pogr. 4 3 2 FPS pogr. 1 Vidur 1 2 3 4 5 6 7 kis C++ pogr. 6 6 7 5 5 7 7 6,1 FPS pogr. 6 4 7 7 6 5 7 6,0

11 pav. Pažymių skirtumas už praktinius įgudžius

31 8 lentelė. Mokinių metiniai pažymiai

Metiniai pažymiai Nr. C++ pogr. FPS pogr.

1 6 7

2 9 4

3 7 8

4 5 7

5 4 7

6 7 7

7 7 8

Vidurkis 6,4 6,9

Metiniai pažymiai

10 9 8 7 6 5 4 C++ pogr. 3 2 FPS pogr. 1 Vidur 1 2 3 4 5 6 7 kis C++ pogr. 6 9 7 5 4 7 7 6,4 FPS pogr. 7 4 8 7 7 7 8 6,9

12 pav. Metinių pažymių skirtumas

32 2.4. Eksperimentinio tyrimo apibendrinimas

Apibendrinant eksperimentinį tyrimą buvo įvertinta tai, kad mokinių gabumai tiksliesiems mokslams yra pakankamai panašūs. Tai yra mokinių grupės pagal savo žinių lygį ir pažangumą yra ekvivalenčios. Taikant vienodus mokymo metodus nustatyta, kad pradedant mokinius mokinti su skirtingomis programavimo kalbomis, viskas priklauso nuo motyvacijos, savarankiškumo ir susidomėjimo programavimu.

Savarankiškų darbų rezultatai (4-8 lentelės) priklauso nuo individualaus pasiruošimo ir namų darbų atlikimo. Mokiniai, kurie sugebėjo dieną prieš pamoką pasižiūrėti į sąsiuvinį gaudavo geresnius pažymius. O tie, kurie sąsiuvinį pamiršta atsinešti į pamokas ir nežino kaip jis atrodo, gaudavo pakankamai prastus pažymius.

Nustatyta, kad mokinių programavimo pradmenų rezultatai (8-12 pav.) nepriklauso nuo pasirinktos programavimo kalbos. Nors matomas pažymių skirtumas už tam tikrus atskirus uždavinius, bet abiejų grupių praktiniai sugebėjimai ir metiniai pažymiai labai panašūs.

33 2.5. Apklausos duomenų analizė

Pagal apklausoje pateiktus duomenys (13-28 pav.), apie 33% apklaustųjų dėsto arba greičiausiu metu dėstys C++, likusieji 33% dėsto FPS, dar dalis dėsto Logo, Delphi, Visual Basic, Scratch, Lego Mindstrom Education. Dar prie apklausos klausimų buvo 2 atviri klausimai, kur reikėjo išreikšti nuomonę ir argumentuoti savo pasirinkimą. Atsakymų buvo labai įvairių, vieni nostalgiškai gailėjo Free Pascal programos, kad jis morališkai paseno ir nebeleidžiamos naujos versijos ir nepanaikinamos esančios klaidos. Kiti, kad C++ yra lengvesnė, universalesnė, lankstesnė, bet priklausomai nuo mokinių sugebėjimų pakankamai sudėtinga. Bendra nuomonė tokia, kad programavimo kalba tik priemonė tikslui pasiekti, svarbiausia - algoritmo sudarymas.

Atsižvelgdamas į pateiktus apklausos rezultatus nusprendžiau pasižvalgyti po Lietuvos aukštųjų mokyklų informatikos specialybių programų reikalavimus. Ir šiai dienai praktiškai jau visos aukštosios mokyklos atsisakė Pascal programavimo kalbos ir perėjo prie C++ arba jai giminingos kalbos.

Gauti rezultatai sudomino dar labiau ir nusprendžiau pasidomėti buvusių mokinių kaip gi jiems sekasi užsienyje, studijuojant su informacinėmis technologijomis susijusias studijas. Paprašiau, kad pasidomėtų savo bendrakursių kokias programavimo kalbas jie studijavo savo mokyklose. Įskaitant tai, kad studentai – bendrakursiai suvažiavo iš viso pasaulio, tai informacijos tikėjausi daug ir įdomios. Tačiau gauta informacija mane labai nustebino. Pasirodo dauguma studentų, apie 60%, studijuojančių informacinių technologijų programą aplamai nematė programavimo. Ir tik aukštosios mokyklos I kurse pirmą kartą susipažino su programavimo kalbų šeimyna. Pagrinde tai C šeimos kalbos, tokios kaip C++, C #, Python, Java. Supažindinimas pradedamas nuo nulio, viskas iš pradžių ir po vieną skyrių. Labai daug praktinių uždavinių, laboratorinių, kursinių. Algoritmavimo niekas neakcentuoja, nes suprantama, kad visa tai jau išaiškinta mokykloje.

Pagal visus pateiktus duomenis ir gautos informacijos analizę galima teigti, kad svarbiausia mokykloje būtų daugiau dėmesio skirti algoritmavimui, jo funkcionalumui, universalumui ir kitoms savybėms kuriomis turi pasižymėti algoritmas. O programavimo kalbos pasirinkimas, tai tik priemonė realizuoti užbrėžtą tikslą. Mokyklos lygmenyje tarp Free Pascal ir C++ programų struktūros, aprašymų, sintaksės, algoritmo realizavimo, ir programos lankstumo, skirtumai labai menkai pastebimi.

34 2.6. Apklausos duomenys: „Programavimo kalbų naudojimo Lietuvos mokyklose analizė

Apžvelgsime anketinės apklausos rezultatus, iš viso dalyvavo 128 mokytojai iš skirtingų Lietuvos mokyklų, dalyvių amžius nuo 26 iki 65 metų.

Kokią (-ias) programavimo aplinką (-as) naudojate savo ugdymo įstaigoje?

Pascal (FPS, TP, BP) 28% 6%

C++ (Dev C++, Codeblocs, Visual Studio) 33% 33% Logo (Komenskio Logo, Imagine Logo) Kita

13 pav. Programavimo kalbų naudojimas

Programavimo kalbų sintaksės patogumas

Sintaksė - FPS, TP, BP 6% 7% 7% Sintaksė - C++

50% Sintaksė - Komenskio 30% Logo Sintaksė - Imagine Logo

Sintaksė - Kita

14 pav. Programų sintaksės patogumas

35

Programavimo kalbų sąlygos sakinių patogumas

3%

7% Sąlygos sakiniai - FPS, 57% TP, BP Sąlygos sakiniai - C++

33% Sąlygos sakiniai - Komenskio Logo Sąlygos sakiniai - Kita

15 pav. Programų sąlygos sakinių patogumas

Programavimo kalbų ciklų naudojimo patogumas

3% 4% Ciklai - FPS, TP, BP 10% 53% Ciklai - C++

Ciklai - Komenskio Logo 30%

Ciklai - Imagine Logo

Ciklai - Kita

16 pav. Programų ciklų naudojimo patogumas

36

Programavimo kalbų masyvų naudojimo patogumas

10% 60% Masyvai - FPS, TP, BP

Masyvai - C++ 30%

Masyvai - Kita

17 pav. Programų masyvų naudojimo patogumas

Programavimo kalbų darbo su failais patogumas

10% Darbas su failais - FPS, 56% TP, BP

34% Darbas su failais - C++

Darbas su failais - Kita

18 pav. Programų masyvų naudojimo patogumas

37 Pagal Jūsų nuomonę ir kompetenciją, nurodykite stipriąsias ir silpnąsias programavimo kalbų savybes. 1 - labai silpnai, 10 - labai stipriai.

Pascal sintaksė - nežinau 20 Pascal sintaksė - 10 52 Pascal sintaksė - 9 60 Pascal sintaksė - 8 56 Pascal sintaksė - 7 28 Pascal sintaksė - 6 20 Pascal sintaksė - 5 8 Pascal sintaksė - 4 8 Pascal sintaksė - 3 4 Pascal sintaksė - 2 4 Pascal sintaksė - 1 4

0 10 20 30 40 50 60 70

19 pav. Pascal sintaksės vertė

C++ sintaksė - nežinau 44 C++ sintaksė - 10 56 C++ sintaksė - 9 40 C++ sintaksė - 8 48 C++ sintaksė - 7 28 C++ sintaksė - 6 20 C++ sintaksė - 5 24 C++ sintaksė - 4 4 C++ sintaksė - 3 0 C++ sintaksė - 2 0 C++ sintaksė - 1 0

0 10 20 30 40 50 60

20 pav. C++ sintaksės vertė

38 Pagal Jūsų nuomonę ir kompetenciją, nurodykite stipriąsias ir silpnąsias programavimo kalbų savybes. 1 - labai silpnai, 10 - labai stipriai.

Pascal sąlygos sakiniai - nežinau 20 Pascal sąlygos sakiniai - 10 60 Pascal sąlygos sakiniai - 9 60 Pascal sąlygos sakiniai - 8 48 Pascal sąlygos sakiniai - 7 40 Pascal sąlygos sakiniai - 6 12 Pascal sąlygos sakiniai - 5 12 Pascal sąlygos sakiniai - 4 4 Pascal sąlygos sakiniai - 3 8 Pascal sąlygos sakiniai - 2 0 Pascal sąlygos sakiniai - 1 0

0 10 20 30 40 50 60 70

21 pav. Pascal sąlygos sakinių vertė

C++ sąlygos sakiniai - nežinau 44

C++ sąlygos sakiniai - 10 64

C++ sąlygos sakiniai - 9 52

C++ sąlygos sakiniai - 8 56

C++ sąlygos sakiniai - 7 24

C++ sąlygos sakiniai - 6 12

C++ sąlygos sakiniai - 5 8

C++ sąlygos sakiniai - 4 4

C++ sąlygos sakiniai - 3 0

C++ sąlygos sakiniai - 2 0

C++ sąlygos sakiniai - 1 0

0 10 20 30 40 50 60 70

22 pav. C++ sąlygos sakinių vertė

39 Pagal Jūsų nuomonę ir kompetenciją, nurodykite stipriąsias ir silpnąsias programavimo kalbų savybes. 1 - labai silpnai, 10 - labai stipriai.

Pascal masyvai - nežinau 20 Pascal masyvai - 10 52 Pascal masyvai - 9 64 Pascal masyvai - 8 52 Pascal masyvai - 7 32 Pascal masyvai - 6 16 Pascal masyvai - 5 12 Pascal masyvai - 4 8 Pascal masyvai - 3 0 Pascal masyvai - 2 4 Pascal masyvai - 1 4

0 10 20 30 40 50 60 70

23 pav. Pascal masyvų vertė

C++ masyvai - nežinau 44 C++ masyvai - 10 60 C++ masyvai - 9 68 C++ masyvai - 8 48 C++ masyvai - 7 8 C++ masyvai - 6 20 C++ masyvai - 5 12 C++ masyvai - 4 0 C++ masyvai - 3 4 C++ masyvai - 2 0 C++ masyvai - 1 0

0 10 20 30 40 50 60 70 80

24 pav. C++ masyvų vertė

40 Pagal Jūsų nuomonę ir kompetenciją, nurodykite stipriąsias ir silpnąsias programavimo kalbų savybes. 1 - labai silpnai, 10 - labai stipriai.

Pascal darbas su failais - nežinau 20 Pascal darbas su failais - 10 60 Pascal darbas su failais - 9 64 Pascal darbas su failais - 8 44 Pascal darbas su failais - 7 20 Pascal darbas su failais - 6 12 Pascal darbas su failais - 5 16 Pascal darbas su failais - 4 12 Pascal darbas su failais - 3 8 Pascal darbas su failais - 2 4 Pascal darbas su failais - 1 4

0 10 20 30 40 50 60 70

25 pav. Pascal darbo su failais vertė

C++ darbas su failais - nežinau 44 C++ darbas su failais - 10 64 C++ darbas su failais - 9 64 C++ darbas su failais - 8 44 C++ darbas su failais - 7 16 C++ darbas su failais - 6 20 C++ darbas su failais - 5 8 C++ darbas su failais - 4 0 C++ darbas su failais - 3 4 C++ darbas su failais - 2 0 C++ darbas su failais - 1 0

0 10 20 30 40 50 60 70

26 pav. C++ darbo su failais vertė

41 Pagal Jūsų nuomonę ir kompetenciją, nurodykite stipriąsias ir silpnąsias programavimo kalbų savybes. 1 - labai silpnai, 10 - labai stipriai.

Pascal kitos galimybės - nežinau 48

Pascal kitos galimybės - 10 28

Pascal kitos galimybės - 9 56

Pascal kitos galimybės - 8 40

Pascal kitos galimybės - 7 24

Pascal kitos galimybės - 6 12

Pascal kitos galimybės - 5 24

Pascal kitos galimybės - 4 12

Pascal kitos galimybės - 3 16

Pascal kitos galimybės - 2 0

Pascal kitos galimybės - 1 4

0 10 20 30 40 50 60

27 pav. Pascal kitų galimybių vertė

C++ kitos galimybės - nežinau 64

C++ kitos galimybės - 10 68

C++ kitos galimybės - 9 60

C++ kitos galimybės - 8 40

C++ kitos galimybės - 7 8

C++ kitos galimybės - 6 12

C++ kitos galimybės - 5 8

C++ kitos galimybės - 4 4

C++ kitos galimybės - 3 0

C++ kitos galimybės - 2 0

C++ kitos galimybės - 1 0

0 10 20 30 40 50 60 70 80

28 pav. C++ kitų galimybių vertė

42 3. C++ IR FREE PASCAL TAIKYMO GALIMYBĖS

3.1. Free Pascal taikymo galimybės:

Free Pascal (FPS) - tai programavimo kalba, kuri praktiškai nenaudojama kurti profesionalioms programoms ir projektams, tačiau yra labai populiari tarp pradedančiųjų programuotojų. FPS yra viena paprasčiausių ir elementariausių programavimo kalbų, todėl mokyklose ir pirmuose universitetų kursuose besimokantieji naudoja būtent ją.[11][14]

FreePascal taikoma[12]:

 Mokymo tikslais  Dirba tik Windows OS  Delphi naudojamas įvairioms kompiuterinėms programoms kurti.

3.2. Pagrindinės FPS savybės ir funkcinės galimybės:

 Kintamieji privalo būti aprašomi procedūros ar funkcijos pradžioje, todėl niekada nepasimesi kur koks kintamasi galioja;  Begin-End blokai išryškina ciklų ar sąlyginių sakinių pradžias ir pabaigas;  Prieš paleidžiant programa turi būti sukompiliuota, kas sumažina programavimo klaidų skaičių;  Turi grafinę naudotojo sąsają.  Yra internacionalizuota.  Yra paprasta. Turi visas informatikos kurso mokymui reikalingas funkcines galimybes ir nėra perkrauta papildomomis, nereikalingomis galimybėmis. Taip pat siekiant paprastumo, dalis galimybių, skirtų labiau patyrusiems naudotojams, yra sugrupuotos į optimalius, dažniausiai naudojamų galimybių rinkinius, kuriuos leidžiama pasirinkti naudojantis meniu komandomis, tuo pačiu minėtas galimybes pastumiant giliau į sąsajos vidų, kad jos netrukdytų mažiau patyrusiems naudotojams.  Turi programavimo terpės žinyną.  Turi integruotą derintuvę su pažingsninio derinimo, reikškinių stebėjimo ir jų reikšmių pasikeitimo, priskyrimo, skaitymo stebėjimo galimybėmis.  Turi daugiadokumentę sąsają.  Atpažįsta Paskalio, C, Asemblerio, Java ir HTML sintaksės konstrukcijas ir gali jas paryškinti.

43  Leidžiama naudoti tarpus ir nacionalinius rašmenis programą sudarančių rinkmenų varduose.

3.3. C++ taikymo galimybės:

Programavimo kalba C++ yra viena populiariausių iš visų modernių programavimo kalbų. Tuo pačiu jį nėra iš pačių paprasčiausių. Norint ją perprasti, reikia įdėti labai daug pastangų. Kita vertus jį yra labai funkcionali ir universali programavimo kalba. Turint atitinkamą kiekį žinių galima kurti tiek konsolines programas, tiek grafinę sąsają turinčias programas taip pat net 2D ar 3D žaidimus.[14]

C++ taikoma[12][16]:

 Mokymo tikslams;  Dirba su Windows ir Linux OS;  Naudojama interneto tikslams;  Naudojama išoriniams įrenginiams (su elektronika);  C++ Builder naudojamas įvairioms kompiuterinėms programoms kurti.

3.4. Pagrindinės C++ savybės ir funkcinės galimybės[16]:

 Yra tik viena programos struktūrizavimo priemonė – funkcija;  Identifikatoriuose didžiosios ir mažosios raidės nesutapatinamos;  Programos objektų (struktūrų, kintamųjų, funkcijų) aprašai gali būti bet kurioje programos vietoje – svarbu tik tai, kad objektas būtų apibrėžtas prieš jį naudojant  C++ kalboje nedidelis standartizuotų operatorių skaičius, todėl naudojamos įvairios bibliotekų sistemos;  Kreipiantis įkintamuosius ir struktūras, plačiai vartojamos rodyklės;  Komentarai – paaiškinimams skirtas simbolių rinkinys, kurio ribos žymimos simbolių poromis /*ir */; parašius eilutėje du simbolius be tarpo //toliau esantis tekstas iki eilutės pabaigos suprantamas kaip komentarai;  Main()– pagrindinės programos funkcijos antraštė;  Sudėtinis sakinys – tarp skliaustų {} įrašytas sakinių rinkinys, su kuriais programoje elgiamasi taip kaip su vienu sakiniu;  Vartotojo funkcijos gali būti aprašomos ne tik programos gale, bet ir globalinių aprašų dalyje.

44 3.5. C++ ir FPS programų kodų palyginimai

9 lentelė. C++ ir Free Pascal programų kodų palyginimai

C++ Free Pascal

Program labas; #include using namespace std; int main ( ) begin { writeln ( ' Labas ' ); cout << " Labas " <> Read system(‘‘PAUSE“); return 0; Readln; cin.get(); return EXIT_SUCCESS; = := = = = != < > && and || or ! not / div

45 % mod SWITCH CASE Int Integer Float Real Bool Boolean i++ i := i + 1; s += k s := s + k; s -=k s := s – k; if (sąlyga) if veiksmas1; then veiksmas1 else else veiksmas2; veiksmas2; WHILE (sąlyga) WHILE DO { begin veiksmas (ai) veiksmas (ai) } end do { Repeat veiksmai; veiksmai; } Until ; while (sąlygos tikrinimas); FOR (i=1; i<=10; i++) FOR i := 1 to 10 do veiksmas; veiksmas; switch (kintamasis) Case of { case 1: {veiksmas 1} : ; break; : ; case 2: {veiksmas 2} : ; break; ...... Else : ; default: {numatytasis veiksmas}

Int mas[5]; mas :array [1..5] of integer;

{mas0, mas1, mas2, mas3, mas4} {mas1, mas2, mas3, mas4, mas5} for (int i = 0; i < 5; i++) for i := 0 to 4 do cout << i << endl; writeln ( i );

46 4. IŠVADOS

1) Apžvelgus programavimo kalbų mokymo raidą Lietuvoje ir jų filosofiją pastebėta, kad programavimo kalbos atsiranda ir palengva išnyksta jas pakeičiant naujesnėmis, tobulesnėmis ir patogesnėmis kalbomis. Kiekviena jų atspindi sukūrimo laikotarpių naudotas technologijas, programavimo metodus, idėjas ir paskirtį. Vienos programavimo kalbos skirtos profesionaliam naudojimui, kitos skirtos tik mokymui. Nors šiuo metu pasaulyje sukuriama daug naujesnių bei tobulesnių programavimo kalbų, tačiau Pascal programavimo kalba išlaiko savo vertę – ji labai tinka pradedantiesiems mokytis programavimo. Daug šiuolaikinių modernių kalbų taip pat remiasi Pascal programavimo logika. 2) Palyginus C++ ir Free Pascal programavimo galimybes mokyklos kurso lygmenyje galime teigti, kad: a) Free Pascal – programavimo kalba, kuri buvo planuotai sukurta programavimo mokymui, praktiškai nenaudojama kurti profesionalioms programoms ir projektams, tačiau yra labai populiari tarp pradedančiųjų programuotojų. Free Pascal yra viena paprasčiausių ir elementariausių programavimo kalbų, todėl mokyklose ir pirmuose universitetų ar kolegijų kursuose besimokantieji naudoja būtent ją.

Free Pascal išskirtinumas:

• paprasta, griežta ir nesunkiai išmokstama kalbos sintaksė; • tinkama pratinimuisi naudotis bibliotekomis; • tinkama pratinimuisi dokumentuoti programas; • tinkama pratinimuisi išmąstyti algoritmą; • tinkama pratinimuisi kurti programą priartėjimų metodu; • programos eilučių vykdymas pažingsniui; • intuityviai suprantama programos sintaksė; • algoritminė, struktūrinė kalba; • lengva pereiti prie bet kurios kitos profesionalios programavimo kalbos. b) Programavimo kalba C++ yra viena populiariausių iš visų modernių programavimo kalbų, tuo pačiu ji nėra iš pačių paprasčiausių. Norint ją suprasti, reikia įdėti labai daug pastangų. Kita vertus ji yra labai funkcionali, lanksti, perspektyvi ir universali programavimo kalba (pagal sintaksinę struktūrą), todėl

47 šią kalbą pradedama mokyti jau turint programavimo kitomis kalbomis įgūdžių.[16]

C++ išskirtinumas:

• kruopščiai parinkti kalbos poaibį su paprasta, griežta ir nesunkiai išmokstama kalbos sintakse yra sudėtinga; • sudėtinga parinkti kalbos poaibio mokymo strategiją ir taktiką; • svarbu atrinkti būtiniausias bibliotekas, pratinti jomis naudotis; • svarbu pratinti dokumentuoti programas; • svarbu pratinti išmąstyti algoritmą; • svarbu pratinti kurti programą priartėjimų metodu; • svarbu intensyviai mokyti skaityti programas. 3) Atlikus programavimo kalbų naudojimo anketinį tyrimą, kuriame buvo apklausti 128 mokytojai, ir išanalizavus pateiktus duomenis galima teigti, kad svarbiausia mokykloje daugiau dėmesio skirti algoritmavimui, jo funkcionalumui, universalumui ir kitoms savybėms. kuriomis turi pasižymėti algoritmas, o programavimo kalbos pasirinkimas, tai tik priemonė realizuoti užbrėžtą tikslą. Mokyklos lygmenyje tarp Free Pascal ir C++ programavimo kalbų struktūros, aprašymų, sintaksės, algoritmo realizavimo ir programos lankstumo, skirtumai labai menkai pastebimi (9 lentelė). 4) Atlikus praktinį skirtingų programavimo kalbų mokymo eksperimentą su mokiniais nustatyta, kad taikant vienodus mokymo metodus ir pradedant mokinius mokinti su skirtingomis programavimo kalbomis, viskas priklauso nuo motyvacijos, savarankiškumo ir susidomėjimo programavimu, o ne nuo pasirinktos programavimo kalbos.

Bendros darbo išvados:

 Kad ir kokią programavimo kalbą pasirinksim, turime atsižvelgti į mokytojo kompetenciją ir profesionalumą. Tik remiantis kompetencija galima rasti sėkmingą kelią.[13]  Geriausiai tiks ta programavimo kalba, kurią geriausiai įvaldęs mokytojas.  Mokykloje ar universitete dar nei vienas neišmoko programuoti taip, kad daugiau niekada nereiktų mokintis papildomai. Mokymo įstaigoje galima tik išdėstyti pradmenis ir sudominti programavimu arba ne.[9]

48 5. SANTRAUKA

Šis darbas yra apie programavimo kalbų populiarumą Lietuvos mokyklose, jų atsiradimą, naudojimą, jų vertę ir perspektyvas. Darbe palygintos mokyklose naudojamos dvi programavimo kalbos C++ ir Free Pascal, apžvelgtas jų tinkamumas mokymui.

Darbe apžvelgta programavimo kalbų raida ir filosofija, jų atsiradimas ir patekimas į Lietuvos mokyklas. Taip pat apžvelgtas programavimo kalbų naudojimas mokyklos kurse ir valstybiniame informacinių technologijų egzamine. Išanalizuotas programavimo kalbų naudojimas egzamino metų ir jų pasirinkimas kiekvienais metais. Aiškiai matomos perspektyvos.

Atliktas eksperimentinis tyrimas su skirtingomis moksleivių grupėmis, kurio metų buvo aiškinamasi kuri programavimo kalba yra suprantamesnė mokiniams. Eksperimento metų nustatyta, kad viskas priklauso nuo mokinių susidomėjimo, motyvacijos ir užbrėžtų tikslų, nes apklausų rezultatai labai panašūs.

Atlikta apklausa – tyrimas dėl programavimo kalbų naudojimo bei populiarumo Lietuvos mokyklose. Įvertinus mokytojų nuomones ir rekomendacijas, nustatyta, kad vis daugiau mokytojų pereina prie profesionalios programavimo kalbos C++, kad mokiniams, pasirinkusiems informatiką, būtų lengviau studijuoti aukštosiose mokyklose. Bet sentimentaliai dauguma mokytojų norėtų likti su „geruoju“ Free Pascal, jei tik jis būtų nuolat tobulinamas ir prižiūrimas.

Darbe atlikta C++ ir Free Pascal programavimo kalbų savybių, bei funkcinių taikymo galimybių analizė, programų kodų ir sintaksės analizė. Nustatyta, kad C++ programavimo kalba tinka profesionaliam naudojimui, turi sudėtingesnę struktūrą, daugiau funkcinių galimybių ir dėl to yra žymiai lankstesnė naudojimui. Free Pascal kalba tikslingai buvo kuriama mokymui, dėl to jos sintaksė yra suprantamesnė, komandiniai žodžiai yra intuityviai aiškūs, struktūra yra aiški ir suprantama.

Darbo išvados yra tokios, kad Free Pascal yra labiau algoritminė kalba, ja parašyta programinį kodą galima vadinti ir algoritmu, ir programa, o pačią kalbą – ir algoritmavimo, ir programavimo. Taigi išmokus rašyti programas Free Pascal kalba, nesunku bus įvaldyti bet kurią kitą programavimo kalbą.

49 6. SUMMARY

This master thesis presents programming language trends in Lithuanian schools, their evolution, use, value and prospects. The thesis compares two programming languages C++ and Free Pascal used in schools and revives the adequacy of these programming languages in education process.

The thesis analyzes the evolution and the philosophy of programming languages, their appearance and access in Lithuanian schools. It also presents programming languages used during course at schools and in state’s information technology examination. Also it shows programing languages used during the exam and choice of language each year were analyzed. Perspectives are clearly visible.

An experimental research was conducted with different groups of students, and results clarified that the programming language is understandable to students. During the experiment it was clarified that all depends on the students' interest, motivation and goals, because the results of the research were very similar for bath programing languages.

Survey was conducted on the use of programming languages and their popularity in Lithuanian schools. After assessing opinions and recommendations, it was found that more and more teachers switch to more professional programming language C++, which consequently makes it easier for students in their further studies. But sentimentally most teachers would prefer to stay with the good and time proven Free Pascal, as long as it would be constantly improved and maintained.

The work carried out an analysis of the characteristics and options that are available in C++ and Free Pascal. It also provides program code and syntax analysis. It was found that the C++ programming language is more suitable for the professional use, has a more complex structure, is more functional, and it is much more flexible to use. Free Pascal language has been developed specifically for training that is why its syntax is more understandable, commands are intuitively clear, the structure is strict and understandable.

In conclusion, it is clear that the Free Pascal is more algorithmic programming language which is suitable for humans to write and read algorithms. Therefore, program written in Pascal can be called both algorithm and program, and the programming language itself can be called as an algorithmization and programming language. Thus, after learning how to write algorithms in Pascal language, it will be easy to master any other programming language.

50 7. LITERATŪROS SĄRAŠAS

1. „Programavimo kalbos ir jų paskirtis“, [žiūrėta 2013 kovo 15 d.] prieiga per žiniatinklį: http://akstinaviciute.wordpress.com/2010/04/27/programavimo-kalbos-ir-ju-paskirtis-3/ 2. „Programavimo kalba“, [žiūrėta 2013 kovo 25 d.] prieiga per žiniatinklį: http://lt.wikipedia.org/wiki/Programavimo_kalba 3. Jonas Blonskis, Renata Burbaitė „Treti metai IT VBE su C++“, [žiūrėta 2014 balandžio 21 d.] prieiga per žiniatinklį: 83.171.4.7:81/linma/images/KoDi2013/71_siauliai_liks_2013_jb.pdf 4. „Programavimo kalbos istorija“, [žiūrėta 2013 birželio 20 d.] prieiga per žiniatinklį: http://mokslai.lt/referatai/referatas/21394.html 5. „Programavimo kalbų raida“, “, [žiūrėta 2013 birželio 25 d.] prieiga per žiniatinklį: http://studijos.info/mokslo-darbai/ziureti/programavimo-kalbos-15532.html?page=6 6. „Logo programavimas mokykloje“, [žiūrėta 2014 spalio 15 d.] prieiga per žiniatinklį: http://vddb.library.lt/fedora/get/LT-eLABa-0001:E.02~2013~D_20130802_133534- 93369/DS.005.0.01.ETD 7. V. Dagienė, G. Grigas, „Programavimo kalbų teoriniai pagrindai“, 2007 m., [žiūrėta 2014 spalio 20 d.] prieiga per žiniatinklį: http://ims.mii.lt/valentina/publ/Progrkalb.pdf 8. „Programavimo kalbų raida“ [žiūrėta 2014 gegužės 1 d.] prieiga per žiniatinklį: http://rogam.blog.ir/?page=2 9. „Bevertės programavimo kalbos“, [žiūrėta 2013 birželio 18 d.] prieiga per žiniatinklį: http://www.arvydas.net/bevertes-programavimo-kalbos 10. „Jaunųjų programuotojų neakivaizdinė mokykla“, [žiūrėta 2014 sausio 12 d.] prieiga per žiniatinklį: http://aldona.mii.lt/pms/jpm/#Truputis%20istorijos 11. „Programavimas FPS“, [žiūrėta 2014 kovo 20 d.] prieiga per žiniatinklį: http://www.coderland.lt/programavimas-fps 12. „Programavimo kalbų palyginimas pagal populiarumą“, [žiūrėta 2014 kovo 20 d.] prieiga per žiniatinklį: http://www.mokytojas1.puslapiai.lt/2pamoka/programavimas_1_2/programavimo_palyginimas.pdf 13. Albertas Dinda, „Programavimo kalbos mokykloje“, 2009 m. [žiūrėta 2013 birželio 18 d.] prieiga per žiniatinklį: http://ims.mii.lt/ims/Druskininkai_2009/dinda.pdf 14. „Plankalkül“, [žiūrėta 2014 balandis 3 d.] prieiga per žiniatinklį: http://en.wikipedia.org/wiki/Plankalk%C3%BCl 15. „Programavimo mokymasis: lyginamoji kalbos ir aplinkos analizė“, V. Dagienė, 2010 m. [žiūrėta 2014 vasaris 11 d.] prieiga per žiniatinklį:

51 http://www.vu.lt/leidyba/dokumentai/zurnalai/INFORMACIJOS%20MOKSLAI/Informacijos %20mokslai%202010%2054/44-62.pdf 16. J. Blonskis, „C++ praktikumas“, 2001 m., [žiūrėta 2014 balandžio 10 d.] prieiga per žiniatinklį: http://ututi.com/content/get_content/12732 17. J. Blonskis, R. Burbaitė, „ŠIUOLAIKIŠKAS ŽVILGSNIS Į PROGRAMAVIMO PAGRINDUS“, [žiūrėta 2014 balandžio 10 d.] prieiga per žiniatinklį: www.zelva.lm.lt/files/download/522 18. „Informatikos, informacinių technologijų ugdymo kaitos 2014 – 2020 metų gairės“, [žiūrėta 2014 balandžio 10 d.] prieiga per žiniatinklį: http://www.upc.smm.lt/ugdymas/dokumentai/svarstomi/it/Informatikos_ir_IT_ugdymo_nuo_2 015_m._gaires_2012-10-04.pdf

52