During the 2015-2016 school year, I’ll be teaching iOS Programming at Lincoln Sudbury as a “self guided” class. I taught a class of the same title during the 2013-2014 school year, and my thoughts on how to lead such a class have evolved. Here I’ll discuss my experiences the last time I ran the course, and my thoughts about what I plan to do with the class this coming year.
Some Lessons from the Last Time
The kids last time were mostly engaged, but sometimes had trouble focusing. Some chose projects that were too hard for them, and didn’t know what to do. They wrote code and had trouble letting go of it. Still, some great projects came out of the class.
More Common Experience
In order to talk about code, kids need common experiences and common language. In my upcoming class, we’ll do four units (about 8 weeks, I think) together at the beginning. These will be:
1. The calculator project that opens the Stanford Winter 2015 iTunes course. This is a great introduction to all the things. Swift (including a great bit on optionals), Xcode, AutoLayout, and Blocks are all covered. This last bit (Blocks) may be a little too much for my students at this point in the course, but the rest is so good that its still worth it.
2. A playground project in Swift. I need to find a good one, or make one.
3. The “Bullseye” project from the iOS Apprentice series by Wenderlich et al.
4. I give them a fairly simple project to do and they do it on their own. No tutorial. Probably to write a “MadLib” app.
Students will finish the Common Experience part of the course at different times. When they do, they will be shown a map of how their year can go from there. The Map is a flowchart showing students what path they can follow to get where they want to go.
The main features of the Map that I feel are important to a successful self guided course are:
1. You can see where you are going. If you want to make a multiplayer game, you can see what kinds of things you’ll need to learn on the way, and how many steps it will take to get there.
2. You finish what you start. Once a student chooses a unit from the map, they are committed to finishing that unit. That means each unit has to be finish-able, and it also must have some assessment rubric that is clear to the students from the beginning.
3. Units are not too big. This is not a difficult thing to achieve. Most tutorials from books and the web are in chapter sized chunks which can be completed in 2 – 3 weeks at most, assuming students start in an appropriate place to do the tutorial. That is what the map is for.
Eventually, all students have to do an independent project, where they think of an idea and then implement an app. They will have to do at least one in the first semester (starting by December), and another, more ambitious one in the last quarter of the course (starting in March).
A big part of the course is asking students to stand up and share what they’ve learned with others. After the Common Experience is over, students will rotate giving 5 minute talks at the beginning of most classes. Everyone will give at least three talks – one in each quarter after the first.
I think of “Self Guided” as a skill I am teaching, not one I expect students to come with. Its my secret agenda for the class, and more important than the content of the class itself. In ten years, my students might or might not be programming iOS devices (or anything else). But if they are, it won’t be because they learned it in my class. It will be because they are learning it on their own, all the time.