Things I set out to do

- Show them that objects are part of everyday life.

- Get them to practice defining objects - roles and responsibilites -

in a familiar, real-life situation.

- Get them to start thinking of error cases - not enough ingredients,

ordering items not on the menu, that sort of thing.

What happened during the plenary session

- No projector. I prepared Powerpoint slides beforehand, but planned

for the no-projector case by printing out slide handouts and working from there. Not really a problem, although I should prepare written instructions (handouts? manila paper?) next time. Actually quite fun.

- I considered following the original plan (giving them the scripts

and asking them to follow it) but I thought that asking them to write the scripts themselves would help them learn more. From the class discussion and the reaction to the activity, I think that it was effective. Most people were excited about the activity and there were a few insights that I wouldn't have been able to elicit otherwise.

- Getting them to say "object oriented programming" together at the

start was pretty fun. I think that helped send the message that this wasn't going to be an ordinary lecture, and it didn't take a lot of time.

- Martin and the other teachers were very helpful. We walked around to

check on groups' progress while they worked on the scripts. I noticed that some groups weren't working on the scripts, so I made sure to pass by and help them understand what they needed to do.

- Contrary to popular opinion, our freshmen are not quiet.

They're actually quite a lively bunch.

- The dormers are seriously overloaded. One of the Cersans obviously

lacked sleep.

- I was seriously tempted to pantomime parts of it, and I probably

would have if I had discussed the roles in more detail instead of letting them define it themselves. I also managed to resist the temptation to get them to sing a song... ;)

- Definitely processed it. Duh. Hello. ;) I love getting people to think

about what they learned (and how they learned it, even).

Interesting things that came out
(in addition to what I had originally planned)

- A student observed that the scripts they wrote were

expressed in terms of reactions, but the Java programs they had experimented with in the first lab assignment were more like commands to the computer. When you define objects, can they take the initiative?

I explained that even the Java programs they wrote in lab assignment are also 'reactive' in nature. The "public static void main(...)" part says what the computer is supposed to do when you tell it to run "java HelloWorld". So, essentially, all computer programs _react_ - they react to us. Briefly talked about event-driven programming.

- A student observed that although the objects we were

talking about were very real, the Java programs they wrote were just plain text. "Why aren't there any pictures?"

Pointed out that when they were writing the scripts, they were using plain text too. =) So plain text can describe something that is more than just text.

- A student observed that their scripts weren't complete. (Example:

our test customer asked for chopsticks, and the waiter was, like, "Huh?")

Told them that now they have an idea of how difficult defining objects and writing programs is, and that it's impossible to write a script or a program that deals with all the possible cases. Pointed out need for way to fail gracefully. ("I'm sorry, sir, I don't know how to do that." or "I'm sorry, but we don't serve hamburgers. Would you like to order a spaghetti bolognese instead?")

- They really liked testing! They thought of a lot of cases and

what to do - customer running out without paying, customer not having enough money, etc. I think the following factors helped:

  • situation from real life
  • they can't easily test those things in real life without being humiliated or chased

- Some students had flowcharts, some students had really neat

scripts... cool!

Things I can do to improve

- Have handouts for each group - even just one sheet with the

instructions. Of course, this means I should prepare earlier instead of just the time between 8:30 - 2:30... Hmm. Possibly skip lunch next time, although lunch was a lot of fun, so think it was not all that bad a decision.

- Prepare earlier. I suck at not cramming. Actually, well,

more of "try to get nifty ideas earlier" and "don't get distracted by Harry Potter 5 (or any book, really)".

- Make the scripts more formal. Can be done by preparing the

aforementioned handout.

- Balance the work a bit better. Waiter does way too much work. Can

someone help tweak the example?

- Make them really stick to the script when testing. Maybe this can be

done by telling them to roleplay a computer, or swap scripts around within their group and try to find bugs by taking everything literally. I think the latter might be fun, and it will probably get people to participate more.

- Make testing even more rigorous. Instead of just picking 4 people

from different groups and having them act out their scripts, we can pick 4 people as the actors and get their scripts from 4 _other_ people. More testing mayhem!

- Find a better way to facilitate discussion. I had around half an

hour for open discussion. I resisted the temptation to fill awkward silences. A number of people volunteered insights/questions. I feel that it could be improved, however - maybe a quick group discussion so that they could share what they learned (written down, maybe?), and then a whole-class discussion (spoken so that other people can hear)?

- Take attendance at the next plenary session. Almost all of the

people in my class showed up (those who didn't had a schedule conflict), even though one of them was really sleepy. (Suggested that he should just pass by the department one of these days, but he insisted on staying.) Didn't recognize other people, though - wasn't sure whether they were CS or MIS. Should at least do a show of hands. (And actually remember the numbers!)

- Maybe get them to mix more so that they group with people they don't


- Find a way of taking anonymous polls so that I can evaluate the

session. One-minute comments to be dropped into boxes on the way out?

- Compile whatever OO humor I run across. I didn't know any jokes

that might apply. =)

- Think about using the wireless mic. It didn't work when I tried it,

so I settled for voice projection (thank you, St. Scho, for making us all act on the stage!). Clearly heard from back, I think, as students nodded when I asked. Should consider asking them a question next time - "I need to check if I can be heard from the back. You there - what's 1 + 2?"

- Of course, I need to be clearer. Should work on that. Make goal

clearer, make steps clearer. =)

- Find a way of recording lessons learned - acetate, pen, and OHP?

- Describe the whole thing so that other teachers can do it or improve

on it.


Much work to be done, but suspect that the plenary was not entirely a waste of time, and have learned much from it. Hope students have done so too. Will follow up with a short (one? two?)-minute (ungraded?) quizlet asking them to list down the most important things they learned from the plenary session.