Pedagogiskt programmeringsspråk

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 27 maj 2020; kontroller kräver 5 redigeringar .

Ett pedagogiskt programmeringsspråk  är ett programmeringsspråk avsett för inlärning. Som sådana utvecklades språk som BASIC [1] och Pascal [2] . Python [3] växte fram ur språket ABC utvecklades för lärande . Ett populärt språk designat specifikt för utbildning är LOGO [4] . Språkmiljön KuMir [5] har utvecklats specifikt för ryska skolor . Det visuella programmeringsspråket Scratch , skapat vid Massachusetts Institute of Technology , och liknande programmeringsmiljöer blir allt populärare . [6] .

Krav på ett pedagogiskt programmeringsspråk

Undervisningsspråket ska ge enkelhet, tydlighet och läsbarhet i strukturerna. Överdriven flexibilitet, "tillåtande" syntax kan göra program svåra att förstå. Språk som uppmuntrar användningen av olika "programmeringsknep" är inte särskilt väl lämpade för inlärning [7] . Detta är relaterat till fördelarna med att använda Pascal- familjens språk i utbildningsprocessen framför C -liknande språk [8] [9] .

När du väljer ett programmeringsspråk spelar inte faktorer som dess nyhet, implementeringseffektivitet (i form av en kompilator eller tolk ) någon roll. Prevalensfaktorn har både psykologisk betydelse (påverkar elevernas motivation) och praktiska (kravet på kunskap som erhållits utan behov av omskolning) [10] .

Ett pedagogiskt programmeringsspråk bör ge en smidig övergång från pseudokod till faktisk programmering. Möjligheten att använda nationella ordförråd för nyckelord och identifierare kan vara användbar för lärande [8] .

Ett alternativ till komplexa programmeringsspråk för allmänna ändamål som är relativt tidskrävande att lära sig kan vara enkla minispråk, där det för tydlighetens skull finns en grafisk artist , som sköldpaddan i Logo  - den första och en av de mest kända sådana språk [11] .

BASIC

BASIC , eng.  Nybörjarens allsidiga symboliska instruktionskod  - I början av 60-talet blev det det första programmeringsspråket som blev utbrett för att undervisa nybörjare. Den har dock fått hård kritik för att inte följa principerna för strukturerad programmering och för att det är lätt att skapa spagettikod . Edsger Dijkstra sa: "Studenter som tidigare har studerat BASIC är nästan omöjliga att lära ut bra programmering. Som blivande programmerare har de genomgått en oåterkallelig mental degradering .Influerade av denna kritik utökade Basic-skaparna John Kemeny och Thomas Kurtz språket strukturellt 1975 och övergav bruket att använda GOTO . På 1980-talet skapade de en uppdaterad version av språket som heter True BASIC [12] . Moderna utbredda BASIC-dialekter ( QBasic , Visual Basic ) skiljer sig från denna variant och är av microsoft- ursprung, men de har lite gemensamt med stamfadern, eftersom de är ganska moderna strukturella programmeringsspråk [13] . Följande BASIC-dialekter har skapats specifikt för utbildningsändamål.

Gambas "Visual Basic for Linux " [18] introduceras också i skolundervisningen . En gratis pedagogisk expressversion av Visual Basic .NET finns tillgänglig [19] .

Deklarativa programmeringsspråk

Logospråket , född mellan BASIC och Pascal , var det första programmeringsspråket som ursprungligen var avsett för undervisning av barn . Detta språk kan ses som en dialekt av Lisp  , språket som startade funktionell programmering [20] . Även om detta språk är mer känt för sin sköldpaddsgrafik och betraktas som den första av de grafiska exekutorerna , förblir Lisp-funktioner som sekvenskontroll genom rekursion och listor som huvuddatastruktur också egenskaperna hos detta språk ( i sin natur multiparadigm ).

Även om Prolog  , språket som startade logisk programmering , sällan anses vara ett primärt inlärningsspråk, plockas det lätt upp av dem som precis har börjat lära sig programmering. Detta underlättas av dess fokus på mänskligt tänkande , enkel, enhetlig syntax och frånvaron av konstruktioner som grenar eller loopar [21] . Enkel inlärning var ett av designmålen för språket, även om språket fortfarande är missförstått. En av anledningarna till den låga förekomsten av Prolog i grundskolan är bristen på praktiska verktyg för att arbeta med interaktiv grafik, vilket inte passar särskilt smidigt in i ren deklarativ programmering [22] .

Den moderna "akademiska" dialekten av Lisp - Scheme-språket  - var ursprungligen fokuserad på utbildning [23] . Det används i en så berömd datorprogrammeringskurs som " Datorprogrammens struktur och tolkning ". Publiceringen av denna bok gjorde inte bara Scheme till ett populärt språk i universitetsmiljön, utan förändrade också inställningen till att lära sig programmering [24] . Det här språket används också i ett antal läroböcker som How to Design Programs» [25] , « Programmeringsspråk: Tillämpning och tolkning» [26] , « Grunderna i programmeringsspråk» [27] och andra. Att lära sig programmera från grunden med Scheme är också föremål för en bok av Daniel FriedmanThe Little Schemer [28] , först publicerad som The Little Lisper 1974, var starten på en trilogi av sort. Den första boken tillägnad Racket- språket (en direkt ättling till Scheme), Realm of Racket [29] , är också en lärobok för barn (denna bok är dock också en reviderad version av Land of Lisp-läroboken [30] , baserad på Common Lisp ).

Språket Haskell har blivit en seriös konkurrent till olika versioner av Lisp i universitetskurser i funktionell programmering . Författarna till detta språk avsåg det lika för undervisning, vetenskaplig forskning och praktiska tillämpningar [31] . Det kännetecknas av att det är ett rent funktionellt programmeringsspråk som implementerar maskinskriven lambdakalkyl , dess syntax ligger nära traditionell matematisk notation [32] [33] .

År 1991 började Geert Smolka , professor vid katolska universitetet i Louvain i Belgien, utvecklingen av multiparadigmspråket Oz . Språket låter dig skriva program i stil med något av de vanligaste programmeringsparadigmen : både deklarativa, såsom logisk och funktionell programmering , och imperativ. Detta språk används som grund för handledningen om koncept, tekniker och modeller för datorprogrammering .» [34] .

Pascal

Utvecklat som en utveckling av Algol-60- linjen av Niklaus Wirth , användes programmeringsspråket Pascal av författaren från allra första början för en introduktionsprogrammeringskurs för studenter [2] . Detta språk började snabbt vinna popularitet i denna egenskap.

Turbo Pascal , Delphi och Free Pascal har använts i stor utsträckning och fortsätter att användas för att undervisa elever och skolbarn. Det internationella vetenskapliga och utbildningsprojektet "Informatics-21" [35] , som startade 2002 vid fakulteten för fysik vid Moscow State University , satte som mål att introducera programmeringssystemet BlackBox Component Builder [36] i rysk utbildning , implementering av Component Pascal , en dialekt av Oberon-2  - ett objektorienterat Pascal-språk -familj utvecklat av Wirth. Liksom andra språk av Niklaus Wirth, skiljer det sig (inklusive från Borland-stil Object Pascal) genom minimalism.

Språk med ryska nyckelord

För att undervisa i programmeringselement inom ramen för datavetenskapliga kurser utvecklades ett antal pedagogiska programmeringsspråk med ryska nyckelord [37] . I gruppen av akademiker A.P. Ershov utvecklades ett tillvägagångssätt med studier av två programmeringsspråk - ett enklare, främst avsett för att styra en grafisk exekutor, och ett mer avancerat universellt. Språken Robik och RAPIRA [13] utvecklades som ett sådant par . De viktigaste ryska utbildningsspråken är:

För inledande programmeringsträning kan enkla språk för styrning av grafiska exekutorer, som Cucaracha i Robotland- systemet eller Kengurenok Ru [13] också användas .

I Vitryssland har en dialekt av ett skolalgoritmiskt språk som kallas IntAl blivit utbredd . [39]

Se även

Anteckningar

  1. Andrey Kolesov. Grundläggande - stadier av en lång resa Arkiverad 5 mars 2010 på Wayback Machine (författarens version av artikeln). Publicerad med mindre litterära korrigeringar i tidskriften " Science and Life ", 2000, nr 10, s. 18-20.
  2. 1 2 Wirth N. Minnen om utvecklingen av Pascal (HOPL II), 3.3 Arkiverad 22 december 2012 på Wayback Machine
  3. Bill Venners. The Making of Python Arkiverad 1 september 2016 på Wayback Machine . Ett samtal med Guido van Rossum. Del I. 2003, 13 januari.
  4. Logotypspråk arkiverat 24 april 2012 på Wayback Machine på webbplatsen Computer History
  5. KuMir programmeringssystem → Handledningar . Hämtad 16 april 2012. Arkiverad från originalet 3 april 2012.
  6. Alexander Kazantsev.  Skola. Exekutorer och algoritmer  // Linux-format . - Januari 2010 - Nr 126-127 (1) . Arkiverad från originalet den 11 september 2016.
  7. Psychology, 1990 , 1. Introduktion, sid. 176.
  8. 1 2 Kobilov S. S.  Utbildningsinformatik: inställning till lärande, val av utbildningsspråk och skapande av mjukvarusystem . – Samarkand State University . Arkiverad från originalet den 26 mars 2014.
  9. Stolyarov A. V.   Uppsats "C-språk och inledande programmeringsträning" Arkivexemplar daterad 10 maj 2012 på Wayback Machine
  10. Lobachev A. A., Kulikova O. V. Välja ett språk för undervisning i programmering Arkivexemplar daterad 13 december 2014 på Wayback Machine , ITO-2008.
  11. Minispråk: ett sätt att lära sig programmeringsprinciper (nedlänk) . Hämtad 16 april 2012. Arkiverad från originalet 26 mars 2014. 
  12. Dijkstra Edsger Arkiverad 31 juli 2012 på Wayback Machine on Computer History
  13. 1 2 3 Leonov A. G., Pervin Yu. A.  Rollen och platsen för temat "Programmeringselement" i allmän skolinformatisk utbildning  // Datorverktyg i utbildning. Informatisering av utbildning. - St Petersburg. : TsPO, 1999. - Nr 5 . - S. 14-23 . Arkiverad från originalet den 9 februari 2019.
  14. James M. Renault.  Vill du lära dig hur man programmerar? = Så du vill lära dig att programmera? / Per. från engelska. S. Iryupin, V. Cherny. — M .: Alt Linux , 2011. — 320 sid. - ISBN 978-5-905167-06-5 . Arkiverad 10 april 2012 på Wayback Machine
  15. Den saknar till exempel procedurer och funktioner . En annan liknande modern dialekt är Basic4GL
  16. David Brin.  Varför Johnny inte kan koda  // Salong Magazine . - 2006. - Nr 14 september . Arkiverad från originalet den 30 juli 2019.
  17. Small Basic för nybörjare . Hämtad 17 april 2012. Arkiverad från originalet 15 augusti 2011.
  18. Samarina A. E. Användningen av fri programvara inom utbildning Arkivexemplar av 26 mars 2014 på Wayback Machine ( Smolensk State University )
  19. Visual Basic Express Edition . Hämtad 17 april 2012. Arkiverad från originalet 12 oktober 2010.
  20. Seymour papper . Datorns historia. Hämtad 25 mars 2014. Arkiverad från originalet 12 november 2013.
  21. Shrainer P. A.  Föreläsning 1: Introduktion till det logiska programmeringsspråket Prolog // Grunderna i programmering i Prolog-språket . - INTUIT . - ISBN 978-5-9556-0034-5 . Arkiverad 26 mars 2014 på Wayback Machine
  22. Psychology, 1990 , 3. The Misconception Problem: Prolog, pp. 186-190.
  23. Gerald Jay Sussman och Guy Lewis Steele, Jr. Schema: En tolk för utökad lambdaräkning. — MIT AI Lab. AI Lab Memo AIM-349. December 1975. [1] Arkiverad 3 september 2013 på Wayback Machine från Lambda Papers
  24. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi.  The Structure and Interpretation of the Computer Science Curriculum  // Journal of Functional Programming. - 2004. - Vol. 14. - S. 365. Arkiverad 11 maj 2008.  - doi : 10.1017/S0956796804005076 .
  25. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi.  Hur man designar program . - MIT Press, 2001. - 723 sid. — ISBN 9780262062183 . Arkiverad 26 juni 2018 på Wayback Machine
  26. Shriram Krishnamurthi.  Programmeringsspråk: Tillämpning och tolkning . Arkiverad 3 december 2013 på Wayback Machine
  27. Daniel P. Friedman, Mitchell Wand. Grunderna i programmeringsspråk. 3:e upplagan. - MIT Press, 2008. - 432 sid. — ISBN 9780262062794 .
  28. Daniel P. Friedman, Matthias Felleisen. Den Lilla Schemaren. - MIT Press, 1996. - ISBN 978-0-262-56099-3 .
  29. Matthias Felleisen, David Van Horn, Conrad Barski et al.  Realm of Racket: Lär dig att programmera, ett spel i taget!  - No Starch Press, 2013. - ISBN 978-1-59327-491-7 . Arkiverad 7 oktober 2018 på Wayback Machine Arkiverad kopia (länk ej tillgänglig) . Hämtad 26 mars 2014. Arkiverad från originalet 7 oktober 2018. 
  30. Conrad Barski.  Land of Lisp: Lär dig att programmera i Lisp, ett spel åt gången!  - No Starch Press, oktober 2010. - 504 sid. — ISBN 978-1-59327-281-4 . Arkiverad 13 december 2017 på Wayback Machine
  31. Jones, Simon Peyton.  Förord ​​. Haskell 98-rapporten . Haskell 98 arbetsgrupp (2002). Hämtad 4 april 2009. Arkiverad från originalet 16 mars 2009.
  32. Philip Wadler.  Varför beräkning är bättre än schemaläggning  // ACM SIGPLAN Notices. - 1987. - S. 83-94. Arkiverad från originalet den 31 maj 2014.
  33. Richard Bird. Introduktion till funktionell programmering med Haskell. 2:a upplagan. - Prentice Hall, 1998.  - S. 66.
  34. Peter Van Roy, Seif Haridi. Koncept, tekniker och modeller för datorprogrammering. - MIT Press, mars 2004. - ISBN 0-262-22069-5 .
  35. Internationellt vetenskapligt och utbildningsprojekt Informatik-21 . Datum för åtkomst: 26 mars 2014. Arkiverad från originalet 29 mars 2014.
  36. Tkachev F.V.  Att lära sig programmera: ett ryskt perspektiv  // Modulära programmeringsspråk. Lecture Notes in Computer Science 2789. - Springer-Verlag, 2003. - s. 69-77 . Arkiverad från originalet den 24 september 2015.
  37. Gorodnyaya L.V. Skolinformatik  // Marchuk A.G.   Andrey Petrovich Ershov - en vetenskapsman och en person. - Novosibirsk: SO RANs förlag, 2006. - 503 sid. - (Sibiriens vetenskap i ansikten). - ISBN 978-5-7692-0819-5 .
  38. Varsanofiev D. V., Kushnirenko A. G. , Lebedev G. V.  E-workshop - programvara för skolkursen i informatik och datorteknik // Mikroprocessorverktyg och -system . - 1985. - Nr 3 . - S. 27-32 .
  39. PMK "Grundkurs i datavetenskap" (otillgänglig länk) . Hämtad 31 augusti 2020. Arkiverad från originalet 4 februari 2020. 

Litteratur

Länkar