Coding, programming, computer science, hacking...
Do you find any of these terms to be intimidating? This is a common feeling if you have never coded before. As educators (at least in New Jersey), we are required to bring our students to a point where they meet or exceed the standards for computer science and design thinking.
Here's a quick table of contents in case you're in a hurry:
Coding can help capture the imagination of your students and give them another way to express themselves. (Photo by Robo Wunderkind on Unsplash)
Coding in Early Childhood?
Let's establish a fact right in the very beginning. You do not need to be a coder in order to help your students become proficient coders. There is so much more to coding (aka computational thinking, computer science, programming, etc) especially at the early childhood levels (pre-K to grade 2). At its core, coding skills can be built in early childhood (and beyond) by addressing these 5 "powerful ideas:"
- Social Emotional Learning
- Problem Solving
Are You Already Doing These?
Chances are good that the above 5 "powerful ideas" are already a part of your classroom. The connection between some of these ideas and computer science may not be be obvious, so let's unpack them a little.
Social Emotional Learning
You already teach the importance of sharing. Let's apply a new name to sharing. Let's call it "collaborating." Through the "everyday" learning experiences you create for your students, you have been emphasizing the importance of being able to:
- Work on a team
- Collaborate (share)
- Include others
If you're not a coder, you may not be aware of this, but there are sites dedicated to sharing and collaborating on coding projects. Some of the software you use is probably built by groups of people working together to share their ideas and skills. Actually, this site is on GitHub too!
Our ability to recognize patterns has been serving us since we were born. Research is showing that the ability to see and recognize a pattern is linked to our ability to learn language. It might seem silly that working on pattern recognition would have any impact on becoming a better programmer, but it will. Here's why.
When coding, being able to see a pattern makes it more likely for you to use more concise and efficient coding patterns. There's an expression that says "good code" should be "DRY." DRY is capitalized on purpose because it's an acronym. It stands for:
Watch as this child faces the challenge of finding the pattern.
As your young coders build their ability to recognize patterns, they are building the foundation for being DRY coders and better language learners.
We all want to develop problem solvers. The trick is to revisit what problem solving is traditionally and then think about what it could be. What am I talking about? I'm glad you asked, here's a short 5 minute video to explain exactly what I mean:
The key to problem solving as a design thinker is iteration. Find a solution and implement it. Then go back and reflect and revise. This is also true for coders.
As our young learners are learning language, we begin to teach them representation. Think of the alphabet. What is that? They are representations of sounds we make and then combine to form more complex meanings. This ability to use representations will translate when becoming a coder. Our students will be able to use symbols and abbreviations when coding. Watch this video below (only the first 3 minutes is necessary). Yes it's advanced, but it will help you see where we will take our students throughout there journey as cross-curricular coders:
Oddly enough, our pre-K to 2 learners are more like computers than our oldest students. What do I mean by this? Well, a computer is a literal machine. It follows instructions literally as you wrote them. Have you ever noticed a young person to be just like this? Enjoy this clip of Harvard's own CS50 where they demonstrate this beautifully...
We know the importance of teaching our students how to follow a sequence of steps to achieve a goal. As a teacher helping your students to become coders, you might start to find you can teach them to "debug" code by giving them a recipe with the steps sequenced incorrectly. They will laugh and everyone will have fun.
Now You Know, But What Can You Do?
Here is a short list of activities and resources you may find helpful in developing your young computer scientists:
Coding from Grades 3 to 5
As our students improve in their literacy skills, they are able to make use of more coding tools. Even though many of these tools do their best to make coding "visual," the experience is richer and better when they have a solid foundation for reading. If you have beginning readers, Code.org has a set of learning experiences designed for that too. Have you had a chance to explore the 5 ideas we covered in the Early Childhood section above? These still apply at all levels, so I recommend you give that a look too before moving on.
Checkout the Pre-Reader Express Sequence
It is important to recognize that our young computer scientists come from all backgrounds and abilities. Code.org offers learners an accessible environment in which to learn and play. Your students can select from many languages and have the ability to have instructions spoken to them in that language!
We love code.org, and we think you and your students will love it too. Code.org is (for better or for worse) focused on teaching coding concepts and is therefor less open-ended. Luckily we have a suggestion for a coding tool that gives your students the ability to learn, create, and play while being able to create just about anything they can imagine. You might have seen your students already using this tool...
MIT's Scratch program might already have appeared in your classroom as students have found alternative uses for it.
There are many tools our there like Scratch. We will be sure to tell you about them too. For now, let's discuss what makes Scratch (and tools like it) so powerful for teaching...
You're Playing a Zero-sum Game
As a teacher, you only have so many minutes to be with your students everyday. If you're asked (or required) to do something new, that means you will have less time for something else. This make teaching a "zero-sum game." Need to include SEL, computational and design thinking, climate change, and/or DEI (diversity, equity, and inclusion)? You will likely have a difficult time covering these topics without sacrificing time on something else.
How Can Scratch Help?
Scratch isn't just for letting students listen to music. Your students can create "presentations" or "choose-your-own-path" interactive stories all while covering ANY topic(s). The ways in which your students can demonstrate their understanding and learning using Scratch is essentially infinite.
Is Scratch Perfect?
We know there are no such things as "silver bullets" or "perfect." Scratch is great, and it is one tool you should really consider using with your students for any and all subjects. It does have some downsides. As with many free websites where anyone has access, there are spam bots and people promoting themselves. For this, we recommend that you use the classroom tools they make available to you (See the resource list below). This will allow you to maintain better focus for you and your students as they use Scratch. Do you have GoGuardian? This is a great way to help keep your students focused while working on their devices. We have more information on how to use GoGuardian waiting for you here.
Let's Look at Some 3-5 A&P Standards
What are A&P standards? A&P is an abbreviation for "algorithms and programming." One important message we want to convey is that much of what you already do in other subject areas can help bring your students towards meeting A&P performance expectations. When planning lessons for any content area, consider how it may apply to any of the Computer Science & Design Thinking standards (CS & DT).
8.1.5.AP.4: Break down problems into smaller, manageable sub-problems to facilitate program development
The New Jersey CS & DT standards do not require programming to be of a specific programming languages nor the use of specific devices. "Programs" can be on paper if that works best for your situation. So when you have your students planning how to solve a problem by breaking it down into smaller steps ,and they "map" out this process, you are bringing them towards 8.1.5.AP.4.
And now for something you may not be doing...
There is a performance expectation for A&P that may have you introducing a concept to your students that you have not previously taught before. That is okay and maybe even better that your students get comfortable with this concept while engaging in programming activities. Traditionally, this concept is very abstract for students and can cause some struggle. What concept are we talking about? Why, variables of course!
Luckily, computer science can help make variables more concrete. How is this? Variables on their own ARE very abstract. It represents a number that might change. But who might be changing this number, and why? When coding, being able to get user input, store that input into a variable, and then do something with it is a common operation. Now there is a clear purpose and benefit for using variables.
Take a quick look at the code above. See line 7? Here we take the user input (stored as userInput) and set it to a constant called originalNumber. We then set a new constant doubleResult to the value of the originalNumber times 2. This is our doubled value. We then return the doubleResult value. When coding, we can represent values (checkout the powerful idea #4 above) with variable names that "make more sense" than A, B, or X, or Y.
Resources for Grade 3-5 Coding
- Get Started with Scratch (for teachers)
- Harvard's Creative Computing Curriculum (Introductory Level)
- Google's CS First Curriculum (Cross-curricular)
Are you coders ready for the next level? Check out our next section...
Coding in the Middle School Grades
This section (like many coding projects) is in development.