List of educational programming languages

(Learn how and when to remove this message)

An educational programming language is a programming language that is designed mostly as an instrument for learning, and are usually designed to be a starting point to go to more complex and useful programming languages.

Types of Educational Programming Languages

Assembly Languages

Initially, machine code was the sole method of programming computers. Assembly language followed as an early advancement, making it one of the oldest families of programming languages still in use today. Numerous dialects and implementations exist, each typically tailored to a specific computer processor architecture. Assembly languages are considered low-level and are more challenging to use, as they are untyped and rigid. For educational purposes, simplified dialects of assembly language have been developed to make coding more accessible to beginners.

Low-level languages, like assembly, must be written for a particular processor architecture. They cannot be effectively taught or used in isolation from the hardware for which they were designed. Unlike higher-level languages, educational assembly languages require some form of processor representation, either virtual or physical. Assembly languages are commonly used to teach the fundamental operations of a computer processor.

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

References

  1. ^ Microsoft corporation 2009 Getting Started Guide for Small Basic, p. 64.
  2. ^ a b Papert, Seymour (October 1980). Redefining Childhood: The Computer Presence as an Experiment in Developmental Psychology. Tokyo, Japan and Melbourne, Australia: 8th World Computer Congress: IFIP Congress.
  3. ^ "About kogics Kojo". Retrieved February 12, 2011.
  4. ^ Cavallo, David (May 28, 2007). "Learning Squeak from Scratch". One Laptop Per Child News. Retrieved April 3, 2009.
  5. ^ Mitchel Resnick; John Maloney; Natalie Rusk; Evelyn Eastmond; Amon Millner; Jay Silver; Eric Rosenbaum; Karen Brennan; Amos Blanton. "Scratch: imagine, program, share". Massachusetts Institute of Technology. Retrieved January 8, 2013.
  6. ^ Ducasse, Stéphane (2005). Squeak: Learn Programming with Robots (Technology in Action). Apress. pp. 289 in ch 24: A tour or eTOY. ISBN 1-59059-491-6.
  7. ^ Kay, Alan. "The Early History of Smalltalk". Archived from the original on April 29, 2011. Retrieved September 13, 2007.
  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. ^ "Storytelling Alice – Alice". Retrieved November 7, 2023.
  11. ^ "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com. Retrieved November 7, 2023.
  12. ^ CiMPLE Original Developers Weblog Archived July 21, 2011, at the Wayback Machine
  13. ^ ThinkLabs
  14. ^ 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. ^ "Curry report, Introduction". Archived from the original on October 4, 2009.
  17. ^ Hanus, M. (1994). "The Integration of Functions into Logic Programming: From Theory to Practice". Journal of Logic Programming. 19&20: 583–628.
  18. ^ "About". Flowgorithm. Retrieved August 26, 2014.
  19. ^ Programming Paradigms poster