An educational programming language is a
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
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
In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a ver ...
was the first and only way to program computers.
Assembly language was the next type of language used; thus, 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 termed a
low level programming language. It is one of the more difficult languages to work with being
untyped and rigid, but this is how computers work at low level. Several simplified dialects exist for education.
Low level languages must be written for a specific
processor architecture
Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and constructing buildings ...
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 the most helpful language to use for learning about fundamental computer processor operation.
* ''
Little Man Computer'' (LMC) is an instructional model of a simple
von Neumann architecture
The von Neumann architecture — also known as the von Neumann model or Princeton architecture — is a computer architecture based on a 1945 description by John von Neumann, and by others, in the '' First Draft of a Report on the EDVAC''. Th ...
computer with all basic features of modern computers. It can be programmed in machine code (usually decimal) or assembly. It is based on the concept of having a little man locked in a small room. At one end of the room are 100 mailboxes as memory; each can hold a three digit instruction or data. At the other end of the room are two mailboxes labeled INBOX and OUTBOX which receive and emit data. In the middle of the room is a work area with a simple two function (add and subtract) calculator called the Accumulator and a resettable counter called the Program Counter. The counter is similar to what a doorperson uses to count how many people have entered a facility; it can count up 1, or can be reset to 0. As specified by the
von Neumann architecture
The von Neumann architecture — also known as the von Neumann model or Princeton architecture — is a computer architecture based on a 1945 description by John von Neumann, and by others, in the '' First Draft of a Report on the EDVAC''. Th ...
, memory holds both instructions and data. The user loads data into the mailboxes and then signals the little man to begin executing.
* ''
Next Byte Codes'' (NBC) is a simple language with assembly language syntax that is used to program
Lego Mindstorms NXT
Lego Mindstorms NXT is a programmable robotics kit released by Lego on August 2, 2006.
It replaced the first-generation Lego Mindstorms kit, which was called the Robotics Invention System. The base kit ships in two versions: the Retail Versio ...
programmable bricks. The command line compiler emits NXT compatible machine code, and supports Windows, Mac OS X and Linux.
* ''
Little Computer 3'' (LC-3), is an assembly language with a simplified instruction set, but can be used to write moderately complex assembly programs and is a theoretically viable target for C compilers. It is simpler than x86 assembly but has many features similar to those in more complex languages. These features make it useful for teaching basic programming and computer architecture to beginning college computer science, and computer engineering students, which is its most common use.
* ''
DLX'' is a
reduced instruction set computer
In computer engineering, a reduced instruction set computer (RISC) is a computer designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a complex instruction set compu ...
(RISC) processor architecture by the main designers of the
MIPS and the
Berkeley RISC
Berkeley RISC is one of two seminal research projects into reduced instruction set computer (RISC) based microprocessor design taking place under the Defense Advanced Research Projects Agency '' Very Large Scale Integration'' (VLSI) VLSI Project. ...
designs, two benchmark examples of RISC design. DLX is essentially a cleaned up, simplified MIPS, with a simple 32-bit load/store architecture. It is widely used in
college
A college ( Latin: ''collegium'') is an educational institution or a constituent part of one. A college may be a degree-awarding tertiary educational institution, a part of a collegiate or federal university, an institution offering ...
-level computer architecture courses.
* ''
MIX
Mix, mixes or mixing may refer to:
Persons & places
* Mix (surname)
** Tom Mix (1880-1940), American film star
* nickname of Mix Diskerud (born Mikkel, 1990), Norwegian-American soccer player
* Mix camp, an informal settlement in Namibia
* ...
'' and ''
MMIX
MMIX (pronounced ''em-mix'') is a 64-bit reduced instruction set computing (RISC) architecture designed by Donald Knuth, with significant contributions by John L. Hennessy (who contributed to the design of the MIPS architecture) and Richard L. ...
'' are hypothetical computers used in
Donald Knuth
Donald Ervin Knuth ( ; born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of computer ...
's monograph, ''
The Art of Computer Programming
''The Art of Computer Programming'' (''TAOCP'') is a comprehensive monograph written by the computer scientist Donald Knuth presenting programming algorithms and their analysis. Volumes 1–5 are intended to represent the central core of comp ...
'' (''TAOCP''). Paraphrasing Knuth: ''The MIX systems are computers intended to illustrate machine-level aspects of programming, so its machine language is simple, elegant, easy to learn. It also includes all the complexities needed for high performance in practice, so in principle it can be built and perhaps be competitive with some of the fast general-purpose computers.'' MIX is hybrid programmable in
binary
Binary may refer to:
Science and technology Mathematics
* Binary number, a representation of numbers using only two digits (0 and 1)
* Binary function, a function that takes two arguments
* Binary operation, a mathematical operation that ta ...
and
decimal numbers; most programs written for it will work using either form. Software implementations for MIX and MMIX have been developed by Knuth and made freely available. Several versions of both emulators exist. MIX is a 1960s-style computer. It is superseded by MMIX, a newer modern computer architecture, a
64-bit
In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit CPUs and ALUs are those that are based on processor registers, address buses, or data buses of that size. A comp ...
RISC
In computer engineering, a reduced instruction set computer (RISC) is a computer designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a complex instruction set compu ...
instruction set
In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called a ...
architecture (ISA). For MMIX, Knuth collaborated with the architects of the
MIPS and
Alpha ISAs.
BASIC variants
''
BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
'' (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
microcomputer
A microcomputer is a small, relatively inexpensive computer having a central processing unit (CPU) made out of a microprocessor. The computer also includes memory and input/output (I/O) circuitry together mounted on a printed circuit board (P ...
s during the late 1970s and early 1980s. The goals of BASIC were focused on the needs of learning to program easily: be easy for beginners to use, be interactive, provide clear and friendly error messages, respond quickly, do not require an understanding of computer hardware or operating systems. What made BASIC particularly useful for education was the small size of programs. Useful programs to illustrate a concept could be written in a dozen lines. At the same time BASIC did not require mathematical or computer science sophistication. BASIC continues to this day to be frequently self-taught with excellent tutorials and implementations. See
List of BASIC dialects by platform for a complete list. BASIC offers a learning path from learning oriented BASICs such as
Microsoft Small Basic
Microsoft Small Basic is a programming language, interpreter and associated IDE. Microsoft's simplified variant of BASIC, it is designed to help students who have learnt visual programming languages such as Scratch learn text-based programming ...
,
BASIC-256 and
SiMPLE
Simple or SIMPLE may refer to:
* Simplicity, the state or quality of being simple
Arts and entertainment
* ''Simple'' (album), by Andy Yorke, 2008, and its title track
* "Simple" (Florida Georgia Line song), 2018
* "Simple", a song by John ...
, to more full featured BASICs like
Visual Basic .NET
Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Vi ...
and
Gambas
Gambas is the name of an object-oriented dialect of the BASIC programming language, as well as the integrated development environment that accompanies it. Designed to run on Linux and other Unix-like computer operating systems, its name is a re ...
.
* ''
Microsoft Small Basic
Microsoft Small Basic is a programming language, interpreter and associated IDE. Microsoft's simplified variant of BASIC, it is designed to help students who have learnt visual programming languages such as Scratch learn text-based programming ...
'' is a restricted version of Visual Basic designed as a first language, "aimed at bringing 'fun' back to programming". The language is explicitly quite small with only 15 intuitive keywords. By including object specific libraries for things of general interest to children, children can create entertaining, interactive programs, on the net or on the desktop. For example, with 6 lines of code, it is possible to demonstrate a random network image viewer using
Flickr
Flickr ( ; ) is an American image hosting and video hosting service, as well as an online community, founded in Canada and headquartered in the United States. It was created by Ludicorp in 2004 and was a popular way for amateur and professiona ...
as the source. The system utilizes the
Microsoft Visual Studio
Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platfor ...
IDE to provide
autocompletion
Autocomplete, or word completion, is a feature in which an application predicts the rest of a word a user is typing. In Android and iOS smartphones, this is called predictive text. In graphical user interfaces, users can typically press the tab ...
and
context sensitive help.
* ''
Basic-256'' an easy to use version of BASIC designed to teach anybody the basics of computer programming. It uses traditional BASIC control structures (
gosub
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
,
for loop
In computer science a for-loop or for loop is a control flow statement for specifying iteration. Specifically, a for loop functions by running a section of code repeatedly until a certain condition has been satisfied.
For-loops have two par ...
s,
goto
GoTo (goto, GOTO, GO TO or other case combinations, depending on the programming language) is a statement found in many computer programming languages. It performs a one-way transfer of control to another line of code; in contrast a function c ...
) for ease of understanding program flow-control. It has a built-in graphics mode that allows children to draw pictures on screen after minutes. It includes tutorials that introduce programming concepts through fun exercises.
* ''
SiMPLE
Simple or SIMPLE may refer to:
* Simplicity, the state or quality of being simple
Arts and entertainment
* ''Simple'' (album), by Andy Yorke, 2008, and its title track
* "Simple" (Florida Georgia Line song), 2018
* "Simple", a song by John ...
'' is a programming development system that was created to provide easy programming abilities for everybody, especially non-professionals. It is somewhat like AppleSoft
BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
. It is compiled and lets users make their own libraries of often-used functions. "Simple" is a generic term for three slightly different versions of the language: Micro-SIMPLE to use only 4 keywords, Pro-SiMPLE, and Ultra-SiMPLE to use 23 keywords.
* ''
Hot Soup Processor
Hot Soup Processor is a programming language from Japan that was originally developed in 1994. It was originally based on BASIC, but has diverged significantly from those roots over the years. It is freeware as of 1996, and now is open source ( ...
'' is a BASIC-derived language used in Japanese schools.
* ''
TI-BASIC
TI-BASIC is the official name of a BASIC-like language built into Texas Instruments (TI)'s graphing calculators.
TI-BASIC is a language family of three different and incompatible versions, released on different products:
* TI-BASIC 83 (on Z80 ...
'' is a simple BASIC-like language implemented in Texas Instruments graphing calculators, often serving as a students' first look at programming.
* ''
SmallBASIC'' fast and easy to learn BASIC language interpreter ideal for everyday calculations, scripts and prototypes. It includes trigonometric, matrix, and algebra functions, a built in IDE, a powerful string library, system, sound, and graphic commands, and a structured programming syntax.
C based
* ''
Ch'' is a C/C++ interpreter designed to help non-CS students to learn math, computing and programming in C and C++. It extends C with numerical, 2D/3D graphical plotting and scripting features.
Java-based
* ''
NetLogo
NetLogo is a programming language and integrated development environment (IDE) for agent-based modeling.
About
NetLogo was designed by Uri Wilensky, in the spirit of the programming language Logo, to be "low threshold and no ceiling". It teaches ...
,'' written in Java and Scala, is a development environment for building and exploring scientific models, specifically agent-based models. It is in widespread use both in science researc
(Science papers using NetLogo)and in educational contexts, including elementary, secondary schools, universities and museums.
Lisp-based
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lispi ...
is the second oldest family of programming languages in use today, and as such has
many of
dialects
The term dialect (from Latin , , from the Ancient Greek word , 'discourse', from , 'through' and , 'I speak') can refer to either of two distinctly different types of linguistic phenomena:
One usage refers to a variety of a language that is ...
and implementations at a wide range of difficulties. Lisp was originally created as a practical mathematical notation for computer programs, based on
lambda calculus
Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation t ...
, which makes it particularly well suited for teaching theories of computing. As one of the earliest languages, Lisp pioneered many ideas in
computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includin ...
, including
tree data structure
In computer science, a tree is a widely used abstract data type that represents a hierarchical tree structure with a set of connected nodes. Each node in the tree can be connected to many children (depending on the type of tree), but must be con ...
s,
automatic storage management,
dynamic typing
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer progra ...
,
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
, and the
self-hosting compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
all of which are useful for learning computer science.
The name ''LISP'' derives from "LISt Processing language".
Linked list
In computer science, a linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each element points to the next. It is a data structure consisting of a collection of nodes whi ...
s are one of the languages' major
data structure
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the rel ...
s, and Lisp
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
is made of lists. Thus, Lisp programs can manipulate source code as a data structure, giving rise to the
macro
Macro (or MACRO) may refer to:
Science and technology
* Macroscopic, subjects visible to the eye
* Macro photography, a type of close-up photography
* Image macro, a picture with text superimposed
* Monopole, Astrophysics and Cosmic Ray Observat ...
systems that allow programmers to create new syntax or even new
domain-specific languages embedded in Lisp. So 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
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fr ...
.
* ''
Logo
A logo (abbreviation of logotype; ) is a graphic mark, emblem, or symbol used to aid and promote public identification and recognition. It may be of an abstract or figurative design or include the text of the name it represents as in a wordm ...
'' is a language that was specifically designed to introduce children to programming. The first part of learning Logo deals with "turtle graphics" (derived from
turtle robots) used as early as 1969 with proto-Logo. In modern implementations, an abstract drawing device, called the ''turtle'', is used to make programming for children very attractive by concentrating on doing
turtle graphics
In computer graphics, turtle graphics are vector graphics using a relative cursor (the " turtle") upon a Cartesian plane (x and y axis). Turtle graphics is a key feature of the Logo programming language.
Overview
The turtle has three attri ...
.
Seymour Papert
Seymour Aubrey Papert (; 29 February 1928 – 31 July 2016) 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 artifici ...
, one of the creators of Logo, was a major thinker in
constructionism, a variety of
constructivist learning theory. Papert argued that activities like writing would naturally be learned by much younger children providing that they adopted a computing culture.
Logo was thus designed not only to teach programming, and computing concepts, but to enhance a child's entire well being in a culture increasingly dominated by technology, "''more important than having an early start on intellectual building, is being saved from a long period of dependency during which one learns to think of learning as something that has to be dished out by a more powerful other...Such children would not define themselves or allow society to define them as intellectually helpless.''"
It has been used with children as young as 3 and has a track record of 30 years of success in education. Since Logo is actually a streamlined version of
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lispi ...
with more advanced students it can be used to introduce the basic concepts of computer science and even artificial intelligence. Logo is widely available on virtually every platform, in both free and commercial versions.
Scala-based
* ''
Kojo Kojo may refer to:
* ''King Kojo'', a novel by Ruth Plumly Thompson
* KOJO (company), Australian entertainment company which supported the Adelaide Film Festival#Indigenous Feature Documentary Initiative
* KOJO (FM), a radio station (91.1 FM) lic ...
'' is an interactive desktop development environment developed primarily for educational purposes application that runs on Windows, Linux, and OS X. It is a learning environment, with many different features that help with the exploration, learning, and teaching of concepts in the areas of computer programming and critical thinking, math and science, art, music, and creative thinking, computer and internet literacy.
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
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 ...
to any
Smalltalk
Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by ...
.
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 are fully featured application development languages that have been around and well respected for decades; Scratch is a children's learning tool.
* ''
Scratch'' is a visual language based on and implemented in
Squeak
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 ...
. It has the goal of teaching programming concepts to children and letting them create games, videos, and music. In Scratch, all the interactive objects, graphics, and sounds can be easily imported to a new program and combined in new ways. That way, beginners can get quick results and be motivated to try further. The Scratch community has developed and uploaded over 3,000,000 projects. It is developed by the Lifelong Kindergarten group at
MIT Media Lab
The MIT Media Lab is a research laboratory at the Massachusetts Institute of Technology, growing out of MIT's Architecture Machine Group in the School of Architecture. Its research does not restrict to fixed academic disciplines, but draws from ...
.
* ''
Etoys EToy or EToys may refer to:
* Etoy, Switzerland, a small town
* Etoys (programming language), an educational programming language
* eToys.com, a Dot-com era company/website
* etoy, a conceptual art group
* Electronic toys, typically built for ...
'' is based on the idea of programmable
virtual entities behaving on the computer screen. Etoys provides a media-rich authoring environment with a simple, powerful scripted object model for many kinds of objects created by end-users. It includes
2D and
3D graphics
Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of data, as in design and manufacture, ...
,
image
An image is a visual representation of something. It can be two-dimensional, three-dimensional, or somehow otherwise feed into the visual system to convey information. An image can be an artifact, such as a photograph or other two-dimensio ...
s,
text
Text may refer to:
Written word
* Text (literary theory), any object that can be read, including:
**Religious text, a writing that a religious tradition considers to be sacred
**Text, a verse or passage from scripture used in expository preachin ...
, particles, presentations, web-pages,
video
Video is an Electronics, electronic medium for the recording, copying, playback, broadcasting, and display of moving picture, moving image, visual Media (communication), media. Video was first developed for mechanical television systems, whi ...
s, sound and
MIDI
MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, an ...
, the ability to share desktops with other Etoy users in
real-time
Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
, so many forms of immersive
mentoring
Mentorship is the influence, guidance, or direction given by a mentor. A mentor is someone who teaches or gives help and advice to a less experienced and often younger person. In an organizational setting, a mentor influences the personal and p ...
and play can be done over the
Internet
The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a ''internetworking, network of networks'' that consists ...
. It is
multilingual
Multilingualism is the use of more than one language, either by an individual speaker or by a group of speakers. It is believed that multilingual speakers outnumber monolingual speakers in the world's population. More than half of all E ...
, and has been used successfully in
United States
The United States of America (U.S.A. or USA), commonly known as the United States (U.S. or US) or America, is a country primarily located in North America. It consists of 50 U.S. state, states, a Washington, D.C., federal district, five ma ...
,
Europe
Europe is a large peninsula conventionally considered a continent in its own right because of its great physical size and the weight of its history and traditions. Europe is also considered a subcontinent of Eurasia and it is located enti ...
,
South America
South America is a continent entirely in the Western Hemisphere and mostly in the Southern Hemisphere, with a relatively small portion in the Northern Hemisphere at the northern tip of the continent. It can also be described as the souther ...
,
Japan,
Korea
Korea ( ko, 한국, or , ) is a peninsular region in East Asia. Since 1945, it has been divided at or near the 38th parallel, with North Korea (Democratic People's Republic of Korea) comprising its northern half and South Korea (Republi ...
,
India
India, officially the Republic of India ( Hindi: ), is a country in South Asia. It is the seventh-largest country by area, the second-most populous country, and the most populous democracy in the world. Bounded by the Indian Ocean on the ...
,
Nepal
Nepal (; ne, नेपाल ), formerly the Federal Democratic Republic of Nepal ( ne,
सङ्घीय लोकतान्त्रिक गणतन्त्र नेपाल ), is a landlocked country in South Asia. It is ma ...
, and elsewhere. The program is aimed at children 9-12.
*''
Squeak
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 ...
'' is a modern, open source, full-featured implementation of the Smalltalk language and environment. Smalltalk is an
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
,
dynamically typed
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer program ...
,
reflective
Reflection is the change in direction of a wavefront at an interface between two different media so that the wavefront returns into the medium from which it originated. Common examples include the reflection of light, sound and water waves. The ' ...
language created to underpin the "new world" of computing exemplified by "human–computer symbiosis".
Like
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lispi ...
, it has
image-based persistence, so everything is modifiable from within the language itself (see
Smalltalk#Reflection). It has greatly influenced the industry introducing many of the concepts in object-oriented programming and
just-in-time compilation
In computing, just-in-time (JIT) compilation (also dynamic translation or run-time compilations) is a way of executing computer code that involves compiler, compilation during execution of a program (at run time (program lifecycle phase), run tim ...
. Squeak is the vehicle for a wide range of projects including multimedia applications, educational platforms and commercial
web application
A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection.
History
In earlier computing models like client-serve ...
development. Squeak is designed to be highly portable and easy to debug, analyze, and change, as its virtual machine is written fully in Smalltalk.
Pascal
* ''
Pascal'' is the most well-known language that was designed with education in mind. From the late 1970s to the late 1980s, it was the primary choice in introductory computer science classes for teaching students programming in both the US and Europe. Its use for real-world applications has since increased, and regarding it as a purely educational language has since become somewhat controversial.
Other
* ''
CircuitPython
CircuitPython is an open-source derivative of the MicroPython programming language targeted toward students and beginners. Development of CircuitPython is supported by Adafruit Industries. It is a software implementation of the Python 3 program ...
'' is a beginner-oriented version of
Python for interactive electronics and education.
*''
Rapira'' is an
ALGOL
ALGOL (; short for "Algorithmic Language") is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by th ...
-like
procedural programming
Procedural programming is a programming paradigm, derived from imperative programming, based on the concept of the '' procedure call''. Procedures (a type of routine or subroutine) simply contain a series of computational steps to be carri ...
language, with a simple
interactive development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools and ...
, developed in the
Soviet Union
The Soviet Union,. officially the Union of Soviet Socialist Republics. (USSR),. was a List of former transcontinental countries#Since 1700, transcontinental country that spanned much of Eurasia from 1922 to 1991. A flagship communist state, ...
to teach programming in schools.
* ''
Src:Card'' is a tactile offline programming language embedded in an educational
card game
A card game is any game using playing cards as the primary device with which the game is played, be they traditional or game-specific.
Countless card games exist, including families of related games (such as poker). A small number of card g ...
.
Children
* ''
AgentSheets
AgentSheets was one of the first modern block-based programming language for kids. The idea of AgentSheets was to overcome syntactic challenges found in common text-based programming languages by using drag and drop mechanisms conceptualizing com ...
'' and ''
AgentCubes'' are two computational thinking tools to author 2D/3D games and simulations. Authoring takes place through desktop applications or browser based apps and can create 2D/3D games playable in HTML5 compliant browsers including mobile ones.
* ''
Alice
Alice may refer to:
* Alice (name), most often a feminine given name, but also used as a surname
Literature
* Alice (''Alice's Adventures in Wonderland''), a character in books by Lewis Carroll
* ''Alice'' series, children's and teen books by ...
'' is a free programming software designed to teach event-driven object-oriented programming to children. Programmers create interactive stories using a modern IDE interface with a drag and drop style of programming. The target audience is incoming college freshmen although most children with computer experience will find it entertaining and educational. Story Telling Alice is an Alice variant designed for younger children, with an even stronger story telling bent.
* ''
Blockly
Blockly is a client-side library for the programming language JavaScript for creating block-based visual programming languages (VPLs) and editors. A project of Google, it is free and open-source software released under the Apache License 2.0. It ...
'' is an open source web-based, graphical language where users can drag blocks together to build an application; no typing needed. It is developed by
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
. More information is available at the project home page.
* ''
CiMPLE
CiMPLE is a visual programming language that tries to visually mimic procedural languages like C (programming language), C/C++.
Created by robo.in, a venture by Indian Institute of Technology Bombay alumni, using C++ on a Qt (framework), Qt 4.+ c ...
'' is a visual language for programming robotic kit for children. It is built atop C as a DSL. ThinkLabs an Indian Robotics education based startup has built it for iPitara Robotic kit. The language bears strong resemblance to the C language. Approximately 5000+ students in India have bought the iPitara kit and programmed it using CiMPLE. More information is at CiMPLE Original Developers Weblog and ThinkLabs.
* ''
Physical Etoys'' is a free open-source extension of Etoys. Its philosophy is "help kids model and program the real world in order to learn more about it". It can run on Windows, Linux and Sugar. Physical Etoys lets different electronic devices such as Lego NXT, Arduino boards, Sphero, Kinect, Wiimote joystick, among others, be easily programmed and interact between themselves due to its block scripting system. Its perfect for the educational curricula.
* ''
Hackety Hack'' is a free
Ruby
A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum (aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapp ...
-based environment aiming to make learning
programming easy for beginners, especially teenagers.
* ''
Karel
Karel may refer to:
People
* Karel (given name)
* Karel (surname)
* Charles Karel Bouley, talk radio personality known on air as Karel
* Christiaan Karel Appel, Dutch painter
Business
* Karel Electronics, a Turkish electronics manufacturer
* Gr ...
'', ''Karel++'', and ''Karel J. Robot'' are languages aimed at absolute beginners, used to control a simple robot in a city consisting of a rectangular grid of streets. While Karel is its own language, Karel++ is a version of Karel implemented in
C++, while Karel J. Robot is a version of Karel implemented in
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
.
* ''
Kodu
Kodu Game Lab, originally named ''Boku'', is a programming integrated development environment (IDE) by Microsoft's FUSE Labs. It runs on Xbox 360 and Microsoft Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10 And Windows 11. It was ...
'' is a language that is simple and entirely icon-based. It was incubated out of Microsoft Research as a project to reach younger children and especially girls into enjoying technology. Programs are composed of pages, which are divided into rules, which are further divided into conditions and actions. Conditions are evaluated simultaneously. The Kodu language is designed specifically for game development and provides specialized primitives derived from gaming scenarios. Programs are expressed in physical terms, using concepts like vision, hearing, and time to control character behavior. While not as general-purpose as classical programming languages, Kodu can express advanced game design concepts in a simple, direct, and intuitive manner. The Kodu tool is available in three forms: PC as a free download in public beta and academic forms, and as a low-cost Xbox 360 Live download.
* ''
Logo
A logo (abbreviation of logotype; ) is a graphic mark, emblem, or symbol used to aid and promote public identification and recognition. It may be of an abstract or figurative design or include the text of the name it represents as in a wordm ...
'' is an educational language for children, designed in 1967 by
Daniel G. Bobrow,
Wally Feurzeig
Wallace "Wally" Feurzeig (June 10, 1927 – January 4, 2013) was an American computer scientist who was co-inventor, with Seymour Papert and Cynthia Solomon, of the programming language Logo, and a well-known researcher in artificial intelli ...
,
Seymour Papert
Seymour Aubrey Papert (; 29 February 1928 – 31 July 2016) 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 artifici ...
and
Cynthia Solomon
Cynthia Solomon is an American computer scientist known for her work in artificial intelligence (AI) and popularizing computer science for students. She is a pioneer in the fields of artificial intelligence, computer science, and educational c ...
. Today the language is remembered mainly for its use of "
turtle graphics
In computer graphics, turtle graphics are vector graphics using a relative cursor (the " turtle") upon a Cartesian plane (x and y axis). Turtle graphics is a key feature of the Logo programming language.
Overview
The turtle has three attri ...
", in which commands for movement and drawing produced
line graphics either on screen or with a small robot called a "
turtle
Turtles are an order of reptiles known as Testudines, characterized by a special shell developed mainly from their ribs. Modern turtles are divided into two major groups, the Pleurodira (side necked turtles) and Cryptodira (hidden necked ...
". The language was originally conceived to teach concepts of programming related to
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lispi ...
and only later to enable what Papert called ''"
body-syntonic reasoning"'' where students could understand (and predict and reason about) the turtle's motion by imagining what they would do if they were the turtle.
* ''
Lego Mindstorms
Lego Mindstorms is a hardware and software structure which develops programmable robots based on Lego building blocks. Each version includes computer Lego bricks, a set of modular sensors and motors, and Lego parts from the Technic line to ...
'' is a line of Lego sets combining programmable bricks with electric motors, sensors, Lego bricks, and Lego Technic pieces (such as gears, axles, and beams). Mindstorms originated from the programmable sensor blocks used in the line of educational toys. The first retail version of Lego Mindstorms was released in 1998 and marketed commercially as the Robotics Invention System (RIS). The current version was released in 2006 as Lego Mindstorms NXT. A wide
range of programming languages is used for the mindstorms from Logo to BASIC to derivatives of Java, Smalltalk and C. The Mindstorm approach to programming now have dedicated physical sites called
Computer Clubhouses.
*''
Mama
Mama(s) or Mamma or Momma may refer to:
Roles
*Mother, a female parent
* Mama-san, in Japan and East Asia, a woman in a position of authority
*Mamas, a name for female associates of the Hells Angels
Places
*Mama, Russia, an urban-type settlement ...
'' is an educational
object oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
language designed to help young students start programming by providing all the language elements in the student mother tongue. Mama language is available in several languages, with both LTR and RTL language direction support.
new variant of Mamawas built atop
Carnegie Mellon
Carnegie may refer to:
People
* Carnegie (surname), including a list of people with the name
* Clan Carnegie, a lowland Scottish clan
Institutions Named for Andrew Carnegie
*Carnegie Building (Troy, New York), on the campus of Rensselaer Polyt ...
's ''
Alice
Alice may refer to:
* Alice (name), most often a feminine given name, but also used as a surname
Literature
* Alice (''Alice's Adventures in Wonderland''), a character in books by Lewis Carroll
* ''Alice'' series, children's and teen books by ...
'' development environment, supporting scripting of the 3D stage objects. This new variant of Mama was designed to help young students start programming by building 3D animations and games. A document on educational programming principles explains Mama's design considerations.
* ''
RoboMind'' is a simple educational programming environment that lets beginners program a robot. It introduces popular programming techniques and also some robotics and artificial intelligence. The robot can be programmed in Arabic, Chinese, Dutch, German, English and Swedish.
*''
Scratch'' is a blocks-based graphical language to create animated stories and games.
* ''
Snap!
Snap! is a German Eurodance group formed in 1989 by producers Michael Münzing and Luca Anzilotti. The act has been through a number of line-up changes over the years, including American singers, songwriters and rappers Thea Austin, Turbo B, N ...
'' is a free
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
blocks-based graphical language implemented in
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
and originally derived
MIT
The Massachusetts Institute of Technology (MIT) is a private land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern technology and science, and is one of the ...
's
Scratch. Snap! adds the ability to create new blocks and has
first-class functions
In computer science, a programming language is said to have first-class functions if it treats functions as first-class citizens. This means the language supports passing functions as arguments to other functions, returning them as the values from ...
that enables the use of
anonymous functions
In computer programming, an anonymous function (function literal, lambda abstraction, lambda function, lambda expression or block) is a function definition that is not bound to an identifier. Anonymous functions are often arguments being passed t ...
. It is actively maintained by
UC Berkeley
The University of California, Berkeley (UC Berkeley, Berkeley, Cal, or California) is a public university, public land-grant university, land-grant research university in Berkeley, California. Established in 1868 as the University of Californi ...
. Th
sourceis entirely hosted on
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
.
* ''
Stagecast Creator'' is a visual programming system based on
programming by demonstration
In computer science, programming by demonstration (PbD) is an end-user development technique for teaching a computer or a robot new behaviors by demonstrating the task to transfer directly instead of programming it through machine commands.
The te ...
. Users demonstrate to the system what to do by moving icons on the screen, and it generates rules for the objects (characters). Users can create two-dimensional simulations that model a concept, multi-level games, interactive stories, etc.
* ''
Stencyl
Stencyl is a video game development tool that allows users to create 2D video games for computers, mobile devices, and the web. The software is available for free, with select publishing options available for purchase. The software was originally ...
'' is a visual programming and game development IDE that has been used for education and commerce. The concept it uses of ''code blocks'' is based on
MIT
The Massachusetts Institute of Technology (MIT) is a private land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern technology and science, and is one of the ...
's
Scratch visual language (listed above). It also permits the use of ''normal'' typed code (separate or intermingled) through its own API and the
Haxe
Haxe is an open source high-level cross-platform programming language and compiler that can produce applications and source code, for many different computing platforms from one code-base. It is free and open-source software, released under the ...
language.
* ''
ToonTalk'' is a language and environment that looks like a video game. Computational abstractions are mapped to concrete analogs such robots, houses, trucks, birds, nests, and boxes. It supports big integers and exact rational numbers. It is based upon
concurrent constraint programming.
University
* ''
Curry
A curry is a dish with a sauce seasoned with spices, mainly associated with South Asian cuisine. In southern India, leaves from the curry tree may be included.
There are many varieties of curry. The choice of spices for each dish in trad ...
'' is a teaching language designed to amalgamate the most important declarative programming paradigms, namely functional programming (nested expressions, higher-order functions, lazy evaluation) and
logic programming
Logic programming is a programming paradigm which is largely based on formal logic
Logic is the study of correct reasoning. It includes both formal and informal logic. Formal logic is the science of deductively valid inferences or of log ...
(logical variables, partial data structures, built-in search). It also integrates the two most import operational principles developed in the area of integrated functional logic languages: "residuation" and "narrowing".
* ''
Flowgorithm'' is a graphical
authoring tool
An authoring system is a program that has pre-programmed elements for the development of interactive multimedia software titles. Authoring systems can be defined as software that allows its user to create multimedia applications for manipulating m ...
for writing and executing programs via
flowchart
A flowchart is a type of diagram that represents a workflow or process. A flowchart can also be defined as a diagrammatic representation of an algorithm, a step-by-step approach to solving a task.
The flowchart shows the steps as boxes of va ...
s. The approach is designed to emphasize the algorithm rather than the syntax of a given language. The flowchart can be converted to several major languages such as
C#,
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
,
Visual Basic .NET
Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Vi ...
and
Python.
* ''
M2001
M, or m, is the thirteenth letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''em'' (pronounced ), plural ''ems''.
History
...
'' is a
modular
Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a s ...
mathematical language for developing and presenting mathematical algorithms, from modern discrete to classical continuous mathematics. It is built on a semantic framework based in category theory, with a syntax similar to that of Pascal or
Modula-2
Modula-2 is a structured, procedural programming language developed between 1977 and 1985/8 by Niklaus Wirth at ETH Zurich. It was created as the language for the operating system and application software of the Lilith personal workstation. It w ...
. It is designed for education only, so efficiency and ease of implementation are far less vital in its development than generality and range of application. It was created to play a strong role in forming a formal algorithmic foundation for first-year college math students.
* ''
Oz'' is a language designed to teach computer theory. It supports most major paradigms
Programming Paradigms
poster in one language so that students can learn paradigms without having to learn multiple syntaxes. Oz contains in a simple and well-factored way, most of the concepts of the major programming paradigms, including logic, functional (both lazy and eager), imperative, object-oriented, constraint, distributed, and concurrent programming. It has a canonical textbook Concepts, Techniques, and Models of Computer Programming and a freely available standard implementation, the Mozart Programming System.
See also
* :Programming language comparisons
* Sugar – a GUI designed for constructive learning
* Design by numbers
* Processing
Processing is a free graphical library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming ...
– a language dedicated to artwork
References
External links
*
{{DEFAULTSORT:Educational programming languages
*
Programming language classification
Lists of programming languages