You have probably surfed the internet, played video games, or posted updates on social media more times than you can count.
But maybe you have never stopped to think about the underlying instructions that make these kinds of activities possible.
To di what they do, computers, game consoles, smartphones, and other digital devices follow instructions called programs. Each instruction or command in a program is put there by a person.
People who write programs for digital applications are called programmers. Earning the Programming merit badge will take you “behind the screen” for a look at the complex codes that make digital devices useful and fun.
Whitout programs, today’s high-tech gadgets would be little more than empty shells. But given clear instructions, digital devices can do amazing things and perform operations that would have seemed like magic to people in the past.
By the time you fulfil the requirements for the Programming merit badge, you will be able to work a little of that “magic” yourself.
And you might find yourself joining the legions of young programmers who create so much innovative software whatever the need, somebody somewhere has written a program to answer it. You could become that somebody. Happy programming!
Programming Merit Badge Requirements
- Safety. Do the following:
- Show your counselor your current, up-to-date Cyber Chip.
- Discuss first aid and prevention for potential injuries, such as eyestrain and repetitive stress injuries, that could occur during programming activities.
- History. Do the following:
- Discuss with your counselor the history of programming and programming languages, and discuss how programming languages have evolved over time to become easier to use while adding additional capabilities.
- Discuss with your counselor the history of programming and the evolution of programming languages.
- General knowledge. Do the following:
- Create a list of 10 popular programming languages in use today and describe which industry or industries they are primarily used in and why.
- Describe three different programmed devices you rely on every day.
- Intellectual property. Do the following:
- Explain the four types of intellectual property used to protect computer programs.
- Describe the difference between licensing and owning software.
- Projects. Do the following:
- With your counselor’s approval, choose a sample program. Modify the code or add a function or subroutine to it. Debug and demonstrate the modified program to your counselor.
- With your counselor’s approval, choose a second programming language and development environment, different from those used for requirement 5a and in a different industry from 5a. Then write, debug, and demonstrate a functioning program to your counselor, using that language and environment.
- With your counselor’s approval, choose a third programming language and development environment, different from those used for requirements 5a and 5b and in a different industry from 5a or 5b. Then write, debug, and demonstrate a functioning program to your counselor, using that language and environment.
- Explain how the programs you wrote for requirements 5a, 5b, and 5c process inputs, how they make decisions based on those inputs, and how they provide outputs based on the decision making.
- Careers. Find out about three career opportunities that require knowledge in programming. Pick one and find out the education, training, and experience required. Discuss this with your counselor and explain why this career might be of interest to you.
Here is a little answer to the second requirement of programming merit badge.
History of Programming Language
A program is a set of instructions that tells a processor how to do a particular task. A programmer writes the instructions. A programming language is a tool that converts the programmer’s instructions into a form the processor can understand.
The roots of modern programming language have their origins in early efforts to automate machines like calculating machines.
1. Binary Code
Before the development of modern programming language, developers used binary code, which is the “native language” of a machine/computer. A computer “speaks” in only 1’s and 0’s.
These two numerals used in binary language were numeric codes for the operations a particular computer could execute (carry out) directly.
Binary code allowed programmers to turn pieces of computer hardware (circuits) “on” (represented with a 1) or “off” (represented by the numeral 0).
All modern programming languages are built off the concept of trying to turn human commands into binary or machine code.
2. Assembly Language
Assembly Language was the next step in the evolution of modern programming. Whereas machine language consists entirely of numbers and is difficult for humans to read and write, assembly language lets a programmer use “names” or characters instead of numbers.
This slightly more human-friendly code allowed programmers to more easily program single commands for a processor.
Each command in assembly language is specific to the processor (that is, each type of processor uses its own kind of code), so assembly language lacks the portability of most modern programming language.
However, assembly language is ultimately how a processor executes all higher-lever language. A high-level language is an advanced programming language that is easier for humans to understand than binary code or assembly language and is not limited to a single processor.
3. Next-Generation Programming Language
By the 1950s and 1960s, many new languages were being introduced, including BASIC, ADA, and LISP.
These languages took programming beyond binary and assembly to allow portability of language beyond just the processor hardware of the time.
That is, programs written in these languages could run on two or more kinds of processors or with two or more kinds of operating systems.
Many, languages, such as Pascal, were created to capture new concepts of computer science. Others, such as Fortran and COBOL, were developed to meet specific needs of science or business.
Important early languages:
- FORTRAN (Formula Translation), Originally developed in the 1950s, was among the earliest programming languages. Well suited for mathematical calculations, FORTRAN was used mainly for scientific and engineering programming.
- COBOL (COmmon Business-Oriented Language) was popular for business data-processing on larger computers.
- Pascal named after the mathematician Blaise Pascal put into practice the concept of structured programming. Structured programming was designed to help programmers write programs that are cleaner and easier to test, debug (remove error), and modify.
4. Programming in Objects
Object-oriented programming (OOP) is a style of programming that treats concepts as “objects” that can interact with one another.
OOP Languages surfaced in the mid-1960s and allowed a software developer to write code independently of any specific software application.
The programming is done by putting together groups, or modules, of commonly used commands instructions on how to print, how to save information to a disk, and so on into complete programs.
Object oriented programming saves time because the programmer can reuse parts of programs already developed by others.
OOP concepts began appearing in the 1960s with a programming language called Simula and further evolved in the 1970s with the arrival of Smalltalk.
In the 1980s, OOP languages such as C++ and Eiffel appeared. OOP continued to grow in popularity in the 1990s, most notably with the advent of Java.
Originally known as ” C with Classes” C++ was developed starting in 1979 and is now among the most popular programming languages. Most graphical operating systems like Microsoft Windows and major-related programs were written with C++.
Java appeared in 1995 as a general-purpose programming language, designed to be machine independent.
It was intended to let software developers “write once, run anywhere” meaning that code that runs on one operating system does not need to be rewritten to run on another.
What Is Programming?
When you tal to a friend, you use a language you both understand quite well. Many times, your friend will get what you mean even if you don’t say it in so mana words.
Talking to a computer isn’t as simple because a computer will not know what you mean unless you say it exactly. A computer will execute exactly the instructions it is given nothing more and nothing less.
When these instructions are precise and clear, a computer will run them over and over and never get tired.
This flawless repetition of correct instructions, at the very high speeds that computers can run them, has led to the technological revolution of incredible devices that we use every day and are all around us, like:
- Digital Cameras
- Remote Control
- Alarm Clock
- Industrial Robots
- Garage Door Openers
- And even musical greeting cards.
The processors that run digital devices operate at a simple level, turning electronic circuits on and off on tiny circuit boards.
They are following instructions that someone placed there and work together with other digital components (a memory chip, en electronic display, or a motor, for instance) to perform some higher function that was designed into their operation.
So how do these instructions get translated from an idea into something that processors will understand?
This activity of converting ideas into instructions can be simple or highly complex. It’s a bit like working with uncut wood: the activity can be quick and useful, like splitting logs for fa fire.
Or it can be intricate and complex, like whittling a key whistle from a hickory branch.
Where Is Programming Used?
Programming is in almost every aspect of modern life. Almost everything you touch either uses a computing device or was made by something that was programmed.
For Example, cars have dozens (sometimes hundreds) of processors on board. Many home appliances have processors in them. Mobile phones and tablets are completely software-driven. Programs are everywhere.
Many Industries that use programming share common uses for programs, while other industries have unique needs. Several industries are discussed in the following pages.
The companion website for this merit badge has many example programs and free or low-cost software development tools.
Once you find industries that interest you, head over to the website boyslife.org/programming to get up and running quickly. You will be programming in no time!
Here’s an example where programming is used.
- Mobile Devices
- Business Applications
- Factory Automation
- Programming for the Internet: Web language, Database, Query Language.
- Animation and Computer Graphics
- Entertainment Programming
- Automobiles and Traffic Control
- Computer and Information Security
When you create a new product, like bicycle, you have a physical object you can touch and hold.
When you create a computer program, however, you can hold the physical media that stores the programming but you cannot hold the programming itself.
With the bicycle, the value to people in the physical object. But with computer programs, the value is in the programming, not the physical disc or other media on which the program is stored.
Over time, different kinds of rights have been developed to protect systems you cannot touch and hold. IP rights include:
- Copyright Protection
- Trade Secret.
Different aspects of computer programs may be legally safeguarded by each of these forms of protection. For more information about IP Rights, you can read the programming merit badge pamphlet.
Here’s an answer that can help you answer the first requirement.
Safety During Programming Activities
You might not think that writing programs could cause injuries. But in fact, injuries from programming have much in common with sports injuries and can be prevented using some of the same techniques that athletes use.
The amin programming related injuries are repetitive stress injuries, or RSIs. Just as in athletic activities, an RSI occurs when stress is placed on a joint, pulling on the tendons and muscles around the joint.
When the stress happens repeatedly, the body does not have time to recover and becomes irritated. The body react to the irritation by increasing the amount of fluid in that area to reduce the stress placed on the tendon or muscle.
1. First Aid for RSIs
- Apply an ice pack to the injured area to help reduce pain and swelling.
- Use elastic joint support or wrap the area firmly with an elastic bandage to limit the swelling and to protect the injury. Do not wrap it so tightly that blood circulation is restricted.
- Rest the injured area.
- Take an anti-inflammatory pain reliever as recommended by your physician.
- After 24 hours, heat (hot packs, heating pad, whirlpool) may be applied.
- As symptoms diminish, gently exercise the affected muscles or joints to help relieve remaining tenderness, stiffness, and tingling or numbness.
- If pain is severe or persistent, seek medical attention.
2. Injury Prevention
Proper equipment and preparation are the keys to prevention. Make sure your equipment is set up properly to prevent injuries.
Also be aware the hydration isn’t solely for hiking or playing sports, programmers need to stay hydrated too. Four 8-ounce glasses of water per day is good number. Soda, juices, and other sweet drinks are not a substitute for water.
To help Prevent eyestrain, program in a well-lit room. Minimize the contrast between your monitor and the rest of the room but make sure there is no glare on the screen.
Proper posture is the key to avoiding back pain and injuries. And just as when you participate in athletic activities, taking breaks to give your body time recover and prevent strain is essential