There has been a proliferation of online classes and resources for learning coding over the last couple of years. With all that’s out there, one might think there’s no need for a Computer Science teacher or program in schools anymore. However, I’ve found many of these resources can be great tools for teachers, both for professional development and for the classroom. The four resources below are ones I’ve had great success with over the last couple of years.
1. Udacity‘s Computer Science Courses
(free for many, certification costs a fee)
Unlike some of the other MOOC providers out there like edX and Coursera, Udacity is focusing on Computer Science. Their offerings are extensive, ranging from beginner level courses to advanced courses like Machine Learning and Artificial Intelligence. When students can’t fit my introductory course into their schedule, I often recommend Udacity’s Intro course. It’s taught in Python, which is the same language I use in my courses, and covers all of the topics I do and more.
I’ve taken some of their advanced courses to keep my own skills honed. I’ve delved into the Design of Computer Programs and Programming Languages, both to gather ideas for my classes, but more importantly, to make sure I don’t stay stuck at the high school level of Computer Science myself. Every once in a while, I have students who are ready for challenges greater than the ones I offer in my program, but who don’t have time to take a course at a local college or university. Udacity’s advanced courses work well for them as well.
Checkio is a “game for coders”. It’s Python-based (notice a theme here!). While I’ve recommended this site for students, I’ve found it most useful for myself. To proceed through the game, you have to solve a series of puzzles. The puzzles are challenging, but don’t take too long to solve, making it a good quick way to get some practice. It’s like Candy Crush for programming. After you solve a puzzle, you can read the discussion about different solutions. I like seeing how differently people solve problem. Often really experienced programmers will use a recursive method, something my students definitely don’t venture into. For students, it can reveal how there never is one right answer to a programming problem and perhaps learn new ways to solve problems.
I discovered Grok Learning, an Australian based site, through a programming competition they ran last year. My students participated and did fairly well. While their offerings are limited (they only have 2 courses right now), the courses are really nicely put together and perfectly suited to younger students, especially those completely new to programming. They’re a lot more straightforward than the Udacity courses and have a very friendly feel to them. I now suggest their courses more often than Udacity’s or recommend them before going to Udacity. They run on a subscription basis, so you can get access to all their courses or the competitions for $20 or $30 per person for a whole year.
4. Khan Academy
Khan Academy is the big hitter in online learning resources right now. Known primarily for its math program, they also have excellent programming offerings. This year, I found myself wanting to change what I was doing in my 8th grade Computing class for the last 10 week section and had no time to develop anything. I turned to Khan Academy where I could set up a class and have the students proceed through the lessons at their own pace. I could check in with their progress.
The one issue I had with the tracking piece is that Khan Academy is set up primarily for math, so it took a little digging to track Computer Science. I couldn’t set goals or skills for my students the way I could if I was tracking their math progress. That said, the actual lessons were fun for most of my students. They use Processing JS as their programming language, which the students picked up fairly well. They were able to create graphics and animations and learn important concepts like loops, variables, and functions.
This is just scratching the surface of what’s out there, and new resources seem to come out every day. While it might seem like these are trying to supplant a teacher in the classroom, there really is no substitute for face-to-face instruction. Even when I used the Khan Academy materials, students still needed help and had questions that weren’t always answered directly by the online tutorials.
Teachers can take students beyond the resources to help them explore further than they might without them. Used wisely, these resources can support and enhance what teachers do in the classroom and support their professional development. Find the ones that work for you in your situation and take your Computer Science teaching to the next level.
Feature image courtesy of Flickr, Riebart.