This article will discuss the top seven from heaven coding platforms which theCoderSchool uses to help teach its high school kids to code. You may be asking yourself, why is it the top 7 and not the top 8 or the top 6 or 5.... It's probably the same reason that the top selling abs workout video is '8 minute abs' vs. 7 minute or 6 minute abs. It actually could be any number, but seven seemed like a good lucky number - The Lucky 7. In all honesty, in my role, I meet with the general managers and Code Coaches® regularly and am always hearing about all the great and new platforms being used to teach theCoderSchool students how to code. However, there always seem to be a few platforms that are more popular and where the Code Coaches® tend to gravitate towards. When I reviewed those commonly being used with our High School students, the list just narrowed itself to these seven.
Both of the cases mentioned above are real scenarios that happened and both worked out really well where the students had a blast, were engaged, and learned a lot. How does all this relate to this article? It doesn't directly, but I wanted to give you some background on how the high school students minds work versus the younger kids so that you can get a sense as to where the platforms/tools being used to teach them are coming from. For high school kids to learn to code, the platform does not need to be super graphical. Although it can be, it doesn't HAVE to be because they're plenty old enough and able to focus. As long as the subject matter is of interest, they will be there with you each step of the way. But try and force a boring topic down their throats and they will leave you in a heartbeat. Remember, high school kids can generally already drive and are becoming adults now. They can and will make their own decisions.
Here's our top 7 list (drumroll please....!):
1. Coding Ground
Coding Ground is a really nice option to teach our high schoolers almost any language. Coding Ground is an online IDE for pretty much all the major languages (java, c++, python, etc.). It even has cobol so how's that for everything! It's nice because it's available online and is free. However, it is also limited for those same reasons and as your high schooler gets more advanced we do recommend for them to start using their own laptop and for example if learning java to install eclipse as they become more advanced.
4. Pygame (Python)
Pygame is a set of python modules designed to help with creating video games. It includes computer graphics and sound libraries which are to be used with the Python language and really enhances a high schooler's experience when choosing to learn Python. For any student interested in game development this should be at the top of your list, especially if they are also wanting to learn some Python. It cannot run on just a browser though and does require installation onto a local machine. Or you can use it on a raspberry pi which has it installed. Speaking of pi, that's definitely another great platform and guess what? It's #5! How's that for a great transition? So let us dive into number 5....
5. Raspberry Pi
The raspberry pi is the hottest new credit card sized computer. Kids of all ages are attracted to the raspberry pi! For this article we'll focus on its aspects that are attractive to the high schoolers. It's a great intersection of hardware and software. It's a kit that allows you to pseudo build your own computer. It's pretty straightforward, but since it has you doing things like sticking the heatsink on, it feels low level and really gives the kids a sense of pride and ownership from building it. Once built, the options are endless with it's ability to connect and control so many peripherals. It fits in well with the IofT popularity and buzz! High schoolers are having so much fun utilizing the pi to do cool things they don't even realize they're learning coding too! It offers exercises ranging from linux commands to python coding.
Unity is an amazing cross-platform game engine developed in 2005. Unity is notable for its ability to target games to multiple platforms and focuses on helping developers build 3D games. Any high schooler interested in game development will enjoy Unity. Unity can even at times be used to teach younger kids some basic coding concepts while having fun working on a 3D game. But in general Unity is meant for the more advanced which fits your high schoolers really well.
7. XCODE (Swift)
Xcode is an integrated development environment for macOS containing a suite of software development tools developed by Apple for developing software for macOS, iOS, watchOS and tvOS. First released in 2003, the latest stable release is version 8 and is available via the Mac App Store free of charge for macOS Sierra users. Xcode is great for any high schoolers interested in creating iphone apps. It's exciting for your high schoolers due to its direct relation to Apple and mobile.
When teaching a high school student how to code, pick your content and subject matter first and let that drive your platform choice. You'll also notice from our earlier blogs that there tends to be more platforms to choose from as your students get older because their interests and their abilities broaden quite a bit. And as always, don't forget to add the secret ingredient, a Code Coach® that drives the passion and ignites the learning! Happy Coding!