💻 Merit Badge Guide

Programming Merit Badge

How This Project Helps You Earn This Badge

Programming Merit Badge

Real Code, Real Learning

This Apollo 13 project is built with HTML, CSS, and JavaScript - the same technologies used by professional web developers at NASA, Google, and millions of websites worldwide.

📋 Requirement 4c: Intellectual Property

Official Requirement:

"Describe the differences between freeware, open source, and commercial software, and why it is important to respect the terms of use of each."

✅ How This Project Helps:

🔓 This Project is Open Source (MIT License)

The entire Apollo 13 Interactive Experience uses the MIT License, one of the most permissive open source licenses. This means:

  • ✅ You can view all the source code
  • ✅ You can copy and modify the code
  • ✅ You can use it for personal or commercial projects
  • ✅ You can share your modified versions
  • ⚠️ You must include the original copyright notice

📚 Learning Resource: Compare Three Types

Type Example Key Difference
Open Source This Project (MIT) Source code available, can modify and redistribute
Freeware Adobe Reader Free to use, but source code hidden, cannot modify
Commercial Microsoft Office Must pay to use, source code hidden, strict license

Discussion Point: Why is it important to respect each type's terms? What happens if you violate a commercial software license?

📄 Read Our MIT License on GitHub

💻 Requirement 5: Programming Projects

Official Requirement (Simplified):

"With your counselor's guidance, select three different programming languages and development environments. For each, write or modify a program, debug and demonstrate it, and explain how it processes inputs, makes decisions, and provides outputs."

✅ How This Project Helps:

Use This as ONE of Your Three Projects!

This project uses JavaScript as its programming language. You can use it for Requirement 5 by:

  1. Download the code from GitHub
  2. Modify a feature (see ideas below)
  3. Debug any issues using browser DevTools (F12)
  4. Demonstrate to your counselor how your changes work
  5. Explain how the code processes inputs, makes decisions, and provides outputs

🔧 Project Modification Ideas:

Easy: Change the scoring thresholds (e.g., 90% = Mission Commander instead of 100%)
📂 Edit: assets/js/app.js line 250-278
Medium: Add a countdown timer to track how long each decision takes
📂 Edit: assets/js/app.js - add timer to decision slides
Hard: Create a new decision slide for "Should they separate the Service Module early?"
📂 Create: New HTML file + update app.js scoring
Advanced: Add audio narration that plays automatically on each slide
📂 Add: HTML5 Audio API in app.js

📚 Learning Resource: How This Code Works

Study these key functions to understand inputs, decisions, and outputs:

INPUT: User clicks a decision button
function initDecisions() { ... }
📂 File: assets/js/app.js:36-73
DECISION: Compare user choice to NASA's actual decision
function showAlignmentFeedback(slideId, userChoice) { ... }
📂 File: assets/js/app.js:362-390
OUTPUT: Display score and rank at completion
function calculateScore() { ... }
📂 File: assets/js/app.js:230-242

How to explore: Open assets/js/app.js in any text editor and find these functions. Read the comments to understand what each part does!

📖 View Full Code on GitHub 🚀 Try the Experience First

🌟 Other Requirements This Project Supports

📖 Requirement 3: General Knowledge

"Create a list of 5 popular programming languages in use today and describe which industry or industries they are primarily used in and why."

This project uses JavaScript, one of the top 5 most popular languages!

  • JavaScript - Web development (used in 98% of websites)
  • Python - Data science, AI, automation (NASA uses it!)
  • Java - Enterprise applications, Android apps
  • C++ - Game development, systems programming
  • SQL - Database management, data analysis

💼 Requirement 6: Careers

"Find out about three career opportunities that require knowledge in programming."

Web Developer (like the creator of this project):

  • Education: Computer Science degree or coding bootcamp
  • Skills: HTML, CSS, JavaScript, version control (Git)
  • Experience: Build portfolio projects (like this one!)
  • Salary: $60,000-$120,000+/year

Also explore: Software Engineer, Data Scientist, Game Developer

🚀 Ready to Get Started?

Download the code, try the Apollo 13 experience, and start modifying it to make it your own!

📖 Download Code from GitHub ← Back to All Merit Badges

💬 Discussion Points for Your Counselor

  • What's the difference between the MIT License (open source) and commercial software licenses?
  • How does the calculateScore() function process user inputs and make decisions?
  • What modifications did you make to the code, and how did you debug them?
  • Why is JavaScript the right language for this web-based project?
  • What career path interests you in programming, and why?