Computer Programming With Your Students – Yes You Can!
- Grades: 3–5, 6–8, 9–12
Computer programming — the term can strike fear into the heart of even the most tech-savvy teacher. I certainly thought that computer programming belonged to the realm of not-for-me college courses taught by experienced techie gurus to their equally techie disciples. This is not child’s play! Or is it?
Let me start by saying that I am not a closeted computer programmer, feigning ignorance while secretly hiding an arsenal of computer code up my sleeve. I’m just a regular teacher, one who is fairly comfortable on the computer, but who still doesn’t know the first thing about programming. Let me show you how simple it is to teach your elementary students how to create their own computer programs without knowing how to program at all yourself. I promise, no advanced degrees required!
(Check out a computer program I created to entice you to try your hand at programming.)
Why Bother With Programming?
If you’re already sold on the idea, skip down to the “Get Started With Programming” section below. If you’re still wary (and I don’t blame you), read on.
You already have a full plate teaching tech skills to your students. You probably teach your students to access information on the Internet and think critically about it, to present content using word processing and presentation software, and to communicate with others via blogs, message boards, and more. These are all enormously important skills that address our schools’ technology mandates for creating 21st century learners.
Teaching programming to your students is very different from teaching them any other computer skill. To my thinking, programming is more like chess than anything else. When your students program, they are problem solving, designing, reflecting, reasoning systematically, and self-directing, all at once. They are engaged in “true math” — that is, in the rigorous, logical, and sequential thinking skills that underlie mathematics.
Teaching programming is constructivist and inquiry-based by its very nature. A student will wonder, “What will happen if I place this code here?” and they will automatically try it, observe the interaction, and make a decision based on their observation and their intention. I would argue that to provide a true 21st century education, we must teach our students these “algorithmic thinking skills” to create constructively computer-literate young citizens.
Lastly, computer programming is fun! Your students will beg you for more time to program. You’ll find yourself auctioning off programming time as the most powerful incentive you have. Programming is heady stuff — it gives your kids agency in the digital world. They will love their newfound power as creators rather than just users. And you will hands-down win the honor of techiest teacher in your school.
Still not convinced? OK, I defer to the pros. Check out this amazing TED talk in which mathematician Conrad Wolfram explains why computer programming is the most relevant approach for teaching mathematical thinking to kids. Then take a look at the PDFs "Programming Concepts and Skills Supported in Scratch" and "21st Century Learning Skills," which explain in plain English the amazing things your students will learn and do while programming.
Get Started With Programming
Hopefully I’ve convinced you to eek out some time in your busy school day to make room for programming. Perhaps you can add it as a math unit extension. I started by using programming as an enrichment project for some of my high-ability learners. Then I realized that programming is too important to teach to only a select few and began to find other times to share it with the entire class. Don’t worry about starting small. Programming is contagious, and once you get a few students going, you will be surprised at how quickly your students will all catch the bug.
“Hello, computer!” No reply. It’s a fact that computers speak their own language. Fortunately, there are several programming languages that won’t sound like Greek to you or me. These languages, called “visual programming languages,” were developed for kids and other novice programmers. This means that your students will manipulate computer code as discreet graphic objects rather than typing in text commands.
There are several free educational programming languages with integrated developing environments (IDE — that’s just the “program that you program with.”) This Regular Geek blog post lists many of the options currently available. I’m going to focus here on the programming language that I use with my students.
Scratch is one of the more popular programming languages for younger students. It was developed at the MIT Media Lab, and allows students to create interactive stories, animations, and games by snapping together LEGO-like digital blocks that control images, movement, sound, and more. The Scratch folks list their intended age range as 8–16, and I began by using Scratch with 2nd graders.
Once you load Scratch onto your classroom computers, your students will not need an Internet connection to program with it. (In my school, the Internet crashes every other minute, so I appreciate activities that don’t depend on a connection!) You can download Scratch for Mac or PC. Once you’ve installed Scratch on one computer, you can drag the installer software onto a flash drive and then load the program onto other computers without an Internet connection. This is by far the fastest way to install Scratch onto a bunch of school computers at once.
It’s Time to Program!
Here’s the cool thing: you do not need to learn how to program in Scratch before you begin teaching your students. I know this sounds like awful teaching advice, but just this once, it’s true. You can and will learn with your students, and they will probably end up teaching you (which is a very good thing!).
If you’re like me, and the thought of “teaching” something that you don’t know well yourself makes you nervous, here’s how you begin. First, familiarize yourself with the Scratch basics by glancing over their reference guide PDF. The first six pages will provide you with enough technical background and basic vocabulary to get started.
Step 1: Introduce Scratch With a Video
Show your students the video “How to Use Scratch Intro.” (Hint: You can download the video ahead of time so that you don’t have to stream it.) This five-minute video provides a great conversation starter and will get your students excited to begin programming. It also introduces their first programming assignment — make a “sprite” (that is Scratch-speak for "character") dance to a beat.
Step 2: Explore Script Blocks
Download this 14-page getting started guide that introduces many of the basic “blocks.” I asked my students to follow the directions in the guide to begin their first program. Once they showed me their basic dancing character program per the instructions in the guide, I asked the students to change the program in at least three ways and to prepare to share their modifications with the class.
Step 3: Video Tutorials
For your next lessons, share the video tutorials on the Scratch site. After each tutorial, ask your students to create their own programs that incorporate what they learned from the tutorials. As your students continue to program, they will discover how many of the blocks work on their own. Ask your students to share these discoveries with the class.
Wow! By now, your students are programming on their own, and they are discovering all sorts of exciting new things as they do so. You’re also comfortable with the Scratch programming environment, and you’re looking for ways to integrate programming into the curriculum and to gear your students’ programming to your objectives.
Visit the ScratchED resource Web site for lesson plans, project ideas, and the support of a community of other programming teachers. This fall they just published their first downloadable curriculum guide, Creative Computing, which includes a sequence of 20 lessons that takes a lot of the work out of preparing Scratch programming lessons. If you’re looking for easy-to-implement programming design projects for your students, the Design Studio activities guide offers 16 project suggestions that are perfect for an enrichment center or an independent study project.
Yet Another Resource
If you are interested in teaching your students the concepts that make computers work, from binary numbers to searching algorithms, visit Computer Science Unplugged. They provide a free e-book with twelve mini-units on various computer science topics appropriate for elementary school classes.
Jump in and start programming with your students. It was far less intimidating than I thought it would be to help my students become technology producers instead of consumers.
Questions? Comments? Please share your thoughts about computer programming, as well as any questions you may have. Stuck with a program and want help debugging it? Let me know — I’ll ask my students.