NEW: For a prettier blog interface, see the Wordpress version!
- 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.
- 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).
- 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! what to do - customer running out without paying, customer not having
enough money, etc. I think the following factors helped:
- Some students had flowcharts, some students had really neat
scripts... cool!
- 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. 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. - 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
know? - 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.
I'd love to hear about any questions, comments, suggestions or links that you might have. Your comments will not be posted on this website immediately, but will be e-mailed to me first. You can use this form to get in touch with me, or e-mail me at sacha@sachachua.com .