Educational Programming Languages :
A sequence of languages each designed to build on the others moving a student from easy to understand and entertaining environments to full professional environments.
A sequence of languages each designed to build on the others moving a student from easy to understand and entertaining environments to full professional environments.
Assembly language :
Originally, machine code was the first and only way to program computers. Assembly language was the next type of language used, and 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 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 programming 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 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 (memory), each capable of holding 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.
- 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. .
- 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.
- MIX and MMIX are hypothetical computers used in Donald Knuth's monograph, The Art of Computer Programming (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.
BASIC :
BASIC is a language invented in 1964 to provide computer access to non-science students. It became popular on mini computers during the 1960s, and became the standard computing language for microcomputers 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 a language which is frequently self-taught with excellent tutorials and implementations.
C :
- Ch is a C/C++ interpreter that was specifically 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 :
Sun's recommended path is Greenfoot to BlueJ to Netbeans/BlueJ to Netbeans/Java.
- Greenfoot is an interactive Java development environment developed primarily for educational purposes. It allows easy development of two-dimensional graphical applications, such as simulations and interactive games.
- NetLogo is a development environment for building and exploring scientific models, specifically agent-based models. It is in widespread use both in science research and in educational contexts, including elementary, secondary schools, universities and museums.
- BlueJ is an integrated Java environment specifically designed for introductory teaching, first year college student. It eliminates some of Java's complex syntax, the difficulties of I/O and represents the object/class relationships visually. The BlueJ environment was developed as part of a university research project about teaching object-orientation to beginners (the Blue system). The aim of BlueJ is to provide an easy-to-use teaching environment for the Java language that facilitates the teaching of Java to first year students.
- NetBeans BlueJ Edition is an integrated development environment (IDE) meant to transition students from the introductory IDE BlueJ to the more professional IDE NetBeans. Sun provides a designed for and tested in high schools for use in teaching Java/BlueJ.
- NetBeans / Java This is a professional level platform. NetBeans refers to both a platform for the development of applications for the network, and an integrated development environment (IDE) developed using the NetBeans Platform. The NetBeans Platform is a reusable framework for simplifying the development of other desktop applications. The platform offers services common to desktop applications, allowing developers to focus on the logic specific to their application. The NetBeans IDE is an open-sourceintegrated development environment written entirely in Java using the NetBeans Platform. NetBeans IDE supports development of all Java application types (Java SE, web,EJB and mobile applications) out of the box. Among other features are an Ant-based project system, version control and refactoring.
Lisp-based :
Lisp is the second oldest family of computer languages in use today, and as such has a host of dialects and implementations at 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 computation.The name LISP derives from "LISt Processing language". Linked lists are one of Lisp languages' major data structures, and Lisp source code is itself made up of lists. As a result, 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. 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.- Logo is a language that was specifically designed to introduce children to programming. The first part of learning Logo deals with "turtle graphics".
- Scheme was originally designed in 1975 to serve a tutorial purpose.LISPs of the day used non-recursive control structures to implement lambda calculus, primarily since LISPs were still being implemented for efficiency reasons in hardware. The publication of Structure and Interpretation of Computer Programs in 1984 incorporated this educational philosophy into a canonical textbook, which changed the predominance of Pascal as the university programming language.
“ The publication of Abelson and Sussman’s Structure and Interpretation of Computer Programs (sicp) (Abelson et al., 1985) revolutionized the landscape of the introductory computing curriculum in the 1980s. Most importantly, the book liberated the introductory course from the tyranny of syntax. Instead of arranging a course around the syntax of a currently fashionable programming language, sicp focused the first course on the study of important ideas in computing: functional abstraction, data abstraction, streams, data-directed programming, implementation of message-passing objects, interpreters, compilers, and register machines.
Over a short period, many universities in the US and around the world switched their first course to sicp and Scheme. The book became a major bestseller for MIT Press. Along with sicp, the Scheme programming language became widely used. It was no longer the subject of a few individual courses at Indiana University, MIT, and Yale, but the language of choice in introductory courses all over the world.” - newLISP aims to provide a fast, powerful, cross-platform, full-featured scripting version of the Lisp programming language which uses only a modest amount of system resources such as disk space and memory.
Scala-based
- 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.
- Spde is an offshoot of the Processing environment to support sketches written in Scala, a powerfully object-oriented and functional language.
Smalltalk-based :
As part of the One Laptop per Child project, a sequence of Smalltalk-based languages has been developed, each designed to act as an introduction to the next. The structure is Scratch to Etoys to Squeak to any Smalltalk.. 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 programming 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.
- 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. I
- Squeak is a modern, open source, full-featured implementation of the Smalltalk programming language and environment. Smalltalk is an object-oriented, dynamically typed,reflective programming language created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis".