List of educational programming languages explained

An educational programming language is a programming language that is designed mostly as an instrument for learning, and less as a tool for writing programs to perform work.

Types of educational programming languages

Assembly languages

Originally, machine code was the only way to program computers. Assembly language was the next type of language used; making it one of the oldest families of computer languages in use today. Many dialects and implementations are available, usually some for each computer processor architecture. It is very basic and is termed a low-level programming language. It is one of the more difficult languages to work with being untyped and rigid. Several simplified dialects exist for education.

Low-level languages must be written for a specific processor architecture and cannot be written or taught in isolation without referencing the processor for which it was written. Unlike higher-level languages, using an educational assembly language needs a representation of a processor, whether virtualized or physical. Assembly is used for learning about fundamental computer processor operation.

BASIC variants

BASIC (which stands for Beginner's All-purpose Symbolic Instruction Code) was invented in 1964 to provide computer access to non-science students. It became popular on minicomputers during the 1960s and became a standard computing language for microcomputers during the late 1970s and early 1980s. The goals of BASIC were focused on the need of learning to program easily:

What made BASIC particularly useful for education was the small size of programs that could illustrate a concept in a dozen lines. BASIC continues to this day to be frequently self-taught with excellent tutorials and implementations.

See also List of BASIC dialects by platform.

BASIC offers a learning path from learning-oriented BASICs such as Microsoft Small Basic, BASIC-256 and SiMPLE, to more full-featured BASICs like Visual Basic .NET and Gambas.

C based

Java-based

Lisp-based

Lisp is the second oldest family of programming languages in use today, and as such has many dialects and implementations with a wide range of difficulties. Lisp was originally created as a practical mathematical notation for computer programs, based on lambda calculus, which makes it particularly well suited for teaching theories of computing. As one of the earliest languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, object-oriented programming, and the self-hosting compiler all of which are useful for learning computer science.

The name LISP derives from "List Processing language". Linked lists are one of the languages' major data structures, and Lisp source code is made of lists. Thus, Lisp programs can manipulate source code as a data structure, giving rise to the macro systems that allow programmers to create new syntax or even new domain-specific languages embedded in Lisp. Therefore, Lisps are useful for learning language design and creating custom languages.

A reasonable learning path would be Logo followed by any educational variant such as Scheme or newLISP, followed by a professional variant such as Common Lisp.

Scala-based

Smalltalk-based

As part of the One Laptop per Child project, a sequence of Smalltalk-based languages has been developed, each designed to act as an introduction to the next. The structure is Scratch to Etoys to Squeak to any Smalltalk.[4] Each provides graphical environments which may be used to teach not only programming concepts to kids but also physics and mathematics simulations, story-telling exercises, etc., through the use of constructive learning. Smalltalk and Squeak have fully featured application development languages that have been around and well respected for decades; Scratch is a children's learning tool.

Pascal

Other

Children

University

See also

Notes and References

  1. Microsoft corporation 2009 Getting Started Guide for Small Basic, p. 64.
  2. Seymour . Papert . Redefining Childhood: The Computer Presence as an Experiment in Developmental Psychology . October 1980 . Tokyo, Japan and Melbourne, Australia . 8th World Computer Congress: IFIP Congress .
  3. Web site: About kogics Kojo . February 12, 2011.
  4. Web site: Cavallo . David . Learning Squeak from Scratch . One Laptop Per Child News . May 28, 2007 . April 3, 2009.
  5. Web site: Scratch: imagine, program, share . Mitchel Resnick . John Maloney . Natalie Rusk . Evelyn Eastmond . Amon Millner . Jay Silver . Eric Rosenbaum . Karen Brennan . Amos Blanton . . January 8, 2013.
  6. Book: Ducasse , Stéphane . Stéphane Ducasse

    . Stéphane Ducasse . Squeak: Learn Programming with Robots (Technology in Action) . Apress . 2005 . 289 in ch 24: A tour or eTOY . 1-59059-491-6.

  7. Web site: Kay. Alan. The Early History of Smalltalk. September 13, 2007. https://web.archive.org/web/20110429192453/http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html. April 29, 2011. dead.
  8. For further discussion of why this make it easy see Meta-circular evaluator
  9. Hemmendinger, David. "Pascal". Encyclopedia Britannica, 5 Apr. 2024, https://www.britannica.com/technology/Pascal-computer-language. Accessed 12 June 2024.
  10. Web site: Storytelling Alice – Alice . 2023-11-07 . en-US.
  11. Web site: Google Code Archive - Long-term storage for Google Code Project Hosting. . 2023-11-07 . code.google.com.
  12. http://www.uptosomething.in/weblog/?p=531 CiMPLE Original Developers Weblog
  13. http://thinklabs.in ThinkLabs
  14. http://en.eytam.com/mama/educational_programming_language Mama educational programming principles
  15. M. Hanus. Teaching Functional and Logic Programming with a Single Computation Model. In Proc. Ninth International Symposium on Programming Languages, Implementations, Logics, and Programs (PLILP’97), pp. 335–350. Springer LNCS 1292, 1997.
  16. Web site: Curry report, Introduction . https://web.archive.org/web/20091004101455/http://www.informatik.uni-kiel.de/~curry/report.html . 2009-10-04 .
  17. M. . Hanus . The Integration of Functions into Logic Programming: From Theory to Practice . Journal of Logic Programming . 19&20 . 583–628 . 1994 .
  18. Web site: About. Flowgorithm. August 26, 2014.
  19. http://www.info.ucl.ac.be/people/PVR/paradigmsDIAGRAMeng108.pdf Programming Paradigms