Tag Archives: middle school

Coding in Middle School

26 Apr

I’ve been teaching programming to 7th and 8th graders for 3 years now, and I’ve been refining my approach each year. The first two years it was just part of my math class or technology class while this year I have a class dedicated to programming. Students love it; it’s creative, challenging, frustrating, rewarding, and as Steve Jobs said: it really teaches you how to think.

This year I focused on three tools to deliver my content.

http://www.codehs.com:  This is my main programming environment for learning Javascript. All of the lessons have accompanying videos that guide the students through increasingly challenging exercises. The first module starts simple but becomes challenging quickly. Students learn many important programming concepts in this first module: functions, if statements, for loops, while loops, etc.  Most students don’t finish this first module in a quarter long class, and the follow-on modules teach graphics, animation, data structures, and game design. I’ve had a couple of students who just ate this up, and finished the entire program (but this took more than one quarter of work). These kids are now coding their own games outside of class.

http://www.playcodemonkey.com: I started the school year only teaching with CodeHS, but later quarters I augmented the experience with Code Monkey, especially when I started teaching 7th graders. Code Monkey is easier than CodeHS, and more game-like. Students transition nicely from Code Monkey to CodeHS.

http://www.CS-First.com: This is a Google site that is promoting programming for younger students. It’s run like a club, and Google has been generous about providing materials to make the experience more fun (passports, stickers, etc). CS-First uses Scratch but in a project-oriented way. You can sign up for different themes: Art, Game Design, Fashion, etc and the students are led via videos on the themed projects.  I like this approach because by itself Scratch is too open-ended to serve as a good code learning platform.  CS-First does a good job of parceling out useful coding concepts as the projects get more and more interesting. I use CS-First once a week with my students.

Next year? This summer I am attending PLTW’s Introduction to Computer Science training, and will be offering it to my students next year.

A Bootstrapped Engineering Elective

9 Jul

For the last quarter of the school year I was assigned to teach a technology elective. The good and bad of these electives is that there’s no curriculum, at all. So I decided to make it into an engineering class.  We had so much fun and the kids did too 🙂

Here’s the basic outline we used (me and my student teacher).  BTW, I made some modifications here to reflect some changed and additions I would do if I did it all over again.

Computer Programming (at least one month long, easily longer)
Use Scratch platform http://scratch.mit.edu/   : this is an awesome kid-friendly environment to learn programming. It is very powerful and you can program simple to complex projects. A student’s imagination will go wild here.

    Potential Class Sequence:
  1. Start with students doing Scratch’s Step-by-Step Intro
  2. Assign tiny student projects, for example:
  •  make the sprite ask for the user’s name so it can greet the user “Hello Jane”
  • create sprite and make it walk to the edge of screen, turn around, and then say something
  • create animation: child walks with balloon until runs into green bush then balloon is released.
  • create a roller coaster which would require two sprites (the roller coaster and the car)

An idea is to have these tiny projects in a list that the student complete and check-off throughout a week. This always

       students to work at different paces.
        3.    Assign each student a finished Scratch project (under Explore), and have them become an expert on it.  They need to  analyze the code and see how it controls the program. This will exposes them to more complex constructs and routines, and show them what is possible with Scratch.
       4. Then have the students create a game that emulates a known game. There are lots of examples of these: pong, pac man, etc
       5. Have student design and create their own game. I had my students spend a day documenting and flow charting what they were going to design before they got access to computer. Forces them to plan at least a little. Here’s the worksheet I had them fill out after they white-boarded their game design ( Scratch game-flowchart).
Roller Coasters (at least 1 week)

  •   Best if you can get a room dedicated to this for a week. You want to be able to start each day from where you left off the day before.
  •  Purchase pipe insulation: dark gray foam and cut in half. Explain potential energy, kinetic energy, momentum, centrifugal force. Let them loose.  This is all I  did, and reinforce those physics concepts each day. The students will surprise you with the creativity and enthusiasm. It’s good to have lots of masking tape, paint sticks, and of course, marbles.
Bridges Design ( 2 weeks)
  — Leonardo’s self-supporting Bridge from paint sticks
  — Popsicle Stick Bridges from blueprints that I can’t post here, but are essentially the same as the bridges described on Mr.   Kallhood’s Blog (see  http://kallhoodblog.edublogs.org/popsicle-stick-bridges/) .  After the students build them, it’s fun to see how much weight they can support. The one below, held about 100 pounds worth of textbooks!
 Aeronautical Engineering (1 week)
  We did this for just 1 day. We watched a video on plane forces, discussed Bernoulli effect, and created paper airplanes with ailerons from this NASA site . You could easily expand this  to talk more by investigating this NASA site more.
Electronics (time: ??? )
We used  Elenco’s Snap-Circuits to design different circuits. Students created radios, and other projects. This was one station in a week of doing stations. So each group did this for 1 day. You could easily expand this into a week.
Simple Machines (time: ???)
  Pulleys, inclines, levers, etc. I bought a little kit (around $8 at Barnes and Noble) on simple machines. Each group did this for 1 day. This can be easily expanded to a week. There’s also a fun ipad application on simple machines by Kids Discover.
Other relevant computer activities:
Lots of great, complex video games at www.engineering-games.net  (light bot is a great programming game).

Download Autodesk’s Tinkerbox on iPads. Very interesting mechanical engineering game.

Please let me know if you have other ideas to add to this list. Enjoy!