Creating an app programming course for high schoolers


Two of White’s students created their own business and began to pursue careers in software development as a result of the class.

iPad integration specialist Thomas White, who hadn’t written any software code for nearly two decades, was tasked with creating an app programming class for students at his private high school. Here’s how he tackled this challenge.

In April 2010, the iPad went on sale in America. That same day, Stephen Sharp, headmaster at Monte Vista Christian School in Watsonville, Calif., sent out a number of his staff to buy as many iPads as possible, so that he could put them in the classroom without delay—making Monte Vista the world’s first iPad adopter in the K-12 environment. A few months later, he hired me to integrate the technology.

Because we were the first adopters, and because we are close to Apple headquarters, a group of us—board members, administrators, IT staff, teachers, and students—found ourselves being wined and dined on Friday, Sept. 3, 2010, in a very posh room at 1 Infinite Loop, Cupertino. In this meeting, I made a mistake that seems to be a recurring personal fault: I spoke before entirely thinking something through.

One of the presenters was talking about an app he had recently built, when I decided to pipe up with a question something along the lines of, “So we’ve got all these great students, and we’ve got these iPads, and we’ve got computer labs. So why don’t we have our students build apps for in-house needs?” As one might imagine, the faces of the Apple executives lit up like Christmas trees. As we were leaving the building, our headmaster turned to me and asked, “So, when are you going to offer that programming course?” That’s when I knew I was in trouble.

(Next page: How White created the app programming course)

I hadn’t programmed since 1992, and even then I was just a second-year college student who wasn’t anything special when it came to coding. If I remember correctly, we were using something like Pascal, and then we dabbled a little in Assembly language. But that was almost 20 years in the past, and I hadn’t touched anything to do with programming since. How in the world was I going to launch a high school app programming class for Apple’s iOS?

I started the old-fashioned way: I bought a few books. Luckily, I had a colleague who was interested, so he bought some of the same books, and we occasionally met and talked shop. This was during the 2010-11 school year, and I was slated to offer our new programming elective during the next school year. As with most people, I got busy with work, my colleague got busy with work and family, and in the end, we made very little progress. But then I stumbled upon iTunesU and the Stanford app programming course.

Stanford had begun offering classes for iOS programming back in 2008, and because of iTunesU, those courses were now accessible, and free! I started to watch the material, while trying to perform the exercises. Paul Hegarty soon became my favorite instructor. As great as the material was, I was still having difficulty, because this was not an entry-level course, and my hiatus from computer programming had created a knowledge gap that was a necessary prerequisite to the course material. Nonetheless, I pushed forward and struggled with the material as best I could. Perhaps the greatest impediment was that I was working a more than full-time job as the iPad integration coordinator at Monte Vista already, and so the time I devoted to learning how to code was too sporadic—necessitating a re-learning cycle of already covered material at each sitting.

The next school year was upon me, and I found myself surrounded by 21 eager high schoolers, ready to create the next Angry Birds. My intent hadn’t changed. I still wanted this class to be a practical one, where students would form development teams and then develop an app that met the needs of a particular staff member. I decided I would spend the first semester teaching students how to code Objective-C with Xcode, and then in the second semester, I would put the students into development teams, canvas the staff for app ideas, and then marry up my teams with a particular idea. The major flaw in this plan was that I wasn’t able to code Objective-C myself—at least not yet.

So, I struggled my way through, with a little help along the way. For example, while attending the CETPA conference in November 2011, I met with an Apple presenter who wowed the crowd by creating an impressive app, from scratch, in about eight minutes. His name was Steve Hayman, and he was awesome, not to mention a fellow Canadian. He also sent me his sample code that he used during his presentation, which I then used with my students. But my approach to that first semester is something I like to explain in terms of a Lego metaphor.

When I was a child, I loved to play with Legos. The best part was that after you had followed the instructions and built the model, then played with the model and got bored with it, you could take it apart and make something else. With each Lego set, the number of possible re-builds and new creations expanded with the number and style of pieces. You were limited by what you could build by the number and type of pieces you had in your collection, but each new set expanded upon the possibilities.

During the first semester of the app development class, I gave my students code examples that acted like Lego sets. First, students had to “build the set” by getting my code samples working.  Then, they were encouraged to tweak the code to do something original. With each code sample, my students’ repertoire of “sets” grew. My hope was that they would have enough “pieces” to build an original app request—of course, they would be limited, but expecting a regular selection of high school students to master Objective-C from scratch, in one semester, was simply unrealistic.

By the second semester, I had dropped to 11 students. From those 11, I created two development teams, evenly distributing the strongest coders. Our staff submitted ideas, and the teams chose a client whose idea interested them. I knew that not every student was going to excel at coding, so during the second semester I incorporated business concepts, where the development teams acted like independent businesses. They had to do things like create a logo, a business name, business cards, a contract for their client, and a budget. Assignments such as these helped to engage the students who weren’t strong with the coding. Given the limitations of my coding knowledge, the students had to research and find their own answers independently, solve their own problems, and simply find a way to make things work. My optimism wasn’t high, but I thought that if I shot for the stars and caught the moon, then perhaps the effort would be worthwhile. I wasn’t disappointed.

On the very last day of class, both teams plugged my iPad into their Macs and placed their apps on my machine. They presented their work to their clients. They had done it! Both apps were buggy, and there’s no way these could have been submitted to the App Store, but the fact that these high school students, with very little help from me, were able to create two original apps was beyond my hopes and expectations. I was delightedly floored with their success. But that’s not the end. Two of my students independently created their own business and began to pursue careers in software development. My dream had been realized before my eyes.

A lot more has since happened—trips to Apple, creating my own iBook text with iBooks Author, training with Big Nerd Ranch, more iTunesU discoveries, hosting our own iPad conferences—and the second year of the course has been an improvement upon the first. At the 2013 Building Learning Communities conference, I look forward not only to talking about some of these experiences, but also to motivating teachers to explore the iOS environment with some guided activities, and then providing a framework for starting an iOS App Programming course.

During my session, I’ll talk about some of the best resources that I’ve come across, as well as some survival tips for instructors who simply don’t have the time to become master programmers themselves. Some of these tips will exemplify some popular trends in education, such as flipped learning, project-based learning, and authentic assessment. Though the session is not meant to be a discussion of instructional methodology, participants will find the material entirely relevant to the current trends being explored and discussed about today’s K-12 classroom. So, come with your Macs, come with Xcode, and come with open minds to dream with me about the possibilities of our future classrooms!

Thomas White is the iPad integration coordinator at Monte Vista Christian School in Watsonville, Calif. At the 2013 Building Learning Communities conference, hosted by November Learning in Boston, Mass., July 21-26, he will present a session about his experience creating a high school app development class. For more information about the conference and to register, go to http://novemberlearning.com/blc.

Sign up for our K-12 newsletter

Newsletter: Innovations in K12 Education
By submitting your information, you agree to our Terms & Conditions and Privacy Policy.

Want to share a great resource? Let us know at submissions@eschoolmedia.com.

Comments are closed.

New AI Resource Center
Get the latest updates and insights on AI in education to keep you and your students current.
Get Free Access Today!

"*" indicates required fields

Hidden
Hidden
Hidden
Hidden
Hidden
Hidden
Hidden
Hidden
Hidden
Hidden
Email Newsletters:

By submitting your information, you agree to our Terms & Conditions and Privacy Policy.

eSchool News uses cookies to improve your experience. Visit our Privacy Policy for more information.