# Choosing Your Three Projects

Part of the Programming Merit Badge Digital Resource Guide: [Introduction & Overview](https://merit-badge.university/merit-badges/programming/guide/index.md)

*5. Building Programs*

> **5.** With your counselor's guidance, select three different programming languages and development environments. For each sub-requirement below, do the following: Write or modify a program using the indicated programming language and development environment. The program must take input and produce output based on computations and decisions made on the input. Debug and demonstrate the program to your counselor. Explain how each program processes inputs, makes decisions based on those inputs, and provides outputs based on computations and decision making.

You must choose exactly **three** options here — and in this badge, that means all three project pages. The real choice is not whether to do three projects. It is **which three languages and development environments** will help you learn the most.

## Your Options

- **[Req 5a — First Language Project](https://merit-badge.university/merit-badges/programming/guide/req5a/)**: Build your first project in a language and toolset that feels approachable. This is your chance to understand the core pattern of input, logic, output, debugging, and explanation.
- **[Req 5b — Second Language Project](https://merit-badge.university/merit-badges/programming/guide/req5b/)**: Build a second program in a different language and environment so you can compare how tools, syntax, and workflow change.
- **[Req 5c — Third Language Project](https://merit-badge.university/merit-badges/programming/guide/req5c/)**: Finish with a third language and environment that stretches you a little more and shows how widely programming skills transfer.

## How to Choose

**Choosing your three languages and environments** — Pick combinations that show variety without becoming overwhelming

- [ ] **Start with confidence**: Make your first project in a language or platform where you can get a working result fairly quickly.
- [ ] **Change something meaningful**: Your second and third choices should differ in language, development environment, or style of project.
- [ ] **Match the environment to the job**: A browser editor, desktop IDE, robotics tool, or game engine each teaches different habits.
- [ ] **Think about what you will gain**: One project might teach clear syntax, another debugging tools, and another how software connects to real users or devices.
- [ ] **Keep the scope reasonable**: A small program that works and that you can explain is better than a giant project you do not fully understand.

A strong set of three might look like this:

| Project | Possible language/environment | What you gain |
|---|---|---|
| First | Python in a beginner-friendly editor | Clear logic and readable syntax |
| Second | JavaScript in a browser or web editor | Fast feedback and interactive output |
| Third | Scratch, MakeCode, Java, C#, or another tool with a different style | A wider view of how programming ideas transfer |

> **Tip**
>
> Your counselor is likely to care more about **variety and understanding** than about choosing the hardest possible language. Pick tools that help you show real learning.

> **Be Prepared! You cannot decide which projects to build**
>
> Use three quick filters.
>
> - **What can I finish?** Choose projects small enough to debug and explain.
> - **What will feel different?** Change the language, environment, or type of output.
> - **What can I demonstrate clearly?** Your counselor should be able to see the input, the decision making, and the output.

Before you move to the first project page, make sure each planned program includes the same four ingredients:

1. **Input** from a user, sensor, file, button, or other source
2. **Computation** such as math, comparison, sorting, counting, or transformation
3. **Decision making** using if/then logic or similar control flow
4. **Output** that clearly shows the result

The next three pages will help you build and explain each project one at a time.

---

- Previous: [Intellectual Property and Software Use](https://merit-badge.university/merit-badges/programming/guide/req4/index.md)
- Next: [First Language Project](https://merit-badge.university/merit-badges/programming/guide/req5a/index.md)
