31.07.2015 Views

Programavimo kalbos mokykloje

Programavimo kalbos mokykloje

Programavimo kalbos mokykloje

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Programavimo</strong> <strong>kalbos</strong><strong>mokykloje</strong>Albertas Dinda2009


Logo šeima• Logo atsirado maždaug 1967 m.• Logo Writer (DOS, 1995-1997 m.)• Komenskio Logo (Win, 1998 m.)• Imagine Logo (Win, 2006 m.)• Elica (Win, 2007m.)• Projektas Dalest• Scratsh• Dabar yra apie 200 šios <strong>kalbos</strong> dialektų• 100% efektyvumo kalba2009-03-28 Albertas Dinda 2


Komenskio Logo• Pamokoshttp://aldona.mii.lt/pms/Logo/tekstai/tpamokos.html• Nupirkta visoms Lietuvos mokykloms, laisvai platinama2009-03-28 Albertas Dinda 3


Imagine Logo (Slovakija)• Lokalizuota, galima įsigyti, jau buvoplatinama Lietuvoje• Multimedia (interaktyvios pateiktys)• Darbas su garsais (muzikinis redaktorius)• Kompiliuoja .exe bylas• Objektinio programavimo lygis• Svetainė http://www.logo.lt/imagine.htm2009-03-28 Albertas Dinda 4


Elica (Bulgarija)• 3D Logo sistema• Objektinis lygis• Virtuali realybė• Nedidelė apimtis (5MB)• Tinklapishttp://www.elica.net/site/about/about.html• Lietuviška sąsaja (lengvai keičiama)• Naudojama JAV, Japonijoje, Europoje ...• Laisvai platinamas• Virš 600 pavyzdžių biblioteka.2009-03-28 Albertas Dinda 5


Aplinka ir programos pavyzdys „Fontanas“2009-03-28 Albertas Dinda 6


Dalest projektas (Bulgarija)Developing and Active Learning Environment for STereometry• 3D geometrijos objektai• Sukiniai, pjūviai• Išklotinės• Trimatis konstravimas...Dokumentacija:http://www.elica.net/site/papers/papers.htmlhttp://www.elica.net/site/museum/Dalest/dalest.html2009-03-28 Albertas Dinda 7


Sukiniai„Butelių dizainas“„Matematiniaisukiniai“„Ţiedimo ratas“2009-03-28 Albertas Dinda 8


Fantazijos iš molio2009-03-28 Albertas Dinda 9


Pjaustyklė“Pjaustymas”2009-03-28 Albertas Dinda 10


Išklotinės„Kubelio išklotinės“„Ţirklutės“2009-03-28 Albertas Dinda 11


Origamiai„Origamiai“2009-03-28 Albertas Dinda 12


Statybininkas„Kubelizmas“„Konstruktorius“„Šešėliai“2009-03-28 Albertas Dinda 13


Fantazijos iš kubelių2009-03-28 Albertas Dinda 14


TU ir ITPirmuosius dvejus metus mokome kalbėti irvaikščioti, o kitus penkioliką – tylėti ir ramiaisėdėti!Tai kaip jie gali išmokti naudotis IT?2009-03-28 Albertas Dinda 15


Alice• Atviro kodo programa [nuoroda]• Skirta mokyti trimetės grafikos programavimopagrindų• Nereikia įdiegti į kompiuterį• Kalba šiek tiek panaši į Java, C++ ir C#• 3D judanti grafikaDaugiau kaip 20 scenųDaug personažų• Interaktyvios programos• Yra pamokėlės pačioje Alice sistemoje• Gana lengvai programuojama su paruoštaisobjektais (personažais)2009-03-28 Albertas Dinda 16


Alice2009-03-28 Albertas Dinda 17


Programa primena struktūrogramą2009-03-28 Albertas Dinda 19


Scratsh• Labai paprasta ir nepaprastai draugiška sistema• Programa rašoma LEGO principu (struktūrogramų redaktorius)• Lengvai suprantama• Patogesnė negu Logo ir Komenskio Logo• Kalba labai panaši į Logo• Komandos paslėptos (jų nereikia rašyti ranka)• Vaikas sprendžia konstravimo, bet ne gramatinių klaidųproblemas• Visiškai nemokama, laisvai platinama• Jau tinka net 10-12 metų vaikams• Lituanizuota, nors interneto svetainėje nėra lietuviškosmedžiagos• Darbus galima talpinti internete [nuoroda]2009-03-28 Albertas Dinda 20


Scratsh2009-03-28 Albertas Dinda 21


Scratsh2009-03-28 Albertas Dinda 22


Scratsh komandų grupės• Judėjimas• Išvaizda• Garsas• Pieštukas• Veikimo logika• Aplinka• Matematika• Kintamieji2009-03-28 Albertas Dinda 23


Judėjimas, Išvaizda, Garsas, Pieštukas2009-03-28 Albertas Dinda 24


Veikimo logika, Aplinka, Matematika, Kintamieji2009-03-28 Albertas Dinda 25


Squeak• Remiasi Smalltalk kalba, kuri sukurta prieš 35 metuspanaudojant Simula, Sketchpad ir Lisp idėjas• Galima kurti interaktyvias programas• <strong>Programavimo</strong> kalba paprasta, bet programuoti sudėtinga• Nemokama• Nereikia diegti (atsisiuntei ir dirbi)• Miniatiūrinė programavimo sistema• Muzika ir garsai realiame laike• Veikia Windows, CE/PocketPC, MacOS, Linux/Unix, OS/2 Warp,Acorn RiscOS sistemose• Sukūrė Rob Pike & Luca Cardelli 1985m.2009-03-28 Albertas Dinda 26


Squeak nuorodos• SqueakLand - mokiniams• Squeak Smalltalk – informacija• http://www.squeakland.org/tutorials/demos/ -Interaktyvūs pavyzdžiai2009-03-28 Albertas Dinda 27


SqueakLand2009-03-28 Albertas Dinda 28


Squeak2009-03-28 Albertas Dinda 29


Squeak neįprasta darbo aplinka2009-03-28 Albertas Dinda 30


Free Pascal• fpc-2.2.2.x86_64-win64.exe (2008-08-03)• Tradicinė „Turbo“ aplinka• Ar dar yra klaidų kompiliatoriuje?2009-03-28 Albertas Dinda 32


Component Pascal• Kūrėjas „Oberon Microsystems AG“• Programų saugumas• Nereikia didelių išteklių• Mažai užimanti sistema• Atsisakyta GOTO• Griežta kontrolė• Viskas, kas įmanoma iškelta į bibliotekas• Kitoks požiūris į įvedimą-išvedimą2009-03-28 Albertas Dinda 33


Component Pascal• Minimali, paprasta ir greitai išmokstama sintaksė• Atsisakyta retai naudojamų tipų• Supaprastinta masyvo samprata• Nėra vykdymo žingsniais, tačiau yra kitosprogramos veikimo teisingumo tikrinimo priemonės(pvz. ASSERT)• Plačiau http://aldona.mii.lt/pms/lok/bb/BB.htm• Sintaksė ir skirtumai2009-03-28 Albertas Dinda 34


Paprasčiausia programaMODULE AsEsu;IMPORT StdLog;PROCEDURE Daryk*;VARa, b, c : INTEGER;BEGINStdLog.String('Aš esu Oberono sūnus!');StdLog.Ln;END Daryk;END AsEsu.AsEsu.Daryk2009-03-28 Albertas Dinda 35


BlackBox aplinka2009-03-28 Albertas Dinda 36


CPIde terpėhttp://www.cfbsoftware.com/cpide/cpide.aspx• Patogi tradicinė aplinka• Paprasta naudoti• Laisvai platinama• Kompiliuoja .exe ir .dllbylas2009-03-28 Albertas Dinda 37


Gardens Point Component Pascal GPCPkompiliatorius• Kompiliatorius CPIde terpei• Galima kompiliuoti tiesiai interneto svetainėje http://plas.fit.qut.edu.au/gpcp/gpcp_online.aspx• Terpei ir vykdymui reikaligi Microsoft .NET Framework version 2.0 RedistributablePackage Microsoft .NET Framework Version 2.0 Software DevelopmentKit (SDK) GPCP kompiliatoriushttp://plas.fit.qut.edu.au/gpcp/Downloads.aspx2009-03-28 Albertas Dinda 38


POW! – Programmers Open Workbench• Oberon-2• Java• C/C++http://www.fim.uni-linz.ac.at/Research/POW/2009-03-28 Albertas Dinda 39


Delphi• Komercinė programa• Objektinio programavimokalba• Vizualios kūrimo priemonės• Greitas kompiliavimas• Jau pritaikyta .NET platformai• Galima greitai ir patikimaiprogramuoti Windowsaplinkoje2009-03-28 Albertas Dinda 40


Lazarus• Laisvai platinama• Sąsaja labai panaši į Delphi• Objektinio programavimokalba• Vizualios kūrimo priemonės• Galima greitai ir patikimaiprogramuoti Windowsaplinkoje• Yra klaidų, būdingų FreePascal• Kompiliuojamas kodas yranepaprastai didelės apimties,atjungus kontrolę – sumažėja• Nėra pilnai suderinamas suDelphi (Delphi => Lazarus)2009-03-28 Albertas Dinda 41


OpenDelphi.org• Turėtų būti laisvai platinama• Turėtų būti pilnai kontroliuojama Borlando kompanijoshttp://opendelphi.org/2009-03-28 Albertas Dinda 42


C <strong>kalbos</strong> šeima• Dev C++• C++ Builder (1997 m.)• Visual C++ Express Edition2009-03-28 Albertas Dinda 43


DEV-C++ (Bloodshed Software )• Galima kurti:Windows programasKonsolines programasStatines bibliotekasDLL bibliotekas• Nedidelė ir patogi mokytis programuoti• Michael Main sukūrė grafikos bibliotekągraphics.h; libbgi.a2009-03-28 Albertas Dinda 44


2009-03-28 Albertas Dinda 45


C++ Builder (Borland Softwarecorporation)• Komercinė• Greito projektavimo sistema• Vizualus projektavimas• Terpė analogiška Delphi• Galima naudoti daugelį Delphi komponenčių2009-03-28 Albertas Dinda 46


Visual C++ Express Edition (Microsoft)2009-03-28 Albertas Dinda 47


Visual C++ Express Edition• Vizualus programavimas• Nemokama• Populiari studentų tarpe• Apkarpyta „Microsoft Visual Studio“• Objektinio programavimo lygis• 2D ir 3D grafika• Tinklapis:http://www.microsoft.com/express/vc/http://www.microsoft.com/express/download/2009-03-28 Albertas Dinda 48


Visual Studio Express Edition sudėtinėsdalys• Visual Basic Exspress Edition• Visual C# Exspress Edition• Visual C++ Exspress Edition• Visual J# Exspress Edition• Visual Web developer Exspress Edition• SQL Server Exspress Edition2009-03-28 Albertas Dinda 49


Išvados• <strong>Programavimo</strong> kalbų pasirinkimas didelis• <strong>Programavimo</strong> tikslų pasirinkimas:<strong>Programavimo</strong> pradmenų mokymasRuošimasis programavimo olimpiadomsTaikomųjų programų kūrimas vizualausprogramavimo sistemomisProcesų modeliavimas (panaudojant ir grafinespriemones)2009-03-28 Albertas Dinda 50


<strong>Programavimo</strong> pradmenų mokymas• Komenskio Logo• Imagine Logo• Elica• Scratch• Free Pascal• DEV-C++• BlackBox• CPIde• Oberon2009-03-28 Albertas Dinda 51


Kaip parinkti programavimo kalbą?• Ko mes tikimės iš programavimo <strong>kalbos</strong>?• Kiek pastangų reikės, kad mokinys suprastų, jog jauprogramuoja?• Ar po to jam kils noras pasidžiaugti su kitais savo pasiekimais?• Ar programavimo kalba gerai struktūrizuota ir neturi nereikalingobalasto?• Kiek išmoktos konstrukcijos bus funkcionalios?• Kiek pastangų turės įdėti mokytojas, mokydamasis naujosprogramavimo <strong>kalbos</strong>?• Ar mes norime „industrinės“ programavimo <strong>kalbos</strong>, ar išmokintiprogramavimo pagrindų?• Kiek yra literatūros apie pasirinktą programavimo kalbą?• Išmokti programuoti yra sunku2009-03-28 Albertas Dinda 52


Ruošimasis programavimo olimpiadoms• DEV-C++• Free Pascal2009-03-28 Albertas Dinda 53


Taikomųjų programų kūrimas vizualausprogramavimo sistemomis• Lazarus• Visual C++ Express Edition• Delphi• C++ Builder• Ultimate++2009-03-28 Albertas Dinda 54


Procesų modeliavimas• Elica• Imagine Logo• C++ Builder + OpenGL• Lazarus + OpenGL• Delphi + OpenGL• Visual C++ Express Edition2009-03-28 Albertas Dinda 55


<strong>Programavimo</strong> pradmenų mokymui, kai norimapereiti prie industrinės <strong>kalbos</strong>• Free Pascal/ Oberon/ Komp. PaskalisPaprasta, griežta ir nesunkiai išmokstama <strong>kalbos</strong>sintaksėPratinimas naudotis bibliotekomisPratinimas dokumentuoti programasPratinimas išmąstyti algoritmąPratinimas kurti programą priartėjimų metodu2009-03-28 Albertas Dinda 56


<strong>Programavimo</strong> pradmenų mokymui, kai norimapereiti prie industrinės <strong>kalbos</strong>• C/C++ šeimos <strong>kalbos</strong>Kruopščiai parinkti <strong>kalbos</strong> poaibį su paprasta, griežta irnesunkiai išmokstama <strong>kalbos</strong> sintakse (kol kas to darniekam nepavyko padaryti)Parinkti <strong>kalbos</strong> poaibio mokymo strategiją ir taktikąAtrinkti būtiniausias bibliotekas, pratinti jomis naudotisPratinti dokumentuoti programasPratinti išmąstyti algoritmąPratinti kurti programą priartėjimų metoduIntensyviai mokyti skaityti programas2009-03-28 Albertas Dinda 57


D programavimo kalba• http://www.digitalmars.com/d/2.0/index.html• C++, Python, Ruby kalbų geriausios savybės• Ar neatsitiks kaip su OS Oberon?2009-03-28 Albertas Dinda 58


Daugiau informacijos• http://popmokslas.projektas.lt/failai/lpm/html/lt/index.html• http://www.akl.lt/programos• http://www.ultimatepp.org/www$uppweb$overview$en-us.html2009-03-28 Albertas Dinda 59


PabaigaKad ir kokią egzotišką programavimo kalbą(pvz. EIFFEL) pasirinktumėm, turimeatsižvelgti į mokytojo kompetenciją. Tikremiantis jo kompetencija galima rastisėkmingą kelią2009-03-28 Albertas Dinda 60


Ar ši kalba tinka pradžiamoksliui?indexingdescription: “Programa Labas Paryžiau!”author: “Albertas Dinda”classHELLOcreationmakefeaturemake is-- paprastas spausdinimasdoio.put_string ("Salut, Paris!")io.put_new_lineendend -- class HELLO2009-03-28 Albertas Dinda 61


Ar ši kalba tinka pradžiamoksliui?class HELLOcreation makefeature make isdo print ("Salut, Paris!") endend2009-03-28 Albertas Dinda 62


Ar ši kalba tinka pradžiamoksliui?#include // šito reikia dėl std::cout ir std::endlint main(){std::cout


Ar ši kalba tinka pradžiamoksliui?MODULE LabasParyziau;IMPORT Log;PROCEDURE Daryk*;BEGINLog.String("Salut, Paris!");Log.LnEND Daryk;END LabasParyziau.2009-03-28 Albertas Dinda 64


Ar ši kalba tinka pradžiamoksliui?TO HELLOPARISPRINT [Salut, Paris!]END2009-03-28 Albertas Dinda 65


Ar ši kalba tinka pradžiamoksliui?Program HelloParis(output);beginwriteLn('Salut, Paris!');readLn;end.2009-03-28 Albertas Dinda 66


Ar ši kalba tinka pradžiamoksliui?public class HelloParis {public static void main(String[] args) {System.out.println("Salut, Paris!");}}2009-03-28 Albertas Dinda 67


Ar ši kalba tinka pradžiamoksliui?#!/usr/bin/perlprint "Salut, Paris!\n";2009-03-28 Albertas Dinda 68


Ar ši kalba tinka pradžiamoksliui?assume cs:cseg, ds:dseg, ss:ssegmov ax,dsegmov ds,ax ;duomenu segmento iniciavimaslea dx, welcomemov ah, 09hint 21hmov ah,4chint 21h2009-03-28 Albertas Dinda 69


Gal šios <strong>kalbos</strong> tinka pradžiamoksliui?10 REM PRANESIMAS20 PRINT “Salut, Paris!\n“30 RET10.05 C pranesimas10.10 T “Salut, Paris!“ !10.15 Rprogram Salutprint *, “Salut, Paris!“end2009-03-28 Albertas Dinda 70


Gal šios <strong>kalbos</strong> tinka pradžiamoksliui?Проц Старт()Вывод 'Здравствуй, Новосибирск!!!'Кон Проц>>> print («Salut, %s!" % “Python")." Salut, FORTH"2009-03-28 Albertas Dinda 71


Geriausiai tiks taprogramavimo kalba,kurią geriausiai mokamokytojas2009-03-28 Albertas Dinda 72

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!