fbpx
Wikipedia

List of educational programming languages

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 edit

Assembly languages edit

Originally, machine code 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. 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.

  • Little Man Computer (LMC) is an instructional model of a simple von Neumann architecture computer with all the 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, 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 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 (RISC) processor architecture by the main designers of the MIPS and the Berkeley RISC 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-level computer architecture courses.
  • MIX and MMIX are hypothetical computers used in Donald Knuth's monograph, The Art of Computer Programming (TAOCP). The MIX computer systems are designed to educate individuals about what goes inside a computer through its use of a basic and comprehensible machine language. Despite its simplicity, the MIX system handles complex tasks that are found in typical high-performance general-purpose computers. MIX is a hybrid programmable in binary 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 RISC instruction set architecture (ISA). For MMIX, Knuth collaborated with the architects of the MIPS and Alpha ISAs.

BASIC variants edit

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:

  • be easy for beginners to use,
  • be interactive,
  • provide clear and friendly error messages,
  • respond quickly, and
  • do not require an understanding of computer hardware or operating systems.

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.

  • Microsoft Small Basic 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 as the source.[1] The system utilizes the Microsoft Visual Studio IDE to provide auto-completion 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, for loops, goto) for ease of understanding program flow control. It has a built-in graphics mode that allows children to draw pictures on the screen after minutes.
  • SiMPLE is a programming development system that was created to provide easy programming abilities for everybody, especially non-professionals. It is somewhat like AppleSoft BASIC. 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 (uses only 4 keywords), Pro-SiMPLE, and Ultra-SiMPLE (using 23 keywords).
  • Hot Soup Processor is a BASIC-derived language used in Japanese schools.
  • TI-BASIC is a simple BASIC-like language implemented in Texas Instruments graphing calculators, often serving as a student's first look at programming.
  • SmallBASIC is a 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 edit

  • 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 edit

  • NetLogo, 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 research (Science papers using NetLogo) and in educational contexts, including elementary, secondary schools, universities and museums.

Lisp-based edit

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.

  • Logo 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. Seymour Papert, one of the creators of Logo, was a major thinker in constructionism, a variety of constructivist learning theories. Papert argued that activities like writing would naturally be learned by much younger children provided that they adopted a computing culture.[2] 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."[2] It has been used by children as young as 3 years old and has a track record of 30 years of success in education. Since Logo is actually a streamlined version of Lisp 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 edit

  • Kojo 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.[3]

Smalltalk-based edit

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.

  • Scratch is a visual language based on and implemented in Squeak. 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.[5] It is developed by the Lifelong Kindergarten group at MIT Media Lab.
  • Etoys 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, images, text, particles, presentations, web pages, videos, sound and MIDI, the ability to share desktops with other Etoy users in real-time, so many forms of immersive mentoring and play can be done over the Internet. It is multilingual and has been used successfully in United States, Europe, South America, Japan, Korea, India, Nepal, and elsewhere. The program is aimed at children between the ages of 9-12.[6]
  • Squeak is a modern, open-source, full-featured implementation of the Smalltalk language and environment. Smalltalk is an object-oriented, dynamically typed, reflective language created to underpin the "new world" of computing exemplified by "human-computer symbiosis".[7] Like Lisp, it has image-based persistence, so everything is modifiable from within the language itself (see Smalltalk#Reflection).[8] It has greatly influenced the industry introducing many of the concepts in object-oriented programming and just-in-time compilation. Squeak is the vehicle for a wide range of projects including multimedia applications, educational platforms and commercial web application 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 edit

  • Pascal is the most well-known language that was designed with education in mind.[citation needed] 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.[according to whom?]

Other edit

Children edit

  • AgentSheets 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 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.[9]
  • Blockly is an open-source web-based, graphical language where users can drag blocks together to build an application; no typing is required. It is developed by Google. More information is available at the project home page.[10]
  • CiMPLE 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[11] and ThinkLabs.[12]
  • 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, interact between themselves due to its block scripting system.
  • Hackety Hack is a free Ruby-based environment aiming to make learning programming easy for beginners, especially teenagers[citation needed].
  • Karel, Karel++, and Karel J. Robot are languages aimed at 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.
  • Kodu 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. 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 is an educational language for children, designed in 1967 by Daniel G. Bobrow, Wally Feurzeig, Seymour Papert and Cynthia Solomon. Today the language is remembered mainly for its use of "turtle graphics", in which commands for movement and drawing produced line graphics either on screen or with a small robot called a "turtle". The language was originally conceived to teach concepts of programming related to Lisp 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 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 is an educational object oriented 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. A new variant of Mama was built atop Carnegie Mellon's Alice 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.[13]
  • 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! is a free open-source blocks-based graphical language implemented in JavaScript and originally derived MIT's Scratch. Snap! adds the ability to create new blocks and has first-class functions that enables the use of anonymous functions. It is actively maintained by UC Berkeley. The source is entirely hosted on GitHub.
  • Stagecast Creator is a visual programming system based on programming by demonstration. 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 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'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 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 edit

  • Curry is a teaching language[14] designed to amalgamate the most important declarative programming paradigms, namely functional programming (nested expressions, higher-order functions, lazy evaluation) and logic programming (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".[15][16]
  • Flowgorithm is a graphical authoring tool for writing and executing programs via flowcharts. 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, Visual Basic .NET and Python.[17]
  • M2001 is a modular 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. 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[18] 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 edit

References edit

  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. . 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 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 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

External links edit

  • Educational programming languages at Curlie

list, educational, programming, languages, this, article, multiple, issues, please, help, improve, discuss, these, issues, talk, page, learn, when, remove, these, template, messages, this, article, needs, additional, citations, verification, please, help, impr. This article has multiple issues Please help improve it or discuss these issues on the talk page Learn how and when to remove these template messages This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources List of educational programming languages news newspapers books scholar JSTOR January 2013 Learn how and when to remove this template message This article contains wording that promotes the subject in a subjective manner without imparting real information Please remove or replace such wording and instead of making proclamations about a subject s importance use facts and attribution to demonstrate that importance February 2019 Learn how and when to remove this template message Learn how and when to remove this template message 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 1 Types of educational programming languages 1 1 Assembly languages 1 2 BASIC variants 1 3 C based 1 4 Java based 1 5 Lisp based 1 6 Scala based 1 7 Smalltalk based 1 8 Pascal 1 9 Other 2 Children 3 University 4 See also 5 References 6 External linksTypes of educational programming languages editAssembly languages edit Originally machine code 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 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 Little Man Computer LMC is an instructional model of a simple von Neumann architecture computer with all the 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 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 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 RISC processor architecture by the main designers of the MIPS and the Berkeley RISC 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 level computer architecture courses MIX and MMIX are hypothetical computers used in Donald Knuth s monograph The Art of Computer Programming TAOCP The MIX computer systems are designed to educate individuals about what goes inside a computer through its use of a basic and comprehensible machine language Despite its simplicity the MIX system handles complex tasks that are found in typical high performance general purpose computers MIX is a hybrid programmable in binary 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 RISC instruction set architecture ISA For MMIX Knuth collaborated with the architects of the MIPS and Alpha ISAs BASIC variants edit 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 be easy for beginners to use be interactive provide clear and friendly error messages respond quickly and do not require an understanding of computer hardware or operating systems 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 Microsoft Small Basic 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 as the source 1 The system utilizes the Microsoft Visual Studio IDE to provide auto completion 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 for loops goto for ease of understanding program flow control It has a built in graphics mode that allows children to draw pictures on the screen after minutes SiMPLE is a programming development system that was created to provide easy programming abilities for everybody especially non professionals It is somewhat like AppleSoft BASIC 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 uses only 4 keywords Pro SiMPLE and Ultra SiMPLE using 23 keywords Hot Soup Processor is a BASIC derived language used in Japanese schools TI BASIC is a simple BASIC like language implemented in Texas Instruments graphing calculators often serving as a student s first look at programming SmallBASIC is a 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 edit 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 edit NetLogo 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 research Science papers using NetLogo and in educational contexts including elementary secondary schools universities and museums Lisp based edit 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 Logo 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 Seymour Papert one of the creators of Logo was a major thinker in constructionism a variety of constructivist learning theories Papert argued that activities like writing would naturally be learned by much younger children provided that they adopted a computing culture 2 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 2 It has been used by children as young as 3 years old and has a track record of 30 years of success in education Since Logo is actually a streamlined version of Lisp 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 edit Kojo 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 3 Smalltalk based edit 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 Scratch is a visual language based on and implemented in Squeak 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 5 It is developed by the Lifelong Kindergarten group at MIT Media Lab Etoys 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 images text particles presentations web pages videos sound and MIDI the ability to share desktops with other Etoy users in real time so many forms of immersive mentoring and play can be done over the Internet It is multilingual and has been used successfully in United States Europe South America Japan Korea India Nepal and elsewhere The program is aimed at children between the ages of 9 12 6 Squeak is a modern open source full featured implementation of the Smalltalk language and environment Smalltalk is an object oriented dynamically typed reflective language created to underpin the new world of computing exemplified by human computer symbiosis 7 Like Lisp it has image based persistence so everything is modifiable from within the language itself see Smalltalk Reflection 8 It has greatly influenced the industry introducing many of the concepts in object oriented programming and just in time compilation Squeak is the vehicle for a wide range of projects including multimedia applications educational platforms and commercial web application 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 edit Pascal is the most well known language that was designed with education in mind citation needed 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 according to whom Other edit CircuitPython is a beginner oriented version of Python for interactive electronics and education Rapira is an ALGOL like procedural programming language with a simple interactive development environment developed in the Soviet Union to teach programming in schools Src Card is a tactile offline programming language embedded in an educational card game Children editAgentSheets 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 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 9 Blockly is an open source web based graphical language where users can drag blocks together to build an application no typing is required It is developed by Google More information is available at the project home page 10 CiMPLE 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 11 and ThinkLabs 12 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 interact between themselves due to its block scripting system Hackety Hack is a free Ruby based environment aiming to make learning programming easy for beginners especially teenagers citation needed Karel Karel and Karel J Robot are languages aimed at 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 Kodu 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 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 is an educational language for children designed in 1967 by Daniel G Bobrow Wally Feurzeig Seymour Papert and Cynthia Solomon Today the language is remembered mainly for its use of turtle graphics in which commands for movement and drawing produced line graphics either on screen or with a small robot called a turtle The language was originally conceived to teach concepts of programming related to Lisp 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 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 is an educational object oriented 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 A new variant of Mama was built atop Carnegie Mellon s Alice 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 13 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 is a free open source blocks based graphical language implemented in JavaScript and originally derived MIT s Scratch Snap adds the ability to create new blocks and has first class functions that enables the use of anonymous functions It is actively maintained by UC Berkeley The source is entirely hosted on GitHub Stagecast Creator is a visual programming system based on programming by demonstration 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 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 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 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 editCurry is a teaching language 14 designed to amalgamate the most important declarative programming paradigms namely functional programming nested expressions higher order functions lazy evaluation and logic programming 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 15 16 Flowgorithm is a graphical authoring tool for writing and executing programs via flowcharts 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 Visual Basic NET and Python 17 M2001 is a modular 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 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 18 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 editCategory Programming language comparisons Sugar a GUI designed for constructive learning Design by numbers Processing a language dedicated to artworkReferences edit Microsoft corporation 2009 Getting Started Guide for Small Basic p 64 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 About kogics Kojo Retrieved February 12 2011 Cavallo David May 28 2007 Learning Squeak from Scratch One Laptop Per Child News Retrieved April 3 2009 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 Ducasse Stephane 2005 Squeak Learn Programming with Robots Technology in Action Apress pp 289 in ch 24 A tour or eTOY ISBN 1 59059 491 6 Kay Alan The Early History of Smalltalk Archived from the original on April 29 2011 Retrieved September 13 2007 For further discussion of why this make it easy see Meta circular evaluator Storytelling Alice Alice Retrieved November 7 2023 Google Code Archive Long term storage for Google Code Project Hosting code google com Retrieved November 7 2023 CiMPLE Original Developers Weblog Archived July 21 2011 at the Wayback Machine ThinkLabs Mama educational programming principles 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 Curry report Introduction Most recent version available at Archived October 4 2009 at the Wayback Machine M Hanus The Integration of Functions into Logic Programming From Theory to Practice Journal of Logic Programming Vol 19 amp 20 pp 583 628 1994 About Flowgorithm Retrieved August 26 2014 Programming Paradigms posterExternal links editEducational programming languages at Curlie Retrieved from https en wikipedia org w index php title List of educational programming languages amp oldid 1186944493, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.