List of educational programming languages

Last updated

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.

Contents

Types of educational programming languages


Assembly languages

Originally, machine code was the first and only way to program computers. Assembly language was the next type of language used; thus, it is 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

Related Research Articles

<span class="mw-page-title-main">Alan Kay</span> American computer scientist (born 1940)

Alan Curtis Kay is an American computer scientist best known for his pioneering work on object-oriented programming and windowing graphical user interface (GUI) design. At Xerox PARC he led the design and development of the first modern windowed computer desktop interface. There he also led the development of the influential object-oriented programming language Smalltalk, both personally designing most of the early versions of the language and coining the term "object-oriented." He has been elected a Fellow of the American Academy of Arts and Sciences, the National Academy of Engineering, and the Royal Society of Arts. He received the Turing award in 2003.

<span class="mw-page-title-main">Logo (programming language)</span> Computer programming language

Logo is an educational programming language, designed in 1967 by Wally Feurzeig, Seymour Papert, and Cynthia Solomon. Logo is not an acronym: the name was coined by Feurzeig while he was at Bolt, Beranek and Newman, and derives from the Greek logos, meaning word or thought.

<span class="mw-page-title-main">Seymour Papert</span> MIT mathematician, computer scientist, and educator

Seymour Aubrey Papert was a South African-born American mathematician, computer scientist, and educator, who spent most of his career teaching and researching at MIT. He was one of the pioneers of artificial intelligence, and of the constructionist movement in education. He was co-inventor, with Wally Feurzeig and Cynthia Solomon, of the Logo programming language.

<span class="mw-page-title-main">Smalltalk</span> Object-oriented programming language released first in 1972

Smalltalk is a purely object oriented programming language (OOP) that was originally created in the 1970s for educational use, specifically for constructionist learning, but later found use in business. It was created at Xerox PARC by Learning Research Group (LRG) scientists, including Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Diana Merry, and Scott Wallace.

<span class="mw-page-title-main">Squeak</span> Object-oriented programming language

Squeak is an object-oriented, class-based, and reflective programming language. It was derived from Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at Apple Computer, then at Walt Disney Imagineering, where it was intended for use in internal Disney projects. The group would later go on to be supported by HP Labs, SAP, and most recently, Y Combinator.

In computer graphics, turtle graphics are vector graphics using a relative cursor upon a Cartesian plane. Turtle graphics is a key feature of the Logo programming language.

<span class="mw-page-title-main">Lego Mindstorms</span> Hardware and software platform by Lego

Lego Mindstorms is a discontinued hardware and software structure which develops programmable robots based on Lego bricks.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. VPLs are generally the basis of Low-code development platforms.

StarLogo is an agent-based simulation language developed by Mitchel Resnick, Eric Klopfer, and others at the Massachusetts Institute of Technology (MIT) Media Lab and Scheller Teacher Education Program in Massachusetts. It is an extension of the Logo programming language, a dialect of Lisp. Designed for education, StarLogo can be used by students to model or simulate the behavior of decentralized systems.

<span class="mw-page-title-main">History of programming languages</span> History of languages used to program computers

The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure syntax. Throughout the 20th century, research in compiler theory led to the creation of high-level programming languages, which use a more accessible syntax to communicate instructions.

<span class="mw-page-title-main">Constructionism (learning theory)</span> Learning theory involving the construction of mental models

Constructionist learning is the creation by learners of mental models to understand the world around them. Constructionism advocates student-centered, discovery learning where students use what they already know to acquire more knowledge. Students learn through participation in project-based learning where they make connections between different ideas and areas of knowledge facilitated by the teacher through coaching rather than using lectures or step-by-step guidance. Further, constructionism holds that learning can happen most effectively when people are active in making tangible objects in the real world. In this sense, constructionism is connected with experiential learning and builds on Jean Piaget's epistemological theory of constructivism.

<span class="mw-page-title-main">Mitchel Resnick</span> American academic and programmer

Mitchel Resnick is an American computer scientist. He is the LEGO Papert Professor of Learning Research at the Massachusetts Institute of Technology (MIT) Media Lab. As of 2019, Resnick serves as head of the Media Arts and Sciences academic program, which grants master's degrees and Ph.D.s at the MIT Media Lab.

Etoys is a child-friendly computer environment and object-oriented prototype-based programming language for use in education.

MicroWorlds is a family of computer programs developed by Logo Computer Systems Inc. (LCSI) that uses the Logo programming language and a turtle-shaped object to teach language, mathematics, programming, and robotics concepts in primary and secondary education. The program was part of a larger set of dialects and implementations created by Seymour Papert aimed at triggering the development of abstract ideas by children through experimentation.

<span class="mw-page-title-main">Lego Mindstorms NXT</span> Programmable robotics kit

Lego Mindstorms NXT is a programmable robotics kit released by Lego on August 2, 2006. It replaced the Robotics Invention System, the first-generation Lego Mindstorms kit. The base kit ships in two versions: the retail version and the education base set. It comes with the NXT-G programming software or the optional LabVIEW for Lego Mindstorms. A variety of unofficial languages exist, such as NXC, NBC, leJOS NXJ, and RobotC. A second-generation set, Lego Mindstorms NXT 2.0, was released on August 1, 2009, with a color sensor and other upgrades. The third-generation EV3 was released in September 2013.

RoboMind is a simple educational programming environment with its own scripting language that allows beginners to learn the basics of computer science by programming a simulated robot. In addition to introducing common programming techniques, it also aims at offering insights in robotics and artificial intelligence. RoboMind is available as stand-alone application for Windows, Linux, and Mac OS X. It was first released in 2005 and was originally developed by Arvid Halma, a student of the University of Amsterdam at the time. Since 2011, RoboMind has been published by Research Kitchen.

<span class="mw-page-title-main">Cynthia Solomon</span> Computer scientist

Cynthia Solomon is an American computer scientist known for her work in popularizing computer science for students. She is a pioneer in the fields of computer science, and educational computing. While working as a researcher at Massachusetts Institute of Technology (MIT), Solomon took it upon herself to understand and program in the programming language Lisp. As she began learning this language, she realized the need for a programming language that was more accessible and understandable for children. Throughout her research studies in education, Solomon worked full-time as a computer teacher in elementary and secondary schools. Her work has mainly focused on research on human-computer interaction and children as designers. While working at Bolt, Beranek and Newman, she worked with Wally Feurzeig and Seymour Papert, to create the first programming language for children, named Logo. The language was created to teach concepts of programming related to Lisp. Solomon has attained many accomplishments in her life such as being the vice president of R&D for Logo Computer Systems, Inc., when Apple Logo was developed and was the Director of the Atari Cambridge Research Laboratory. Solomon worked on the program committee of Constructing Modern Knowledge and the Marvin Minsky Institute for Artificial Intelligence in 2016. Further, she has published many writings based on research in the field of child education and technology in the classroom. Solomon has conducted workshops in elementary schools, high schools, and colleges regarding academic research and writing. She continues to contribute to the field by speaking at conferences and working with the One Laptop per Child Foundation.

Ted Kaehler is an American computer scientist known for his role in the development of several system methods. He is most noted for his contributions to the programming languages Smalltalk, Squeak, and Apple Computer's HyperCard system, and other technologies developed at Xerox PARC.

References

  1. Microsoft corporation 2009 Getting Started Guide for Small Basic, p. 64.
  2. 1 2 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. "Storytelling Alice – Alice" . Retrieved November 7, 2023.
  10. "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com. Retrieved November 7, 2023.
  11. CiMPLE Original Developers Weblog Archived July 21, 2011, at the Wayback Machine
  12. ThinkLabs
  13. Mama educational programming principles
  14. 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.
  15. Curry report, Introduction. Most recent version available at Archived October 4, 2009, at the Wayback Machine
  16. M. Hanus. The Integration of Functions into Logic Programming: From Theory to Practice. Journal of Logic Programming, Vol. 19&20, pp. 583–628, 1994.
  17. "About". Flowgorithm. Retrieved August 26, 2014.
  18. Programming Paradigms poster