List of educational programming languages: Difference between revisions

Content deleted Content added
mNo edit summary
I-beam (talk | contribs)
Improved readability
Line 9:
== Types of Educational Programming Languages ==
===Assembly languages===
Initially, [[machine code]] was the sole method of programming [[Computer|computers]]. [[Assembly language]] followed as an early advancement, making it one of the oldest families of programming languages ,which is still in use till datetoday. Numerous [[Dialect|dialects]] and implementations exist, each tailored to a specific [[computer processor]] [[Instruction set architecture|architecture]]. Assembly languages are considered [[Low-level programming language|low-level]] and more challenging to use, as they are [[Programming language#Type system|untyped]] and rigid. For educational purposes, simplified dialects of assembly languages have been developed to make coding more accessible to beginners.
 
Assembly languages are designed for specific processor architectures and must be written with the corresponding hardware in mind. Unlike [[High-level programming language|higher-level]] languages, educational assembly languages require a representation of a [[Processor (computing)|Processor]] which can be virtual or physical. These languages are often used in educational settings to demonstrate the fundamental operations of a computer processor.[[File:Little Man Computer Simulator LMC.png|alt=This image describes the program Little Man Computer (LMC)'s interface|thumb|An image of Little Man Computer (LMC)'s interface]]
Line 100:
* ''[[Mama (software)|Mama]]'' is an educational [[object-oriented programming|object oriented]] language designed to help young students start programming by providing all the language elements in the student's language. Mama language is available in several languages, with both LTR and RTL language direction support. A [http://www.eytam.com/mama new variant of Mama] was built atop [[Carnegie Mellon]]'s ''[[Alice (software)|Alice]]'' development environment, supporting scripting of the 3D stage objects. This variant 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.<ref>[http://en.eytam.com/mama/educational_programming_language Mama educational programming principles]</ref>
* ''[[RoboMind]]'' is a simple educational programming environment that allows beginners to program a robot. It introduces popular programming techniques along with robotics and artificial intelligence. The robot can be programmed in Arabic, Chinese, Dutch, German, English and Swedish.
* [[File:Scratch 3.0 editor.png|alt=this image shows The Scratch 3.0 editor|thumb|The Scratch 3.0 editor]]''[[Scratch (programming language)|Scratch]]'' is a visual language with the goal of teaching programming concepts to children andby letting them create games, videos, and music. It does this by simplifying what we know to be code, puttinginto specific functions intofunction "blocks" that the user can drag and dropconnect, intothen run by clicking the programgreen flag icon. 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 1,000,000,000 projects with over 164,000,000 publicly shared.<ref name="u895">{{cite web | title=Imagine, Program, Share | website=Scratch Statistics | date=2023-05-25 | url=https://scratch.mit.edu/statistics/ | language=la | access-date=2024-11-17}}</ref> It is developed by the Lifelong Kindergarten<ref>{{Cite web |title=Group Overview ‹ Lifelong Kindergarten |url=https://www.media.mit.edu/groups/lifelong-kindergarten/overview/ |access-date=2024-10-08 |website=MIT Media Lab}}</ref> group at [[MIT Media Lab]].
* [[ScratchJr]] is derivative of the Scratch graphical language. It is designed for children with ages around 5-7.
* ''[[Snap! (programming language)|Snap!]]'' is a free [[Open-source software|open-source]] blocks-based graphical language implemented in [[JavaScript]] and originally derived from [[MIT]]'s [[Scratch (programming language)|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 [https://github.com/jmoenig/Snap--Build-Your-Own-Blocks source] is entirely hosted on [[GitHub]].