Un limbaj de programare educațional este un limbaj de programare destinat învățării. Ca atare, au fost dezvoltate limbaje precum BASIC [1] și Pascal [2] . Python [3] a apărut din limbajul ABC a fost dezvoltat pentru învățare . Un limbaj popular conceput special pentru educație este LOGO [4] . Mediul de limbaj KuMir [5] a fost dezvoltat special pentru școlile rusești . Limbajul de programare vizuală Scratch și mediile de programare similare create la Institutul de Tehnologie din Massachusetts câștigă popularitate [6] .
Limbajul de predare ar trebui să ofere simplitate, claritate și lizibilitate structurilor. Flexibilitatea excesivă, sintaxa „permisivă” pot face programele dificil de înțeles. Limbile care încurajează utilizarea diferitelor „trucuri de programare” nu sunt foarte potrivite pentru învățare [7] . Acest lucru este legat de avantajele utilizării limbajelor familiei Pascal în procesul educațional față de limbajele asemănătoare C [8] [9] .
Atunci când alegeți un limbaj de programare, factori precum noutatea acestuia, eficiența implementării (sub formă de compilator sau interpret ) nu joacă un rol. Factorul de prevalență are atât semnificație psihologică (influențând motivația elevilor), cât și practică (cererea de cunoștințe dobândite fără a fi nevoie de recalificare) [10] .
Un limbaj de programare educațional ar trebui să ofere o tranziție lină de la pseudocod la programarea reală. Abilitatea de a folosi vocabularul național pentru cuvinte cheie și identificatori poate fi utilă în învățare [8] .
O alternativă la limbajele complexe de programare de uz general, care necesită relativ timp de învățat, poate fi mini-limbaje simple, în care, pentru claritate, există un interpret grafic , cum ar fi țestoasa din Logo - primul și unul dintre cele mai cunoscute astfel de limbi [11] .
DE BAZĂ , ing. Codul de instrucțiuni simbolice universal pentru începători - La începutul anilor 60, a devenit primul limbaj de programare care a devenit larg răspândit pentru predarea începătorilor. Cu toate acestea, a primit critici dure pentru că nu a respectat principiile programării structurate și pentru că este ușor de creat cod spaghetti . Edsger Dijkstra spunea: „Studenții care au studiat anterior BASIC sunt aproape imposibil să predea programare bună. Ca potențiali programatori, ei au suferit o degradare mentală ireversibilă .Influențați de această critică, creatorii de bază John Kemeny și Thomas Kurtz au extins limbajul structural în 1975 și au abandonat practica utilizării GOTO . În anii 1980 au creat o versiune actualizată a limbajului numită True BASIC [12] . Dialectele BASIC moderne ( QBasic , Visual Basic ) se deosebesc de această variantă și sunt de origine microsoft , însă au puține în comun cu progenitorul, fiind limbaje de programare structurală destul de moderne [13] . Următoarele dialecte BASIC au fost create special pentru scopuri educaționale.
„Visual Basic pentru Linux ” [18] al lui Gambas este de asemenea introdus în educația școlară . Este disponibilă o versiune expresă educațională gratuită a Visual Basic .NET [19] .
Limbajul Logo , născut între BASIC și Pascal , a fost primul limbaj de programare destinat inițial pentru predarea copiilor . Acest limbaj poate fi văzut ca un dialect al Lisp , limbajul care a început programarea funcțională [20] . Deși acest limbaj este mai bine cunoscut pentru grafica țestoasă și este considerat primul dintre executanții grafici , caracteristicile Lisp, cum ar fi controlul secvenței prin recursivitate și listele ca structură principală de date , rămân, de asemenea, proprietăți ale acestui limbaj (în mod inerent multi -paradigmă).
Deși Prolog , limbajul care a început programarea logică , este rareori considerat un limbaj de învățare primar, este ușor de preluat de cei care abia încep să învețe programarea. Acest lucru este facilitat de concentrarea sa pe gândirea umană , sintaxa simplă, uniformă și absența constructelor precum ramuri sau bucle [21] . Ușurința de învățare a fost unul dintre obiectivele de proiectare ale limbii, deși limbajul rămâne neînțeles. Unul dintre motivele prevalenței scăzute a Prolog în învățământul primar este lipsa instrumentelor convenabile pentru lucrul cu grafica interactivă, care nu se încadrează foarte bine în programarea pur declarativă [22] .
Dialectul „academic” modern al Lisp - limba Scheme - a fost inițial concentrat pe educație [23] . Este folosit într-un curs de programare atât de faimos precum „ Structura și interpretarea programelor de calculator ”. Publicarea acestei cărți nu numai că a făcut din Scheme un limbaj popular în mediul universitar, dar a schimbat și abordarea programării învățării [24] . Acest limbaj este, de asemenea, folosit într-un număr de manuale, cum ar fi Cum să proiectați programe» [25] , « Limbaje de programare: aplicare și interpretare» [26] , « Esențiale ale limbajelor de programare» [27] și altele. Învățarea programării de la zero folosind Scheme este, de asemenea, subiectul unei cărți a lui Daniel FriedmanThe Little Schemer [28] , publicat pentru prima dată sub numele de The Little Lisper în 1974, a fost începutul unui fel de trilogie. Prima carte dedicată limbajului Racket (un descendent direct al Scheme), Realm of Racket [29] , este, de asemenea, un manual pentru copii (cu toate acestea, această carte este și o versiune revizuită a manualului Land of Lisp [30] , bazată pe pe Common Lisp ).
Limbajul Haskell a devenit un concurent serios pentru diferite versiuni de Lisp în cursurile de programare funcțională universitară . Autorii acestui limbaj l-au destinat în egală măsură pentru predare, cercetare științifică și aplicații practice [31] . Se distinge prin faptul că este un limbaj de programare pur funcțional care implementează calculul lambda tipizat , sintaxa sa fiind apropiată de notația matematică tradițională [32] [33] .
În 1991 , Geert Smolka , profesor la Universitatea Catolică din Louvain din Belgia, a început dezvoltarea limbajului multi-paradigma Oz . Limbajul vă permite să scrieți programe în stilul oricăreia dintre principalele paradigme comune de programare : atât declarative, cum ar fi programarea logică și funcțională , cât și imperative. Acest limbaj este folosit ca bază pentru tutorialul Concepte, tehnici și modele de programare computerizată .» [34] .
Dezvoltat ca o dezvoltare a liniei Algol-60 de Niklaus Wirth , limbajul de programare Pascal a fost folosit de autor încă de la început pentru un curs introductiv de programare pentru studenți [2] . Această limbă a început rapid să câștige popularitate în această calitate.
Turbo Pascal , Delphi și Free Pascal au fost utilizate pe scară largă și continuă să fie folosite pentru predarea elevilor și școlarilor. Proiectul științific și educațional internațional „Informatica-21” [35] , care a luat naștere în 2002 la Facultatea de Fizică a Universității de Stat din Moscova , și-a propus ca scop introducerea sistemului de programare BlackBox Component Builder [36] în învățământul rusesc , implementarea Componenta Pascal , un dialect din Oberon-2 - o familie de limbaje Pascal orientată pe obiecte dezvoltată de Wirth. Ca și alte limbi ale lui Niklaus Wirth, se deosebește (inclusiv de Object Pascal în stil Borland) prin minimalism.
Pentru a preda elemente de programare în cadrul cursurilor de informatică , au fost dezvoltate o serie de limbaje de programare educaționale cu cuvinte cheie rusești [37] . În grupul academicianului A.P. Ershov , a fost dezvoltată o abordare cu studiul a două limbaje de programare - unul mai simplu, destinat în principal controlului unui executant grafic și unul universal mai avansat. Limbile Robik și RAPIRA [13] au fost dezvoltate ca o astfel de pereche . Principalele limbi educaționale ruse sunt:
Pentru instruirea inițială de programare, pot fi folosite și limbaje simple pentru controlul executanților grafici, precum Cucaracha în sistemul Robotland sau Kengurenok Ru [13] .
În Belarus, un dialect al unui limbaj algoritmic școlar numit IntAl a devenit larg răspândit . [39]