Practice facts for the Programming merit badge. Not an official Scouting America credential. Grab a snack: this guide is the friendly version, with the answers explained and a groan-worthy joke waiting at the end of most cards.
Knowing Programming Scout saves you money, time and the occasional embarrassment.
Chapter 1: Computer Architecture
Short answer: A program
A program is a sequence of instructions a computer follows to perform tasks.
Groan of the day: This program has great follow-through, it never skips a step.
Sources: Computer programming
Short answer: A step-by-step specification of a procedure
An algorithm is a step-by-step specification of a procedure that programming implements.
Groan of the day: That algorithm really knows the steps to success.
Sources: Computer programming
Short answer: High-level programming language
High-level languages are more easily intelligible to humans than machine code.
Groan of the day: High-level languages are easy on the eyes.
Sources: Computer programming
Short answer: Investigating and fixing problems
Debugging is investigating and fixing problems in a program.
Groan of the day: Debugging is the art of un-bugging a program.
Sources: Computer programming
Short answer: Attempting to reproduce the problem
Normally the first step in debugging is to attempt to reproduce the problem.
Groan of the day: Reproduce the bug first, then you can squash it.
Sources: Computer programming
Short answer: How often the results are correct
Reliability measures how often a program's results are correct.
Groan of the day: A reliable program is one you can count on.
Sources: Computer programming
Short answer: How well it anticipates problems due to errors
Robustness is how well a program anticipates problems due to errors.
Groan of the day: A robust program can roll with the punches.
Sources: Computer programming
Short answer: The ease with which a person can use the program
Usability is the ease with which a person can use the program for its purpose.
Groan of the day: Usability makes a program easy to use and easy to amuse.
Sources: Computer programming
Short answer: The range of platforms where the code can run
Portability is the range of hardware and operating system platforms where code can run.
Groan of the day: Portable code travels well across platforms.
Sources: Computer programming
Short answer: The ease of modifying a program later
Maintainability is the ease with which a program can be modified by present or future developers.
Groan of the day: Maintainable code is easy to keep up with.
Sources: Computer programming
Short answer: The system resources it consumes
Efficiency measures system resources a program consumes, like processor time and memory.
Groan of the day: Efficient code wastes no time and no memory.
Sources: Computer programming
Short answer: The ease with which a human can comprehend the code
Readability is the ease with which a human reader can comprehend the purpose and flow of code.
Groan of the day: Readable code is an open book.
Sources: Computer programming
Short answer: They spend most time reading and modifying existing code
Programmers spend most of their time reading, understanding, and modifying existing source code.
Groan of the day: Readable code saves time, and time is read-ily saved.
Sources: Computer programming
Short answer: Requirements analysis
Requirements analysis is the first step in most formal software development processes.
Groan of the day: Requirements analysis makes sure you build the right thing.
Sources: Computer programming
Short answer: Short cycles that integrate development stages
Agile integrates development stages into short cycles taking a few weeks rather than years.
Groan of the day: Agile teams are quick on their feet.
Sources: Computer programming
Short answer: UML
The Unified Modeling Language, or UML, is a notation used for both OOAD and MDA.
Groan of the day: UML helps model ideas in a unified way.
Sources: Computer programming
Short answer: Database design
Entity-Relationship Modeling is a technique used for database design.
Groan of the day: ER modeling relates entities to each other.
Sources: Computer programming
Short answer: COBOL
COBOL is still prevalent in corporate data centers often on large mainframe computers.
Groan of the day: COBOL still has a mainframe of reference.
Sources: Computer programming
Short answer: Fortran
Fortran is described as used in engineering applications.
Groan of the day: Fortran engineers a solid solution.
Sources: Computer programming
Short answer: C
C is described as used in embedded software.
Groan of the day: C is embedded in many devices, it gets around.
Sources: Computer programming
Short answer: Object-orientation
C++ adds object-orientation to C.
Groan of the day: C++ adds a plus to C, one feature at a time.
Sources: Computer programming
Short answer: Memory management and bytecode
Java adds memory management and bytecode to C++.
Groan of the day: Java manages memory so you do not have to.
Sources: Computer programming
Short answer: The A-0 System
The A-0 System was developed in 1952 by Grace Hopper, who also coined the term compiler.
Groan of the day: Grace Hopper compiled a great career.
Sources: Computer programming
Short answer: FORTRAN
FORTRAN came out in 1957 as the first widely used high-level language with a functional implementation.
Groan of the day: FORTRAN was a forward-thinking language.
Sources: Computer programming
Short answer: COBOL
COBOL was aimed at commercial data processing.
Groan of the day: COBOL means business when it comes to data.
Sources: Computer programming
Short answer: Lisp
Lisp was developed for computer research.
Groan of the day: Lisp gives research a list of possibilities.
Sources: Computer programming
Short answer: Meaningful names
Assembly languages used meaningful names for memory addresses.
Groan of the day: Assembly language gives memory a meaningful name.
Sources: Computer programming
Short answer: Ada Lovelace
Ada Lovelace published an algorithm in 1843 intended for Babbage's Analytical Engine.
Groan of the day: Ada Lovelace had a lot of good algorithm in her.
Sources: Computer programming
Short answer: Storing data in machine-readable form
Herman Hollerith invented the concept of storing data in machine-readable form.
Groan of the day: Hollerith made data readable by machines.
Sources: Computer programming
Short answer: Programs and data stored the same way in memory
With the stored-program concept, both programs and data were stored and manipulated the same way in memory.
Groan of the day: Stored programs keep their instructions in memory.
Sources: Computer programming
Short answer: Checks for conditions and runs the appropriate statements
Conditional execution checks for certain conditions and executes the appropriate sequence of statements.
Groan of the day: Conditional execution decides if the condition is right.
Sources: Computer programming
Short answer: Performs an action repeatedly
Repetition performs some action repeatedly, usually with some variation.
Groan of the day: Repetition repeats, that is its whole point.
Sources: Computer programming
Short answer: Gathering data from a keyboard, file, or device
Input gathers data from the keyboard, a file, or some other device.
Groan of the day: Input puts data in, that is its job.
Sources: Computer programming
Short answer: Displaying or sending data
Output displays data on the screen or sends data to a file or other device.
Groan of the day: Output sends data out, that is its output.
Sources: Computer programming
Short answer: Hello, World
Many early primers started with a program known as Hello, World.
Groan of the day: Hello, World says hello to programming.
Sources: Computer programming
Short answer: Help for coding in one place
IDEs aim to integrate all such help for programmers in one place.
Groan of the day: An IDE integrates tools so you do not have to juggle.
Sources: Computer programming
Short answer: Some possible problems in code
A static code analysis tool can help detect some possible problems.
Groan of the day: Static analysis catches problems before they run.
Sources: Computer programming
Short answer: Targets varying machine instruction sets
Compiled languages make it easy to target varying machine instruction sets via compilation.
Groan of the day: A compiler translates your code into machine speak.
Sources: Computer programming
Short answer: A command line
Standalone debuggers like GDB often use a command line.
Groan of the day: GDB gives you a line on your bugs.
Sources: Computer programming
Short answer: Indents, line breaks, and color highlighting
Presentation aspects like indents, line breaks, and color highlighting are often handled by the source code editor.
Groan of the day: A good editor highlights the highlights.
Sources: Computer programming
Short answer: Readability
Techniques like code refactoring can enhance readability.
Groan of the day: Refactoring gives code a fresh read.
Sources: Computer programming
Short answer: Counting job advertisements that mention it
Popularity can be measured by counting job advertisements that mention the language.
Groan of the day: Job ads are a popular way to measure popularity.
Sources: Computer programming
Short answer: Textual, graphical, and sometimes hardware elements
Usability involves textual, graphical, and sometimes hardware elements that improve clarity.
Groan of the day: Usability makes a program user friendly.
Sources: Computer programming
Short answer: Arithmetic
Arithmetic performs basic operations like addition and multiplication.
Groan of the day: Arithmetic is the sum of all basic skills.
Sources: Computer programming
Short answer: Minimizing programming mistakes
Reliability depends on conceptual correctness and minimizing mistakes like logic errors.
Groan of the day: Reliable code keeps its promises.
Sources: Computer programming
Short answer: Division by zero
Division by zero and off-by-one errors are given as examples of logic errors.
Groan of the day: Dividing by zero is a recipe for nothing.
Sources: Computer programming
Short answer: Incorrect or corrupt data
Robustness covers situations like incorrect, inappropriate, or corrupt data.
Groan of the day: Robust code bends without breaking.
Sources: Computer programming
Short answer: Differences in programming facilities
Portability depends on differences in programming facilities provided by platforms.
Groan of the day: Portable code packs light for any platform.
Sources: Computer programming
Short answer: Fix bugs and adapt to new environments
Maintainability is the ease of modifying a program to fix bugs and adapt it.
Groan of the day: Maintainable code is easy to keep up with.
Sources: Computer programming
Short answer: A programmable drum machine
Al-Jazari invented a programmable drum machine using pegs and cams.
Groan of the day: Al-Jazari drummed up a programmable machine.
Sources: Computer programming