Skip to main content icon/video/no-internet

Programming is the act of specifying instructions to produce an outcome or effect. Programming, or coding, typically refers to computer programming—specifying instructions, or code, in specialized languages to control computer activity. Computer programs are part of every aspect of modern life, from finance to transportation, to entertainment, and beyond. Although programming has long been perceived as a specialized ability, new tools have been designed for broader audiences to engage in programming, making computation more widely accessible. This entry describes programming in more detail and offers specific examples of programming tools and activities.

Code as Medium

Written text can be used to create artifacts such as poems, newspaper articles, and philosophical treatises, while video can be used to create artifacts such as music videos, television advertisements, and documentary films. As with text or video, code can be used to create a wide range of artifacts, from games to websites to intelligent agents. Programming can serve a variety of aims, from problem solving to personal expression. For example, social networking organizations such as Facebook write code to analyze social data and suggest potential connections between members, while digital animation studios such as Pixar write code to generate many elements of the worlds that they create.

Programming involves specifying instructions in a computer-interpretable language. Hundreds of programming languages have been created, reflecting diverse domains (e.g., industry, education, arts), environments (e.g., desktop, mobile, Web), and priorities (e.g., simplicity, expressiveness, performance). For example, applications developed for Apple mobile devices are often written in a language called Swift, the popular game Minecraft is written in a language called Java, and computer operating systems are usually written in a language called C. These languages were all designed for professional programmers and are not necessarily the easiest entry points for learning how to program.

Languages and tools for novices have become increasingly available to young people and adults interested in learning how to program. Many of these resources make programming more accessible without compromising the essence of the programming experience. For example, a significant portion of programming effort often involves fixing errors in program instructions—that is, dealing with the “bugs” that emerge when instructions do not produce the expected outcome. Graphical programming languages remove the potential for novices to introduce typographic bugs common with text-based programming languages, while still requiring problem-solving and abstraction capacities for program design.

Programming in Practice

In this section, four tools designed for novice programmers—(1) Scratch, (2) Alice, (3) Processing, and (4) App Inventor—are described in more detail.

Scratch

Scratch is a visual programming environment for creating interactive media projects. Scratch relies on a blocks-based approach to programming; instead of typing out instructions, creators snap together graphical instruction blocks. The Scratch environment consists of media authoring tools, which people can use to create projects, and an online community, where creators can share their projects, remix others’ projects, and give and receive feedback. Scratch is a project of the Lifelong Kindergarten group at the MIT Media Lab at the Massachusetts Institute of Technology. In the 8 years following its launch in 2007, Scratch has been used by millions of people around the world, both in school and out of school, to create more than 10 million projects.

...

  • Loading...
locked icon

Sign in to access this content

Get a 30 day FREE TRIAL

  • Watch videos from a variety of sources bringing classroom topics to life
  • Read modern, diverse business cases
  • Explore hundreds of books and reference titles

Sage Recommends

We found other relevant content for you on other Sage platforms.

Loading