One of the biggest challenges in teaching a coding class is the curriculum. What are the kids going to do during each class? How do we keep them challenged? Is the class something that they enjoy, or not?
Discovering Curriculums Online
I have been feverishly searching the internet for a coding curriculum that works for an in-person coding class. There are a lot of resources that are geared toward online classes, but very few for in person classes.
There are a lot of people thinking about this same problem right now. Every day, I hear about parents and teachers trying to teach their kids to code, and going online to figure out how to do it.
Coding Curriculum on GitHub
I’m putting the curriculum I’m building on Github so that other parents and teachers can learn from it, or use it for their own needs. Github is a tool that is used by software developers to share and discover code. But, it’s also great for sharing and discovering any “structured” data. Since I’m using github, you can change the curriculum as you need for your own purposes (just sign up for a Github account and then click the “Fork” button on the project)
My curriculum is fairly straightforward - it’s a way to guide me through an 90 minutes with 4 or 5 kids. I’ve decided to use GitHub to host the curriculum, and I’m using a simple language called MarkDown to write the curriculum. MarkDown is like HTML, but a bit easier to write. For instance, you can just write text, with no formatting, and it’s smart enough to make things format fairly nicely. It also supports most of the basic web formats you’d expect - images, links, etc. It’s a bit more technical than writing an email (since there are a few special codes) but if you are teaching a coding class, you probably won’t mind a few more codes, right?
I’m writing the curriculum as I go, since I need to see how students respond to each class to structure the next one. My best guess on how the class will go is available on Github. You can “star” the repository on Github if you want to follow along as i change it. You can also use the Issues feature of Github to provide comments on the curriculum itself. Finally, if you want to make your own curriculum, you can Fork it and make your own. There will be a lot of changes (until the end of December 2013) so beware if you are trying to stay “in sync” with me.
View the curriculum here:
A few months ago, it was Eli’s birthday, and we invited his friends over to play MineCraft. I brought out some of my old laptops, and some of the kids brought their own. I tried to get everyone setup to play Minecraft on our network, and that took some time, even with just 8 or 10 kids.
What I learned from that experience was that even having some basic links and setup in a web browser can go a long way to making the class more effecient.
The kids I’m working with don’t all have email addresses - so I need a way to communicate with them as well, give them links, and give parents a way to follow what their kids are working on.
So, I’ve decided to write some software called CodeClub that lets you pull in any ccurriculum available on Github and use it to run your own class. The software will be free, open source, and MIT licensed. Right now, that repository is blank since the code is pretty rough.
CodeClub is what we are going to be using in the class. Once it’s a little better, I’ll put it up with some instructions on how you can easily host it yourself.
First class starts tomorrow, we are all very excited to get started. Stay tuned on my blog to learn how it goes.