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





