Limbajul de programare educațional

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 27 mai 2020; verificările necesită 5 modificări .

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] .

Cerințe pentru un limbaj de programare educațional

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] .

BASIC

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] .

Limbaje de programare declarative

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] .

Pascal

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.

Limbi cu cuvinte cheie ruse

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]

Vezi și

Note

  1. Andrei Kolesov. De bază - etapele unei călătorii lungi Arhivat 5 martie 2010 la Wayback Machine (versiunea autorului articolului). Publicat cu mici corecții literare în revista „ Știință și viață ”, 2000, nr. 10, pp. 18-20.
  2. 1 2 Wirth N. Amintiri despre dezvoltarea lui Pascal (HOPL II), 3.3 Arhivat la 22 decembrie 2012 la Wayback Machine
  3. Bill Venners. The Making of Python Arhivat la 1 septembrie 2016 la Wayback Machine . O conversație cu Guido van Rossum. Partea I. 2003, 13 ianuarie.
  4. Logo Language Arhivat 24 aprilie 2012 la Wayback Machine pe site-ul web Computer History
  5. Sistem de programare KuMir → Tutoriale . Consultat la 16 aprilie 2012. Arhivat din original pe 3 aprilie 2012.
  6. Alexander Kazantsev.  Şcoală. Executori și algoritmi  // Format Linux . - ianuarie 2010 - Nr. 126-127 (1) . Arhivat din original pe 11 septembrie 2016.
  7. Psihologie, 1990 , 1. Introducere, p. 176.
  8. 1 2 Kobilov S. S.  Informatica educațională: abordare a învățării, alegerea limbilor educaționale și crearea de sisteme software . – Universitatea de Stat din Samarkand . Arhivat din original pe 26 martie 2014.
  9. Stolyarov A. V.   Eseu „Limbajul C și pregătirea inițială de programare” Copie de arhivă din 10 mai 2012 la Wayback Machine
  10. Lobachev A. A., Kulikova O. V. Alegerea unui limbaj pentru predarea programarii Copie de arhivă din 13 decembrie 2014 la Wayback Machine , ITO-2008.
  11. Mini-limbi: o modalitate de a învăța principiile de programare (downlink) . Consultat la 16 aprilie 2012. Arhivat din original pe 26 martie 2014. 
  12. Dijkstra Edsger Arhivat la 31 iulie 2012 la Wayback Machine on Computer History
  13. 1 2 3 Leonov A. G., Pervin Yu. A.  Rolul și locul temei „Elemente de programare” în educația informatică școlară generală  // Instrumente informatice în educație. Informatizarea educatiei. - Sankt Petersburg. : TsPO, 1999. - Nr. 5 . - S. 14-23 . Arhivat din original pe 9 februarie 2019.
  14. James M. Renault.  Vrei să înveți cum să programezi? = Deci vrei să înveți să programezi? / Per. din engleza. S. Iryupin, V. Cherny. — M .: Alt Linux , 2011. — 320 p. - ISBN 978-5-905167-06-5 . Arhivat pe 10 aprilie 2012 la Wayback Machine
  15. De exemplu, îi lipsesc procedurile și funcțiile . Un alt dialect modern similar este Basic4GL
  16. David Brin.  De ce Johnny nu poate codifica  // Salon Magazine . - 2006. - Nr. 14 septembrie . Arhivat din original pe 30 iulie 2019.
  17. Mic de bază pentru începători . Consultat la 17 aprilie 2012. Arhivat din original pe 15 august 2011.
  18. Samarina A. E. Utilizarea software-ului liber în educație Copie de arhivă din 26 martie 2014 la Wayback Machine ( Smolensk State University )
  19. Visual Basic Express Edition . Consultat la 17 aprilie 2012. Arhivat din original la 12 octombrie 2010.
  20. Seymour Papert . Istoria calculatorului. Consultat la 25 martie 2014. Arhivat din original la 12 noiembrie 2013.
  21. Shrainer P. A.  Cursul 1: Introducere în limbajul de programare logic Prolog // Fundamentele programării în limbajul Prolog . - INTUIT . - ISBN 978-5-9556-0034-5 . Arhivat pe 26 martie 2014 la Wayback Machine
  22. Psihologie, 1990 , 3. The Misconception Problem: Prolog, pp. 186-190.
  23. Gerald Jay Sussman și Guy Lewis Steele, Jr. Schemă: un interpret pentru calculul Lambda extins. — MIT AI Lab. AI Lab Memo AIM-349. Decembrie 1975. [1] Arhivat 3 septembrie 2013 la Wayback Machine de la Lambda Papers
  24. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi.  Structura și Interpretarea Curriculumului Informatică  // Jurnalul de Programare Funcțională. - 2004. - Vol. 14. - P. 365. Arhivat la 11 mai 2008.  - doi : 10.1017/S0956796804005076 .
  25. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi.  Cum se proiectează programe . - MIT Press, 2001. - 723 p. — ISBN 9780262062183 . Arhivat pe 26 iunie 2018 la Wayback Machine
  26. Shriram Krishnamurthi.  Limbaje de programare: aplicare și interpretare . Arhivat pe 3 decembrie 2013 la Wayback Machine
  27. Daniel P. Friedman, Mitchell Wand. Elementele esențiale ale limbajelor de programare. a 3-a editie. - MIT Press, 2008. - 432 p. — ISBN 9780262062794 .
  28. Daniel P. Friedman, Matthias Felleisen. Micul intrigator. - MIT Press, 1996. - ISBN 978-0-262-56099-3 .
  29. Matthias Felleisen, David Van Horn, Conrad Barski și colab.  Realm of Racket: Învață să programezi, câte un joc!  - No Starch Press, 2013. - ISBN 978-1-59327-491-7 . Arhivat pe 7 octombrie 2018 la Wayback Machine Copie arhivată (link indisponibil) . Preluat la 26 martie 2014. Arhivat din original la 7 octombrie 2018. 
  30. Conrad Barski.  Land of Lisp: Învață să programezi în Lisp, câte un joc!  - No Starch Press, octombrie 2010. - 504 p. — ISBN 978-1-59327-281-4 . Arhivat pe 13 decembrie 2017 la Wayback Machine
  31. Jones, Simon Peyton.  Prefață . Raportul Haskell 98 . Grupul de lucru Haskell 98 (2002). Consultat la 4 aprilie 2009. Arhivat din original pe 16 martie 2009.
  32. Philip Wadler.  De ce este mai bine să calculezi decât să intrighiți  // ACM SIGPLAN Notices. - 1987. - P. 83-94. Arhivat din original pe 31 mai 2014.
  33. Richard Bird. Introducere în programarea funcțională folosind Haskell. editia a 2-a. - Prentice Hall, 1998.  - P. 66.
  34. Peter Van Roy, Seif Haridi. Concepte, tehnici și modele de programare computerizată. - MIT Press, martie 2004. - ISBN 0-262-22069-5 .
  35. Proiect internațional științific și educațional Informatica-21 . Data accesului: 26 martie 2014. Arhivat din original pe 29 martie 2014.
  36. Tkachev F.V.  Învățarea programării: o perspectivă rusă  // ​​Limbaje de programare modulare. Note de curs în Informatică 2789. - Springer-Verlag, 2003. - p. 69-77 . Arhivat din original pe 24 septembrie 2015.
  37. Gorodnyaya L.V.  Informatică școlară // Marchuk A.G.   Andrey Petrovici Ershov - un om de știință și o persoană. - Novosibirsk: Editura SO RAN, 2006. - 503 p. - (Știința Siberiei în chipuri). - ISBN 978-5-7692-0819-5 .
  38. Varsanofiev D. V., Kushnirenko A. G. , Lebedev G. V.  E-workshop - software pentru cursul școlar de informatică și tehnologie informatică // Instrumente și sisteme cu microprocesoare . - 1985. - Nr 3 . - S. 27-32 .
  39. PMK „Curs de bază în informatică” (link inaccesibil) . Preluat la 31 august 2020. Arhivat din original la 4 februarie 2020. 

Literatură

Link -uri