I wanted to introduce coding to some classes over the last couple of years, but have had trouble finding a cohesive way to do it in a long term manner. I know our school was one of the first in the province to do the Hour of Code, and while that was fun, it didn't really give the longer form of education I wanted to give to the students. Over the summer I looked at two options I had heard about in the previous school year, Google's CS First and Code.org. I played around with both during the summer, and realized both are great, they have some significant differences. CS First uses Scratch, which I really wanted students to use. I played around with Scratch quite a bit, and can see lots of fun and learning to be had from it. I even took part in a Creative Computing Online Workshop a couple of years ago from Harvard, and really quite enjoyed it, and could lots of benefits to using it with students.
CS First isn't very linear. It is set up to be offered as club, with different themes. Within each themed club the activities are quite open. So it may offer up an activity with several different avenues to complete, and even within those 3 avenues there are a number of options to make something. I think it offers a better learning experience, but to through an entire class into it could be difficult. Furthermore, it isn't all an integrated learning environment. You need to keep one tab open on the CS First website to watch videos and read instructions and click on links to Scratch projects. In a second tab you need to actually open Scratch and work on your projects in there. That doesn't sound like much of a difference, but every extra thing added to a class full of students can make it much more complicated.
Code.org on the other hand is much more straightforward. I looked in, created 2 classes of students, downloaded usernames and passwords for the students, and selected what level I wanted them to start at, from 1-4. The activities, while not 100% linear, are mostly, complete task 1, move to task 2, and use knowledge from task 1 to help. Continue for 7-11 tasks in a row, then move onto a new programming concept, such as repeating code, if-then statements, etc. Also, I can log into a dashboard to see progress for all participating students.
I've used Code.org with 2 classes now, twice with one class, and just once with a second. Both seemed to enjoy it, find it challenging, and seemed to be learning and reinforcing quite a few math concepts. It was especially fun to see some students who may not experience success with standard curriculum doing a great job, and enjoying themselves. And, it was great to see how many of the girls enjoyed taking part. The first year I did the hour of code I a 10 year old girl told me how much fun she had, especially because she didn't realize girls could do "computer stuff".