What's New

Programming merit badge requirements released

programmingMuch of Baden-Powell’s vision for Scouting still holds true today. But put this one in the category of something B-P never could have predicted.

Today the Boy Scouts of America releases Programming merit badge, an elective badge that challenges Scouts to, among other requirements, “write, debug, and demonstrate a functioning program.” Programming MB continues in the BSA’s long tradition of preparing young men for modern-day careers, so I’m a big fan already.

The merit badge’s requirements are available below. Scouts may begin working on Programming MB once pamphlets arrive in Scout Shops and at scoutstuff.org in early August.

So if your Scouts are fluent in JavaScript, PHP, C++, or one of the dozens of other programming languages out there, be sure to share this printable flier (PDF) with the merit badge requirements.

Take a look at the official requirements: 

Programming merit badge requirements

1. Safety. Do the following:

a. Show your counselor your current, up-to-date Cyber Chip.

b. Discuss first aid and prevention for the types of injuries or illnesses that could occur during programming activities, including repetitive stress injuries and eyestrain.

 2. History. Do the following:

a. Give a brief history of programming, including at least three milestones related to the advancement or development of programming.

b. Describe the evolution of programming methods and how they have improved over time.

3. General knowledge. Do the following:

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

b. Describe three different programmed devices you rely on every day.

4. Intellectual property. Do the following:

a. Explain how software patents and copyrights protect a programmer.

b. Describe the difference between licensing and owning software.

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

5. Projects. Do the following:

a. With your counselor’s approval, choose a sample program. Then, as a minimum, modify the code or add a function or subprogram to it. Debug and demonstrate the modified program to your counselor.

b. 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.

c. 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.

d. 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.

6. Careers. Find out about three career opportunities 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.

80 Comments on Programming merit badge requirements released

  1. Woot!

  2. Glad to see that the first aid requirements are present in this new merit badge. Coding is a dangerous business.

    • Yeah I LOLed at that one! Don’t forget shoulder injuries, high blood pressure, bad backs and vitamin D deficiency (from lack of sunlight)!
      They should also have included getting beaten up by bullies when they find out the Scout knows programming!
      ;-)

    • I’m one of the authors of the merit badge and after a 25 year career working on computers, I’ve well and truly earned my carpal tunnel syndrome and mild arthritis in my fingers. RSI in the IT industry is a serious ling term health concern.

      • Spell check is a wonderful thing.

        • Spell check doesn’t do anything if a word is properly spelled. Even if it is the wrong word for the sentence. If you would like to learn more about the problems with spell checking software read:
          Dennis F. Galletta, Alexandra Durcikova, Andrea Everard, and Brian M. Jones. 2005. Does spell-checking software need a warning label?. Commun. ACM 48, 7 (July 2005), 82-86. http://doi.acm.org/10.1145/1070838.1070841

        • Nothing more irritating than reading someones post criticizing another’s typo rather than contributing something useful to a conversation..It shows low intellect on the part of the critic

        • And then someone else jumping on them…adding nothing to the conversation…

        • point taken…..

  3. I’m surprised about the requirement for 3 different languages.

    • We debated this in the development team and decided that since the requirements could be met with simple programs like the ones on the companion website, three languages would be ok.

      • Thanks for pointing out the Boys Life page. You’re right, I think any computer literate Scout can learn how to Hello World in 3 languages.

      • Jamie Ridgway // August 16, 2013 at 11:51 am // Reply

        I like the fact the 3 languages are a requirement as there’s no language that’s a silver bullet. I’ve used everything from Assembly to Clojure. Each has strengths and weaknesses.

      • As someone who is both a programmer and a Programming MBC, I would respectfully disagree with your teams approach on this badge. I think you guys missed the mark on software development in general. While, getting this badge isn’t going to make a scout a programmer/software engineer, it should give them a good enough introduction and understanding to want to pursue it as a hobby, if they so choose. I’m not sure “Hello World” in 3 different languages is going to do that. I would have taken the approach of a single modern language project (VB, C++, C#, Java), and then develop a little more of a complex program (GUI, main app, DB maybe, etc.) The 3 language requirement is killing my scouts and I because I feel that in order for the scout to get anything out of it, they need to know the basics. Requirement 5a is code maintenance/enhancement, so you have to have enough of a command of the language to be able to make a coherent change. While this is second nature to you and I, it’s brand new to a scout. I hope you guys reconsider this requirement in the future. Additionally, I would have put in a requirement asking the scout about basic software life-cycle (requirements gathering, design, implementation, test). I’d be happy to provide any input or assistance.

  4. Wow. Pretty high tech. I don,t think any of my scouts know 1 programming language. I am interested in seeing the numbers at the end of the year, 2 years. I would love to teach it. Also there seems to be no interest in getting the Cyber Chip. I presented the information to the troop with zero interest. It is a shame as it is the future.

  5. The Cyber Chip requirement means my sons won’t be earning this one. Very disappointed in merit badge info today. :(

    We were really looking forward to this merit badge.

    • The Cyber Chip takes all of 1 hour to earn, what’s the problem?

      • My kids don’t do Facebook, is the big one. I suppose if we go asking around, one of the ASMs would be willing to sign off on it despite them not “liking” the BSA FB page…

        It just bothers me, and it will really bother them, that the whole internet safety, mobile phone safety, etc. is required for this badge. You don’t have to go online at all to earn the badge. Why should you have to learn about appropriate use for a handheld Nintendo to earn it?

        And since the Cyber Chip involves teaching another patrol about internet safety, we’d have to make something work at the troop level when only a couple of kids care…

        • ASMs cannot sign off on MB requirements. Only an approved MB counselor can do that for your son.

        • H. David Pendleton // July 15, 2013 at 12:08 pm //

          I believe she was talking about the Cyber Chip not the MB requirements.

        • AmeliaP // July 15, 2013 at 2:21 pm //

          Learning Internet safety is a fact of life now as well as electronic device etiquette. There was a cyberbullying incident at our school that resulted in expulsions and a police investigation. The target did not have a FB page, but was being discussed via FB, texts and e-mail. In another incident, a friend’s child created a FB page and an Instagram account without his parents’ knowledge. TMI. It cost him a college scholarship.

          Devices are another issue. We were at an Open House for a local school. The Director of Admissions asked a young lady in our group a question. She had to repeat it twice, because the young woman kept texting! The apple didn’t fall far from the tree, because her mother texted the entire tour. It would not have surprised me if they were texting each other. A young man in the group played on his PSP2. The texters and the gamer saw nothing wrong with their behavior. Unfortunately, it’s getting more common.

        • the requirement to “Like” on Facebook is only for grades 9-12 and requires parental permission; If a parent doesn’t give permission, does this preclude the boy from fulfilling the requirements or does it exempt him from that particular requirement?

        • Actually, Debra, the scout does need to go online to complete this badge if only to review the sample programs on boyslife.org and to download the development tools needed to complete the project. And internet safety is not a nice to do thing. First Class requirement 11 says, “Describe the three things you should avoid doing related to use of the Internet. Describe a cyberbully and how you should respond to one.” that just happens to be the core of requirement 4 for the grade 6-8 Cyber Chip.

          It was our intent as developers that the scouts use the full spectrum of information technology available, including the internet to gather the knowledge that they need to complete the merit badge.

    • Robert Moore // July 15, 2013 at 11:20 am // Reply

      I just went online to look at the Cyber Chip program and learned some things myself. Just spoke with our Scoutmaster and we are looking to have the whole Unit go through it.

    • robertemoore // July 15, 2013 at 11:23 am // Reply

      I just reviewed the Cyber Chip myself and will definitely have my son go through this. Also, spoke with our Scoutmaster and we are trying to figure out a way that all the Scouts go through this just like their Totin’ Chip.

      Take a look at it again.

    • A recent issue of Advancement News clarified that the “liking Facebook” requirement can be waived by a parent when earning the Cyber Chip.

  6. First Aid? I have been programming over 20+ years, never had to deal with any medical emergencies :-)

    • Probably worried that scouts will get Rickets due to a Vitamin D deficiency (due to lack of sunlight).

    • Gary Wilson // July 15, 2013 at 1:23 pm // Reply

      The applicable safety stuff is now in all merit badges. It’s mostly for “Risk Management” so some lawyer hunting for contingency fees doesn’t sue BSA on a someones behalf 30 years from now saying their carpal wrist syndrome disability originated with the merit badge.

      It’s unfortunate fact of life. If you find it silly or distasteful, write your congressman and ask for meaningful tort reform.

    • See my earlier comment on safety and RSI.

      • It still seems rather silly. There is no first aid for it. It should named something different warning of the issues that might be caused by long term keyboarding but please tell us what the “first aid” is for these?

        • For numbness from early stage carpal tunnel syndrome, press the hands together at as close to a 90 degree angle to the forearm as your wrists will allow. The numbness will go away in a minute or two. Then change the position your hands are in as you type. I started this on the advice of an orthopedic surgeon friend This has worked for me for nine years. But, I only have a mild case because I work at keeping my hands in the right position for me.

          In the text of the book, there are seven other first aid measures for the initial symptoms of RSI problems.

  7. Anyone interested in the MB patch significance? The highlighted binary breaks down to 0100/0011, 0101/0011, 0100/0001, or 42,53, 41 – ASCII for ‘BSA’

    • Gary Wilson // July 15, 2013 at 1:18 pm // Reply

      Just like the Morse Code on Radio Merit Badge!

    • could you explain how you came to those figures? I got 66, 51, and 65

      • Nice eye, Mark! sm13, the binary system (2-based, let’s call it “programming language number 1″, the most basic) is similar to decimal (10-based), but rolls to the next “column” at 2. Thus 0000, 0001, 0010 [=2], 0011 [=3], 0010 [=4], …. So the top line is 0100 0010 [42]. Then 0101 0011 [53]. And 0100 0001 [41]. Now those 42 53 41 are in the second “language”, hexadecimal, base 16. Look up the hex codes in an ASCII table (a common search) to get to your third language. Nice one, folks! Very slick… Kinda like having to write programs in three languages. -… … .-

        • Thank you, I didn’t know that in computer language you separate them into fours to match up with hexadecimal

        • No need to break into 4-bits each. The numbers on the badge are represented as a byte (8-bits), so

          01000010 = 2^1 + 2^6
          = 2 + 64
          = 66 (66 Decimal => ASCII B)

          01010011 = 2^0 +2^1 + 2^4 + 2^6
          = 1 + 2 + 16 + 64
          = 83 (83 Decimal => ASCII S)
          01000001 = 2^0 + 2^6
          = 1 + 64
          = 65 (65 Decimal => ASCII A)

    • Darn. Beat me to it. Was going to post this. Nice job.

  8. 3 Programing Languages ??? Don’t make to many Merit Badges for the Store Shelves

    • Boy’s Life did a survey on their website a couple of months ago and Programming was the third highest ranked in order of interest.

  9. Doug Richard // July 15, 2013 at 12:29 pm // Reply

    There are only 10 kinds of people in the world. Those that understand binary and those that don’t.

    • Hilarious!

    • There’s only E kinds of people in the world: those who understand hexadecimal, those who don’t and 12 others who we really don’t care about. :)

  10. #5 should have been done as a FOR loop! Who wrote that thing?

    More seriously, as a professional programmer for 30+ years, I can’t imagine a Scout learning 3 different programming languages to get this merit badge. Frankly, I’d be hard pressed to judge or help debug in more than 4 different languages at a time. Though I’ve learned 14 different languages so far, I only use or know a couple at a time.

    • Easy enough to write a simple routing in C#, Visual Basic and Java. Or use C, Fortran and Pascal if you want to go old school.

    • The merit badge development team was made up of a mix of software engineers and educators. Some of us are both. We don’t expect complex programs from boys working on this badge. We deliberately kept the examples simple to encourage youth and MB counselors to not go overboard on complexity. The requirements can be completed with just a few lines of code. With the resources that are provided at the companion website, http://boyslife.org/section/about-scouts/merit-badge-resources/programming/, we are confident that any boy can create three very simple programs.

      • James. I hadn’t seem the companion website when I made my comment. That certainly makes it pretty darn easy for them! Maybe TOO easy? If real programming was easy, they wouldn’t pay us the big $$$, right? ;-)

    • Hello, world!

      (You can certainly keep it simple.)

    • My son is an 11 year old Tenderfoot. He has already programmed in Scratch, Basic, HTML, and C (programming his Arduino), Plus a few other esoteric languages I don’t remember the names for.

      • *HTML is a markup language, not a programming language :)

  11. We just added the Programming MB to Scoutbook. Thanks Bryan for all your hard work on the blog! Wish we were there at Jambo with ya!

  12. Steve Cline // July 16, 2013 at 6:39 am // Reply

    Re: the Like on Facebook – I am disappointed to see the requirement name only one commercial provider of social networking services, even if they are the *current* 500 pound gorilla. Someday FB could be MySpace, and be replaced by some rising star. Even now there are articles citing the rise of Twitter among youth in part to avoid their parents on FB. From a MB lawyer point of view, the requirement does not say that it has to be *your* FB account, nor that the “like” has to be maintained – the whole troop can like then un-like using the same account, which could be a throw-away account.

    • And Steve that is why merit badges have revisions.

    • As a point of clarification. This is a Cyber Chip requirement for 9-12 grade youth, not a Programming MB requirement.
      The Facebook requirement is for Scouts and Venturers in High School. And it doesn’t say that they have to use a Facebook Account that they control. Unit leaders discernment applies here. And yes, like everything else, this will get reviewed periodically and will evolve with the trends in social media.

  13. I’m curious… Can the coding requirements be fulfilled by such examples in C to flash an LED on an Arduino board, or Assembler to do likewise with a Microchip processor? I’m thinking along the lines of having the boys build a simple project for the Electronics Merit Badge as well as fulfilling some of the requirements for the Programming Badge.

    • Douglas Sargent // July 18, 2013 at 9:17 am // Reply

      ohhh, yes, electronics, robotics, etc. Lego mindstorms qualifies for this badge, If you do it the right way, you can organize a very fun weekend!!!!

    • Yes! We even have an Arduino example on the companion website. Programming for robotics gets coverage in the MB Booklet

  14. I’ve been a programmer for 4 years, and I’m only 15. You can’t imagine the excitement at being able to earn a Merit Badge like this. You guys are really starting to go in the right direction. Programming is much safer, and much closer to Powell’s original ideas then the dangers of Welding and Scuba Diving. As for 3 languages, I can support that, given that I use LUA, VB, C++, Pascal, Java, HTML/CSS, Python, and Ruby often. If I can do it at my age, then I think it’s a good challenge that has been proven achievable. Thank you, James Francisco, for your help in getting this idea off the ground and bringing it into the environment of Boy Scouts.

  15. We are so on this! Way to go BSA. SpaceJamboree.com is doing an Advanced Robotics program with Arduino’s and this merit badge is spot match so we can give a merit badge to the Scouts. We are using Linux laptops, we loaded Arduino’s dev setup. We are also adding Scratch (S4A), and are thinking about setting up Eclipse as another environment… bottom line, you can do it all with open source free software. Set the Scouts up for a life time of learning!!!! Love the example programs already to go, the Arduino video is awesome! NICE JOB BSA!!!

  16. Douglas Sargent // July 18, 2013 at 9:13 am // Reply

    Hi all,

    I could dream up a hundred reasons why to complain that I don’t like the badge requirements. But on the other hand, It is hard to think of something on how to improve it. Just based on this judgement, congratulations on those who came up with the program.

    I have run through the sample programs, and they are varied and cover a lot of aspects of this “line of work”. Sure, I may or may not like the way they are coded, but then that makes it easy to show them how to improve. You guys have put a lot of work into it,

    Now to scrounge up 5-6 laptops and teach this in August!!!!

    congrats

  17. Not having the full book in front of me my question is: are “requirements gathering and writing” part of the discussion? It would be great to see a “Design” or “Functional document” requirement.
    As a tech manager working with many developers from different backgrounds I know that one of the more difficult (and often least successful) parts of the coding job is the ability to communicate with Business or Business Analysts.
    The reason I believe it is important (and what I teach my CS students): a coder that understands the business reasons for the design, and can communicate well – listening and writing, will hands down have more career options and likely be a more successful coder.

    • We do introduce the idea of creating requirements and a simple design before starting coding. Then we use that discussion in one of the side bars to teach that design and planning are good skills to learn to prepare for the Eagle Scout service project.

  18. I guess time will tell..I work with a bunch of High School kids in the FIRST robotics program..This badge would be a cake walk for them..I’ve had kids who are sophmores that could write programs in C++, Java, visual Basic and even some assembler..They understood the concepts of OO analysis and design…all self taught..They know all about Intellectual property too..

    As far as the cyber chip goes, kids will be kids…they will push the envelope when on line without an adult looking over their shoulder..BTW I dont support facebook either, If you beleive that all kids have access to web and can afford to be online then you need to step out of your ivory tower and get a grasp on reality

    BrianC

    • Oh yes and I forgot to mention they were pretty procient at Labview too

  19. My son would enjoy getting this badge. I hope we’ll be able to find a local badge counselor (SE Iowa).

  20. I applaud James Francisco’s timely replies here to the comments as that really helps shape the thinking and limit the criticism. My high school senior (rank is Still Life) is real interested in earning this badge with one of our Troop’s recent Eagles who is in college and wants to teach this badge. Thank you for the companion website.

  21. The cover of the pamphlet is awesome! Especially because of the Arduino.

  22. Programming Merit Badge Critique:
    Hi, I’m glad to see that the BSA is introducing new merit badges that promote STEM and that contribute some more modern skills, but I have to admit there were some aspects of these requirements that I was surprised about and I wanted to weigh in on. I will say that I’m a recently former scout myself (technically still a scout since ‘Eagle’ is for life, right?) and am a Computer Science major at university. I did programming throughout high school and have coded for leisure, for academic purposes and in industry (I’m finishing an internship at a major software company). So I want to offer what my reaction was to the requirements from the perspective of what I would have thought of them as a scout. I’m not sure how many actual Scouts were involved in developing the requirements, but I think the input of someone who would potentially have to complete the requirements could be good feedback for possible future revision. I’ve copied the requirements here and have listed some of my thoughts below each one.

    1. Safety. Do the following:
    a. Show your counselor your current, up-to-date Cyber Chip.
    I don’t have a huge deal to say on this since I graduated/aged out of my Troop before the Cyber Chip was introduced, although looking at some of the requirements on the NetSmartz website I understand the problem they’re trying to deal with, even if the website and language seems extremely cheesy to me.
    b. Discuss first aid and prevention for the types of injuries or illnesses that could occur during programming activities, including repetitive stress injuries and eyestrain.
    I read some of the comments on this already so I won’t talk too much about it, but I’ll admit I laughed a little when I saw this requirement; if I were still a scout I’d consider this a very hokey requirement and one that doesn’t give me a huge amount of useful knowledge beyond knowing what CTS and Arthritis are. I know first aid skills are some of the best things that BSA teaches scouts, but this issue pertains much more to industry professionals coding for years not to teenage scouts who probably won’t be coding for more than a few hours at a time. If you do want to add some health or first aid aspect, I think the requirement could be more tailored to problems that younger programmers deal with. For example, talking about getting enough sleep, taking breaks from coding and going outside or even talking about not consuming too much caffeine while coding I feel are much more relevant to the target audience than long term strain injuries from typing.
    2. History. Do the following:
    a. Give a brief history of programming, including at least three milestones related to the advancement or development of programming.
    I find this requirement quite vague. I was in a small troop with a limited number of merit badge counselors so I always found it useful when requirements are specific. I always found it easier to do a lot of research on my own for requirements about history, but if I saw a requirement this vague I wouldn’t know where to start. Also, for something like programming, the history of programming can be relatively complex and technical for most scouts and that can be a big turnoff from continuing a merit badge. For example, ‘milestones’ related to development of programming, does that mean I could discuss and abacus or Charles Babbages’s analytical machine? Should a 13-year old scout attempt to explain a turing machine or Van Neumann architecture (most CS majors I know couldn’t do this very well), or is the requirement referring to more hardware related shifts like vacuum tubes, punch cards, etc.. I understand some of this has a lot of crossover with the computer merit badge (which I understand is being deprecated), but better to be slightly redundant than not cover relevant material. Having some sub-requirements/clauses would benefit scouting troops where many scouts prefer to do research independently or troops that may not have the merit badge booklet.
    b. Describe the evolution of programming methods and how they have improved over time.
    My comments above carry over to this sub requirement, but I will add that the word selection ‘methods’ is a poor choice here. I understand the meaning of it, but ‘methods’ have their own meaning in the programming world (in object oriented programming an object may have ‘methods’ associated with it), and to avoid any possible confusion, a word like ‘styles’, ‘approaches’, ‘techniques’ would be a better choice than ‘methods’.
    3. General knowledge. Do the following:
    a. Create a list of 10 popular programming languages in use today and describe which industry or industries they are primarily used in and why.
    When I first saw this requirement my initial reaction was that 10 languages was a lot; that being said, more knowledge is preferable. As with the history part, I think scouts would benefit more from having some more specificity in this requirement. It may be useful for example to divide the list of languages by some kind of categorization such as ‘list 5 newer languages (created after 1990) and 5 old ones and explain…’ or something that specifies X number of languages of a certain type (like languages that operate on the web and those that operate on only on desktops) or something to that effect.
    b. Describe three different programmed devices you rely on every day.
    I have no comments on this requirement really, it looks fine to me.
    4. Intellectual property. Do the following:
    a. Explain how software patents and copyrights protect a programmer.
    While this may be a personal opinion, I feel like this requirement may be a bit one sided. There’s actually a lot of debate about the patent system and how it applies in the software world. The ongoing saga of Apple, Google and Samsung is evidence of that. While patents can protect the programmer, they can also severely constrain innovation and block future progress. I won’t suggest this as a requirement, but software patent law could change in the near future and it’s something to consider.
    b. Describe the difference between licensing and owning software.
    For a requirement like this, while I’m sure it’s the kind of thing a merit badge counselor would do, having the scout actually list 2-3 open public licenses and try to give some explanation for them may be useful.
    c. Describe the differences between freeware, open source, and commercial software, and why it is important to respect the terms of use of each.
    Giving an example of one of each of these I think would be more useful and promote a better understanding of these kinds of software than just describing them.
    5. Projects. Do the following:
    The requirements for number 5 are supposed to be the meat of the matter and serve as either a catalyst for scouts to learn or a standard for scouts to demonstrate their programming skills, but I question whether the requirements listed here are really the best way of doing it. I’ll note that the companion website is 100% essential for any scout to finish this requirement, otherwise my initial thoughts for requirement a) was that I had to choose some pre existing piece of software and somehow edit that. The companion website cleared that up and provides the necessary tools, but I think the way the requirements are presented can easily turn off a scout who may be looking at the requirements. There are a few other things I want to comment on. For starters, I think there are some ‘knowledge’ aspects that are needed. For example, there’s not discussion about compilers or interpreters or how some of the languages run or the different kinds of programming paradigms might exist. I’m not saying that the scouts should be experts on functional programming vs OOP, but it’s worth considering to ensure that scouts don’t just learn a single style of programming. Along those same lines, some others noted that some of the requirements could practically be completed by writing hello world; even with the current requirements, I think some more guidelines could be added to ensure that scouts learn some actual programming. Beyond printing out strings, knowing how to write loops, get user input and use some kind of language library are I think the minimum programming skills that a scout should know to claim merit in this subject.
    a. With your counselor’s approval, choose a sample program. Then, as a minimum, modify the code or add a function or subprogram to it. Debug and demonstrate the modified program to your counselor.
    b. 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.
    c. 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.
    d. 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.
    6. Careers. Find out about three career opportunities 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.
    I have no issue with the career aspect of the merit badge, especially since I’m considering a career that will involve programming, but I think there’s an opportunity here for scouts to explore additional opportunities that are a lot more immediate than a career. There are a plethora of activities, tools and resources where scouts can go further into programming. Everything from looking at programming summer programs, or programming classes at their school or through online classes, to online coding competitions such as Google Code Jam would be a useful requirement for educating scouts on how to further their programming skills.

    • Clearly you’ve put some thought into your comments. Congratulations. Let me address some of your thoughts.

      Safety: When writing something like a merit badge requirement, it’s better to give one or two examples than a whole laundry list. There is more information in the actual booklet and not just about things like CTS. Taking breaks and drinking water instead of soda are discussed. But before I leave this topic, let me mention that a Boston University team published a study a couple of years ago indicating that over 50% of university students, people your age, are having RSI related pain. It’s not just us experienced professionals that have to deal with that kind of pain.

      History requirement: This was deliberately general because there are a number of options. If I were to write a comprehensive history of data manipulation, of which programming is a sub-topic, you bet that I would start with the abacus and include everything up to the modern smartphone. For a scout, I would be happy if they started with ENIAC in the 1940’s and worked their way up from there. As an aside, when I was very young, I knew a man that had worked on the early computers. For milestones, as a counselor I would be happy of they caught the creation of the digital computer, the development of high-level programming languages, and the evolution of rapid development methods. Although, as a software QA professional, I’d give extra brownie points to a scout that came up with automated software testing as an important event.

      Evolution of programming methods: Methods is the word that the group of professional from industry and academia felt best described our intent. Style can refer to how a programmer defines variables, which is a debate that you don’t want to get into with two people with differing styles. At the high level, structured programming methods, object-oriented programming methods, agile methods, and rapid application development methods are some of the topics that we were thinking about.

      List of languages: O’Reilly publishing has a poster of programming languages in historical context. It is huge. We looked at it and our eyes kind of defocused. We decided that a list of any 10 programming language would do. They are going to learn something just from the exercise of looking them up.

      Intellectual Property: Software Patents and copyrights. Since software patents exist, they need to be mentioned. They do protect, for a time, an innovator’s idea. But, copyrights last longer and in some ways are easier to enforce on specific code. The discussion of intellectual property protection in the booklet runs from trademarks to trade secrets.

      Difference between Licensing or owning software and the difference between Freeware, Shareware, and intellectual property: This is a exploration of a STEM skill and career field. An overview is enough at this level. Deeper study of the topic is a mid-level to advanced undergraduate topic.

      Project requirement: If we were designing an advanced high school programming course or an lower division undergraduate course, I might agree with you. But, the purpose of a merit badge like this is to get boys who may not be into programming already exposed to the core process. The projects are designed to expose them to different programs and tools with a program or workflow that will become familiar to them. The infrastructure and back end processes like compilers and interpreters is to much information at this point in their journey. The goal here is to whet their appetite for knowledge. There was never any intent to have them end with a comprehensive skill set. Yes, the companion website is essential to success. The robotics MB is similar in that respect. Going forward you are going to see more merit badges having dynamic content on a website associated with the booklet. That allows the requirements in the booklet to be more general and extends the length of the book’s usefulness.

      As to the interest level, 820+ youth completed requirement 5 in it’s entirety during the National Jamboree. The tent was packed all the time and there was always a line to get it. We are taking that as objective evidence of the interest level.

      • I won’t push my thoughts much more, as I haven’t actually taught the badge myself – but I think a clearer cut requirement describing how code works (just a basic of understanding of turning source code into machine code) and an exploration of the various tools available for programming (desktop IDEs, text editors, Internet based cloud IDEs) might be better than having them being just implied in requirement 5.
        I’m glad to know that the BSA is trying to integrate online resources as the primary source for requirements. I remember earning my computer merit badge with a booklet that described 256Mb of RAM to be cutting edge.
        I noticed on a list of upcoming merit badges that there is and Advanced Computing merit badge being developed; what kind of requirements is that going to have? And along those lines, is there discussion of an advanced programming merit badge being discussed? If there’s as much interest as you say (which I’m not surprised about), then there’s room for another level of badge perhaps – especially since I think a lot of High School programming programs like AP Computer Science don’t do a very good job.

  23. Talk about a way to push traffic to the BSA Facebook page. There is no good explanation for having Scouts like the Facebook page other than holding rank/merit badges hostage as a SEO tactic. Luckily this is an optional requirement.

    • Did you really think before posting this? Earning the Cyber Chip is a requirement for the Programming MB, not an option. As for the requirement for ‘Liking’ the BSA Facebook page for Grade 9-12 scouts, let me turn the question around to you. If you were one of the volunteer scouters who wrote the Cyber Chip requirements and you were to write a training exercise on the use of social media, what social media tool would you have chosen that you could guarantee high level content that would not concern at least 95%+ if not all of the parents of the youth?

  24. As a possible counselor, one concern I have is over the word ‘Language’. One obvious one I am comfortable with is PHP, What else in the web do you consider a language? Do HTML and CSS count as their own language? What about SQL? Or do you need to look towards others like C and Java?

    • Great question! PHP is one of the many programming languages that are on the companion website. http://boyslife.org/section/about-scouts/merit-badge-resources/programming/. Sorry, HTML/CSS is not a programming language and SQL isn’t considered one for our purposes either.

  25. #include
    #include
    using namespace std;
    int main( int argc, char * argv[] )
    {
    string s = “Boy Scouts Rules”;
    cout << s <> y;
    return 0;
    }

    Module: Boy Scouts Rules
    Program done in Plain C++

  26. I Have read the Programming Merit Badge Pamphlet. I was surprised by the near omission of the Health Care Industry in the “Where is Programming Used?” section. There is only a small side in the Science section about computer modelling for cancer research. Health Care looks to continue to be a growing industry. Opportunities exist for analysts to program features and workflows for Electronic Medical Record (EMR) applications and programming interfaces to transfer Electronic Health Record (EHR) data between disparate systems (ex. Radiology Information Systems [RIS] to Picture Archiving and Communication System [PACS] and PACS to EHR) and disparate organizations, among others.

    It also relates to Security, a section which doesn’t mention industry security requirements that can affect or drive requirements for programming, such as Payment Card Industry (PCI), Sarbanes-Oxley or Health Insurance Portability and Accountability Act (HIPAA) compliance.

    Errors I noticed in the pamphlet:
    *Some of the Python comments on p.35 were printed in black instead of green.
    * P18-79 looks like it was laid out wrong. The text on 79 is shifted left under the spine but the left margin on 18 looks normal, so I don’t think it was cut wrong.

    • Frank, in the introduction to the chapter on on programming uses (p.33) we stated “several industries are discussed.” The team never intended to make this a comprehensive guide to where programming is used. So, we wrote about industries in the areas where we have professional expertise and none of us work in the clinical information systems area. Like many of the STEM merit badges, this badge is designed to give young boys a taste of computer programming so that they can explore the skill and see if it interests them.

      Delving into some of the security issues that you mentioned are appropriate for an advanced undergraduate or graduate course but are really too much for a brief taste of a skill set and profession that really shouldn’t take more than a few weeks to complete.

      The color scheme in the text for the Python example comes from the text editor or IDE that my colleague who wrote that example used. It may even be a color scheme that they customized themselves. For example, I customize the IDE’s that I use so that there is no red or green text. To the best of my knowledge, there’s no standard for text color in programming text editors.

      • RE: Color Scheme- It should still be consistent within the same code example. The first few comments are color coded green, then others are black. It should be noted to be corrected in a reprint.

    • My pages 18-79 seem ok…agree with the mixed color of comment statements on the python example though

Join the conversation