First Thoughts: Using Code.org's App Lab and CS Principles Course for Middle School

A Welcome Addition to Code Studio

Recently, I discovered a link on my Code.org Teacher Home Page that took me to a launch page for Code.org's App Lab. Like Code Studio, the more open-ended side of Code.org, App Lab allows for open-ended development alongside guided tutorials offered in the CS Principles curriculum (intended to be taught in full-year, in a high school classroom setting). 

Interestingly, I found all of this out by accident. There was no press, that I've been able to find. If you don't have an account on Code.org, you won't even see mention of App Lab unless you're a teacher looking specifically at the listings for high school curriculum. Many of the videos that appear in the CS Principles lessons were posted to YouTube in the first days of March, although a video on Code.org's YouTube channel introducing App Lab has been up since July. I suppose this is what they call a "soft release." (Or maybe I just missed something.)

My confusion when I first discovered these resources on the site I use nearly daily (frustration, even - like, why had no one told me about this?!) quickly changed to excitement. One of my frustrations with Code.org this year, as I rolled out two different levels of their curriculum for kindergarten through 6th grade, has been the fact that, for the most part, the lessons had one answer. Either students had solved the puzzle, or they had not. This is great from an accountability and grading standpoint, but less great if what is desired is rigorous student discussion or a project-based, exploratory approach. (To be fair, there are *some* sections of Course 1 and Course 2, the elementary curricula, that allow students to explore, create simple video games and stories, etc., but these are very limited. )

When I gave a presentation for current Teach For America corps members this past winter, the solution I proposed was to look elsewhere. In particular, I suggested that teachers introduce basic concepts using Code.org, before introducing Scratch - a much more open ended, but still block-based coding platform. (I plan on discussing my experiences teaching with Scratch in a future post, but you can always check out what my 5th and 6th graders are working on over at my classroom website.) 

I think now I may be changing my tune. 

What I'm most excited about in Code.org's App Lab: 

First, like the Star Wars Hour of Code series that was released this past November, App Lab combines block-based coding with JavaScript syntax. (There are drag-and-drop features that allow for controlling layout and content, so no learning HTML and CSS required!) Students can drag blocks from the menu in familiar fashion, or they can type in the commands they need using the blocks as a guide. This is a great half-step (or full step, depending on what a teacher requires of students) to a full JavaScript tutorial. 

Second, I greatly appreciate the project-based approach. Like Scratch's online platform, students and teachers can access and share completed projects, then "remix" them to add their own flare. This strikes me as a great tool for introducing students to completed programs and letting them add functionality without having to build the entire foundation (I'll have to update in a future post about whether this proves to be true or not). For students who have had some experience, it also lets coding become a creative process rather than a series of exercises that are passed or failed (my least favorite aspect of the Code Studio courses). 

Setting App Lab apart from the introductory lessons in Code Studio is the CS Principles course - the Programming unit, in particular. Although intended for high school, it seems so far that it can be easily taken in chunks to introduce the individual concepts (functions, event-driven programming, debugging) that might be necessary for remixing a project in the App Lab library or completing simple assignments.

My favorite part, though, is that the exercises in the CS Principles course are not graded automatically. This might seem like a strange thing for a teacher with 350 students to say, but hear me out. If students are not told immediately whether their code was the correct code, they are forced then to compare, discuss, and defend their solutions with their peers. That is what rigorous engagement with content looks like in every other subject area - why would computer science be any different? 

I'm hoping to test some of the App Lab features out with my 6th grade classes in the coming weeks. Stay tuned...

[UPDATE]

Unfortunately, there was an age restriction I wasn't initially aware of. I was left with the choice of modeling dishonest behavior on the web for my students, or abandoning the project. I opted to leave it behind. Code.org informed me that the issue was that users could upload any pictures they desired, and as a result their legal department had not cleared the app for users under the age of 13. I look forward to seeing how the platform is used in other classrooms, but regret that, for now, my own classroom won't be one of those places.