Don't buy what's flashy. Buy what works. If you're trying to start a coding program and want to get kids into code, it should be the mantra you live by. The overall goal has to be learning, and I think it's so important that you start with that concept because there is a whole lot of flash out there. It's almost like we need a change of mindset already.
We are in such an interesting place when it comes to Education Technology. It's almost a transitional phase. It feels like the instructional materials and tools market has all but died with only a few startups surviving through the inevitable culling down to the big boys. Just look at your own school for a second. I can almost guarantee the dominant player either starts with a G, M, or an A. You probably even have more than one.
If G, M, and A are there, it becomes incredibly difficult to compete, and that has a direct effect on where startup innovation goes. It means it goes to more fringe categories and coding falls into that category. It's something we all know is essential, but it's not mandated yet. That lack of mandate also means there is a flash, but only a few provide substance. Don't get fooled. These five tips will help you pick something great, and I might be able to help with that...just saying.
1) CORE connection
A core connection is the place you have to start, yet most people don't. Unless your school has a dedicated STEM program or innovative teacher, it's coding curriculum is more than likely done in special times (like the Hour of Code) or a specialized class. Neither is necessarily bad, but neither will get the world to where we need it to be.
How do we change that? We have to get down to what code is: a CREATIVE tool. We have to let kids use code to tell stories, build games, create websites, and much much more. There is tons of research out there that proves student creation is one of the most significant ways to learn. Why not combine it with a future-ready skill?
I think some teachers would tell me that it's just not possible. They may not understand coding, or they don't like the extra factors that come with student creation like the time it takes and the grading that comes with it. All of those concerns are things we can overcome! Some tools make the coding easy, and the hard teaching parts that go with it can be overcome through some automation. In the end, it's all about doing what's best for kids.
This is the one that drives me the craziest. Deciding the ceiling is absolutely critical to choosing hardware on a limited budget, but it also applies to software. It's all about seeing how many applications you can use with a particular product and unfortunately, the flash of today's world is getting in the way of seeing the ceiling.
When you start with a particular coding product, you should always be asking, "What can I do past the base function?" and "What can a kid build?" It's easy to see where this an issue with robots. There are super popular robots out there that do a basic function well, but once you get past that, things fall off a cliff. When you buy hardware, ask yourself, "What can the kids build to go with it?" Software has a similar question: "How many DIFFERENT things can kids build in a platform?"
If you ask those questions, things began to come into focus. Coding platforms, robots, and hardware should never be purchased for the pre-built stuff and functions to get you started. You should buy them because they have that stuff to make it easier on the teacher, but they ALSO have a whole world that can let kids make.
Play is good, but at some point, a teacher is going to have to show some mastery from the student. They need to be able to measure the student's performance and adjust the instruction accordingly. They also need to be able to intervene if there is an issue. Coding platforms and software need to be able to do that, and it's almost more important that it's there than in a standard CORE (like Math) concept tool.
The importance of using data to adjust instruction is just good teaching. It lets teachers find those problems areas and help students through them, and it enables them to personalize the instruction to fit students needs. With code, mastery becomes even more critical because issues may not be immediately apparent to a teacher through observation.
4) A Progression
Coding is such an important skill that the natural progression has been to bring it to children as young as pre-schoolers. Of course, that doesn't mean that these kids are coding C++ and HTML yet. It's more about the skills of coding. It's the way coding teaches you to problem solve and think. It's teaching that skill of creation. Starting kids early allow them to progress just like they would with a language. There are no preconceived notions!
While there are A LOT of tools out there that teach basic computation skills, the key is finding one that allows for a progression to real text code. Not every kid is going to be a programmer but making that connection to it is so important. You want kids to be able to see what the overarching goal of learning code is, and where they can go with it. You never know...you might have the next Steve Jobs in your room.
What does this mean you are looking for? To start, many places begin with block code, but not many convert that block to text. Block code is supposed to simulate text commands in a more straightforward format, but the conversion is not exact. Many companies out there have just run with it and said that's ok. They have not taken the time to translate it. Find the right one that lets kids see that translation, let's kids see where they are going, and it gives them the overall why of coding. It's a great way to connect it to the real world.
The other thing to look for is a real progression of skill. There are tons of apps an tools that just put you in a workshop, and say go. They don't outline a sequence of skill that builds on what you previously learned. Just like reading, kids aren't going to start being experts. They are going to learn a little, and then a little more, and a little more. Having a clear delineation of that path makes it less likely they will get lost. If you can have that clear path, kids can quickly build into coding Java, Python, HTML, and other languages
Think back to a time you started using new technology in your class. What's the hardest part? From my perspective, it was never the actual content. It was always getting folks started with new technology, and I think that coding products tend to be especially tough because some engineers build them in a way that would help them learn.
The first thing I always look for in a coding product is simplicity, and one of the main places to start looking is how many clicks does it take for kids to be able to find stuff. This becomes especially noticeable when doing block coding. Students need to be able to see and sort through blocks with ease. Depending on how many blocks there are, you may have to have some menus, but if a kid always has to click to find things, it loses a lot of the focus.
The other thing to consider with UI is how much you can do in one place. There are so many coding products out there that do one thing well, but it just stays in that one thing. The apps that come with robots tend to be an excellent example of this. They do that one thing well, and then you have to go to another app to do anything else. If you think about it from a classroom perspective, that's a significant time suck. If you can do a bunch of stuff in one place, you eliminate that time suck.