views:

488

answers:

5

I was just asked to talk about Objective C to a bunch of High School student for 20 minutes. They have no experience with programming at all. What topics should I cover? Should I define vocab such as Method, Class, Variable? Or should I do something else?

Any comments are helpful!

+3  A: 

20 minutes gives you almost no time to chat about programming concepts. I would simply display a "hello world" type application and give a very high-level overview of the different tools and languages needed to develop this program.

rein
+3  A: 

I'd recommend doing something to show how the tools work and introduce objects as the building-blocks of the app. I did a demo in about one minute, drag a webview, textfield and a few buttons in IB and make a full web browser without writing any code :-). Explain that each of those things is an object and what that means in the context of the app for the remaining 17 (then take questions). I used that demo to launch a talk on MVC but that might be too much depth for your audience. For reference my talk is on slideshare: http://www.slideshare.net/iamleeg/adopting-mvc-in-cocoa

Graham Lee
+9  A: 

Since you obviously cannot possibly teach them anything practical in 20 minutes, instead why not try to give them teasers into what you can do (instead of how to do it) to encourage them to learn more.

One such idea I have seen is that you could demonstrate an application that searches for all local bluetooth devices and displays them on the screen in a creative way. (ie when they turn on their phone bluetooth their phone id will appear and start floating around the screen)

Only catch is if you have any really clever students you may end up with mobile phone names changed to swear words...

Jacob
A: 

How about telling them about Smalltalk history, the creative outburst at PARC, and the philosophy underlying this branch of OO language? Then quickly explain that ObjC is an attempt to pair this philosophy with an efficient, universally known language (C). Present NeXTstep and OSX as a further outgrowth of this, and land on the unusual features of the iPhone API (from a developer's perspective).

This will give them some history, a glimpse of the creative and technical issues faced by programmers, and a sense of the role computer languages play in the broader development of consumer computing. You can even show them some syntax comparing Smalltalk/ObjC/C/C++/Java, for example. Without going into detail, that might give them some sense of what a programmer's reality is like.

Felixyz
I think this is too complicated for high school students with no programming experience at all to do in 20 minutes. They'll be left with, if they even remember it afterwards, a history of something they don't even know, let alone what it is used for. Comparing languages is even more complicated, it'd be comparing to unknowns whose' use is unknown as well.
Jorge Israel Peña
You're most probably right. When I was teaching maths at a high-school, the kids used to tell me that my classes started out real interesting but I lost them after 5 minutes. What I was trying to get at was that he could try to present programming as a *creative* activity with a *culture* (or several) and approach ObjC from that angle, rather from the technical one.
Felixyz
A: 

I would say no history. It's very vague as it is, let alone that AND programming together.

Do something like: http://teachingkids.railsbridge.org/2009/08/15/teaching-ruby-to-high-school-girls.html

JoePasq