Let’s Get Intense! (On the road again for intensive teaching)

I’m sitting in Singapore as I write this, preparing for a weekend of intensive teaching. Our intensively delivered courses span months, as does a normal course, but features a combination of in-person and on-line instruction. The in-person segment is two weekends, over a month apart, where I go through half of the course with the students. We work 3 hours on Friday night, 6 hours on Saturday and 7 on Sunday. In between that time, we use electronic fora, assignments and, recently, tools like Piazza to keep the community together.

Intensive mode teaching presents some challenges, of course, but it does have its benefits. Yes, having students together for such an intense session does require you to structure your material well, but you can rely upon entire concepts being framed (primed) for students without the intervening week of ‘the rest of their lives’ abrading the principles. Then again, cognitive elastic being what it is, sometimes it needs to get stretched and relaxed in order to allow people to pick up a principle.

My guidelines for intensives are pretty straightforward and, as I prepare myself for teaching, I like to review them so I’ll share them with you here. The last time I was in Singapore, I talked about some specific teaching practices, these are more pleasantly wooly.

  1. Concepts shouldn’t span intensive weekend sessions. Pretty sensible here, try and keep the concepts in one day if possible. Yes, development over time is good, but we’re going to try and develop with minimal revision and then use priming and follow-up to address the other issues.
  2. Prime students for later work through questions, activities and assignments. Thinking time is not at a premium here, neither is digesting time, which brings us to…
  3. Follow-up on knowledge development with questions, activities and assignments. Teach it, ask for it, evaluate it, refine it, encourage knowledge.
  4. Break up your activities. Whatever the activity, don’t do it for more than a few sessions in a row. People get fatigued, then disengage, then get bored.
  5. Avoid passive lecturing. Wherever possible, involve the student. Get them to sketch their own answer, talk about them and tie it back to the core material. In the intensive I have already handed out all of the lecture notes – I have a record to refer to.
  6. Build on interesting questions to drive learning. Posit examples, get the class discussing (even gentle arguing) about the examples and force a need for them to get more knowledge.
  7. Shape their mental models through constant review of their in-class and on-line content. Correct, suggest, reinforce, reward. Operant conditioning is a powerful tool and it can be just as effective in an on-line setting.
  8. Follow-up in person if possible. Electronic communication can be cold and easy to misinterpret. If you can, set aside time to sit down to discuss problems that were raised between intensives to solve these ‘backwards and forwards’ e-mail or forum loops.
  9. Be active in whatever on-line spaces you provide. When you answer, people will ask more. The students should feel confident that you will answer and respond.
  10. Set aside some time each day to handle this class as if you had a physical lecture or consulting time with them every week. By making time to think about their work, their progression and their participation, you’ll make it easier to do all of the above.

I try to do all of this and I can be more or less successful but I know that the more of these I tick off, the better the experience for my students, so these as a set are always my goal.


Summer Camps for Computer Students: Sustainable, Effective and Replicable

 

Great post over on Mark Guzdial’s blog on the work being done by Barbara Ericson on Computing Summer Camps. You should head on over and read it (not you, Mark, but thank you!) but the core message is so useful and transferable that I wanted to reiterate it here. Student activities that foster engagement, participation and skill development are very popular but, to be successful, you have to make sure that you do them right. I had a chance to see Barb present when she and Mark were in Adelaide and her talk was really helpful because it was informative but also really, really useful. Too many times I’ve seen people talk a great theory at me but without giving me any starting points. Her talk, and the paper, highlight good practices with a strong basis. Here are the three points that capture why Barb’s summer camps are so good – with my own commentary added somewhat superfluously.

  • Effectiveness is essential. Measuring student performance is vital to showing that students do improve – in attitudes and knowledge. If the camp isn’t effective in either increasing engagement or driving knowledge, then why are we bothering? I’m, going to mention MIKE again here – Measurement Is the Key to Everything. If we don’t measure, we have no idea what has succeeded or how we can make it work.
  • The program is sustainable and will keep going after the first flush of money runs out. This is an enormous problem with so many of the programs I’ve seen – they work beautifully while the big cash is available and disappear when it dries up. Barb’s Summer Camps are sustainable as a whole because she’s done this for long enough to get some great rules of thumb for keeping enough money in from key groups to allow an investment in slightly smaller groups (such as using a large residential middle school camp to offset the costs of a smaller high school camp).
  •  The camps can be run by other people and still be successful. This replicability is another thing that’s frequently missing from our courses. All of my materials should be able to survive me moving on but, too often, they come close but I don’t quite capture all of the details – although I strive to. Barb’s aim is to have these programs running lots of places and, by making the material available and providing seed grants, there are now 11 more camps around Georgia, returning similar results in terms of success.  There is only one Barb, but at the moment we have a 12-fold increase in ‘BarbCamposity’ through scaling. If Computer Scientists should be good at anything, it’s leveraging amplifiers to allow us to be in more than one place at once.

There are so many other places we can apply these principles and, most importantly, it identifies the focus of our efforts as educators – I don’t want my students to need me all the time, I want to bring information to them that is sound, that extends them and that supports them for years to come. By making sure that my material is effective, identifying needs, measuring impacts, I avoid wasting my time. By developing sustainable programs, which aren’t resource heavy, I can keep going whether we’re getting big dollars, small dollars, no dollars or (shudder) negative dollars as we slash budgets to ride out troubled times. Finally, my making my course so self-contained and good that someone else can teach it and someone else WANTS to teach it, I can go on to the next thing I want to do. This is liberating – I’m not writing myself out of a job, I’m giving myself the scope to pursue new techniques, to share my knowledge (such as it is) with other educators and to spend my time where it’s most needed.

Please go and read the blog post, and the paper, because both are really good and I’m only shadowing them here. One of the things I love about the vitality of the CSE community is that I can interact with, and learn so much from, people like Mark and Barb, but also share it with you – efficiently, sustainably and (given that I’m reflagging) in a replicable manner.


Nice Suit! Why My Improved Taste In Clothes Helps Me Teach.

A picture of Barney from How I Met Your Mother

Graduation day can be one of the really big days for my students, as is the first day that they go off for job interviews, or placement interviews – the first day that they have some skills, a matching qualification and have put on the clothes and trappings of business. As Barney would say, “Suit up!”

I’m not intending to start a discussion here on the utility of the suit (because for anyone who has to do tech support, there is none), the assumption that the suit is practical wear in all climates (because in Australia in high summer it most certainly is not) but I do want to talk about the comfort of the suit.

Now, one of the weirdest things about suits is the number of people who wear uncomfortable or even dangerously constricting business attire. It would be hard to imagine a more consistently uncomfortable group of people than a large group of graduating students, sitting in a packed, hot hall, waiting to graduate, necks chafing if they’re wearing ties, sweating because of the layers, possibly risking ankle damage or a fall if they’re in unfamiliar heels and, overall, being ultimately miserable while waiting for the moment when we give them the big piece of paper and say “Go off and be legen…”

Wait for it.

“…dary”.

These days, I have very simple requirements of my clothes. Everything I wear has to be as comfortable as my long-distance running gear. When you run over 20 miles/ 32 km, you don’t have the ability to carry too much spare clothing. What you wear has to be comfortable, suitable and, above all, not chafe regardless of sun, wind and rain. This is clothing to achieve things in – and all of my clothing should do this!

People told me that suits meant business. But suits only mean business because business people wear suits. This kind of dogma is subtly and explicitly divisive – explicitly because if you can’t afford a suit, then you’re on the back foot; subtly because if you can’t afford a good suit, you’re sending a message of either impecunity or ignorance. Now, yes, for special presentations, funerals and where everyone else will be wearing a suit, I will still suit up. But, whenever possible, I wear a nice shirt and trousers – or good jeans. Or shorts, in summer. This is far more practical for what I do and allows me to still walk the 3 miles/5 km from home to work and get my thinking time in. There’s neat, there’s well-dressed and then there’s some of the nightmares passed off as business attire. There is a wealth of secret knowledge, affluence barriers, expectations and, above all, hidden pitfalls in this whole business attire thing that really makes me wonder whether we’re focusing on the right things. I can’t tell my students not to wear business clothing, because the reality is that some people just won’t hire them, but I should be able to help them to develop a mental framework where they can analyse what is being asked of them and then work out if they are happy to pay the price to achieve a goal.

I don’t pretend to be wise but I can now appreciate that I have done enough things, and failed at a sufficient number, that I’ve learned right and wrong ways to approach problems and find solutions. My students need me to share this with them because, although some of the lessons won’t sink in until they do it themselves, any proto-wisdom that I can pass on may save them time. If I tell them what dogma looks like, get them focused on the right things, then I help them to identify some of the things that they will hit once they leave us. I don’t feel more or less of a teacher if I wear shorts or a suit, but, in so many ways, the way that I expose my students to knowledge, discuss it with them and reinforce it will determine how their brain is dressed when they step out into the world. It will also strongly affect how will they improve upon what we’ve taught them and how they accumulate more information into the future. Basically, if I get across to my students the idea that we are giving them a foundation, which will be solid, and show them how to build – then sometime down the line, they’re on the way to something special and rewarding.

And being confident, skilled and competent at what you do, that’s probably the best thing that you can ever wear.


I Am Thinking, HE/SHE Is Procrastinating, THEY Are Daydreaming

This is a follow-up thought to my recent post on laziness. I spend a lot of time thinking and, sometimes, it would be easy to look at me and think “Wow, he’s not doing anything.” Sometimes, in my office, I stare at a wall, doodle, pace the corridor, sketch on the whiteboard or, if I’m really stuck, go for a walk down by the river. All of this helps me to clear and organise my thoughts. I use tools to manage what I have to do and to get it done in time but the cognitive work of thinking things through sometimes takes time. The less I sleep, the longer it takes. That’s why, while I’m jet lagged, I will do mostly catch-up and organisational work rather than thinking. Right now I can barely do a crossword, which is an excellent indicator that my brain is fried for anything much more complex than blogging. Given that I last slept in a bed over 30 hours ago, this isn’t surprising.

Now it’s easy to accept that I stumble around, somewhat absent-mindedly, because I’m an academic and you can all understand that my job requires me to do a lot of thinking…

But so many jobs require a lot of thinking to be done well – or , at least, the component tasks that go to make up modern jobs.

It’s a shame then that it’s activity that most people focus on rather than quality. If I were to sit in my office and type furiously but randomly, answer mails curtly, and never leave for coffee or cake, have to schedule meetings three weeks in advance – what a powerhouse I would appear! Except, of course, that I wouldn’t really appear to be that to people who knew what I was supposed to do. I don’t do the kind of job where I can move from task to task without, in most cases, detailed research including a search for new material, construction, creation, design, analysis, building, testing and executing. As always, this doesn’t make my job better or worse than anyone else’s, but I don’t carry out the same action repeatedly, an action that can be reduced in cognitive load with familiarity, I tend to do something at least slightly different each time. Boiler plate repetition is more likely to indicate that I am not doing my job correctly, given the roles that I hold.

So, if there are no points in a week where I sit there with books or papers or doodles or sketches of ideas and I think about them – then I’m really running the risk of not doing my job. I need to produce work of high quality and, because there’s a lot of new content creation, there’s creation/editing/testing… load throughout. Some of which, to an external viewer, looks like sitting around throwing paper into the bin while I hunt for solutions.

I think about this a lot for my students. I expect them, in a lecture, to not sit and think so much that they don’t communicate. I will try and bring them back from mental flights of fancy rather than let them fly off because I’ve only got an hour or two with them and need to try to get certain concepts across. And then what? Sometime in 4th year, or PhD, I expect them to flip a switch and realise that the apparent inactivity of quiet, contemplative thought is one of the most productive activities? That a day where you write eight pages, and on review only salvage half of one page, could be the most important and useful day in your PhD?

This is why I tend not to give out marks for ‘just anything’ – two pages of nonsense gets zero, there are no marks for effort because I am rewarding the wrong activity, especially where we haven’t achieved quality. Similarly, I don’t give out marks for attendance but for the collaboration – if you are after an activity, getting the students to do something, I think it’s always best to reward them for doing the activity, not just attending the framing session! But this, of course, comes hand-in hand with the requirement to give them enough timely feedback that they can improve their mark – by improving the quality of what they produce.

Electronic learning systems could be really handy here. Self-paced learning, with controlled remote assessment mechanisms, allows this thinking time and the ability to sit, privately, and mull over the problems. Without anyone harassing them.

Years ago, when I was still in the Army Reserve, we were on exercise for a couple of weeks and my soldiers were getting pretty tired because we’d been running 4 hour shifts to staff the radios. You sat on the radios for 4 hours, you were off for 4. Every so often you might get 6 hours off but it was unlikely. This meant that my soldiers were often sleeping in the middle of the day, desperately trying to make up lost sleep as well as periodically showering, shaving and eating. 4 hours goes really quickly when you’re not on duty. People in our base area who WEREN’T doing these shifts thought that my soldiers were lazy and, on at least two occasions, tried to wake them up to use them on work parties – digging holes, carrying things, doing soldier stuff. My soldiers needed their sleep and I was their commander so I told the other people, politely, to leave them alone. My operators had a job to do and maintained the quality of their work by following a very prescribed activity pattern – but the people around them could only see inactivity because of their perspective.

Maybe it’s time to look at my students again, look at what I’m asking them to do and make sure that what I’m asking and that the environment I’m giving them is the right one. I don’t think we’re doing too badly, because of previous reviews, but it’s probably never too soon to check things out again.


SIGCSE, Birds of a Feather (BOF) Session “eTextbooks”

My blogging of these events is getting later and later but another BOF session from Thursday night, hosted by Professor Cliff Schaffer from Virginia Tech. As always, my words may not quite match those of noted speakers.

Overall, a really thought-provoking panel – we all want to write but we ant to get all of the new features, without necessarily really knowing what the features available are or what the cost will be. The fear of wasting time is a constant spectre over the eBooks market. If I make it, I want it to be useful and feature-rich for some time.

What does the term eText even mean? Is it a type of text, the platform, the concept – some intersection? The virtues are obvious: portability, additional features like hypertext and search – but is this it? What are the educational benefits?

Cliff’s main idea was that, for our educational purposes, eBooks support interactivity and, hence assessment. There are projects like OpenDSA, a data structures and algorithms course in the creative commons. They’ve got content, texts, visualisations and assessment. Once a student has finished, they appear to be confident that they have understood the material.

Looking at Khan Academy it’s easy to focus on the videos, when the assessment exercises and awards system is an equally important part. But this is for Maths which is (notionally) easier to generate problem variations for and assess the result, to allow exercise in variations.

When students interact correctly with this progress determination activities, they answer the question, get told of their mark and given feedback and can then go again. Why do we mean by interactivity? (NF note, I’ll blog on this some more, later.)

There are a lot of solutions in this space, including algorithm simulation environment – how can we go beyond the textbook? Do we need to abandon the idea of the textbook as a closed container – does it make any sense any more?

The Open University in the UK has split their material between paper and electronic – electronic because of all the features and paper because students feel ripped off without a paper copy! The electronic materials have three levels of response to assessment-based interaction: firstly mark and just note where errors occurred, on the second pass, mark and suggest materials, on the third pass, if still under performing, direct student to read the material again. This is a bespoke system, producing Flash, but they hope to move to HTML5 at some stage.

Other tools mentioned included CTAT (Cognitive Tutoring Authoring Tools), AlgoViz and the amazing interactive textbook system written in Python, thinkcspy.appspot.com. If we’re going to have systems like Khan Academy, we need them to decomposable and re-usable but it would be nice if their grading system (badges) could work with us.

On the thinkcspy.appspot.com site, Brad and David’s book (Luther college), customised by Christine Alvarado, contains mid-term grades, log files and then end of term survey. CodeLens, visualisation was most correlated with results. However, outside of class time, students did not use most of interactive elements. The night before a test they flipped through the book. To learn this content, they have to change behaviour. Had assessment items already built in to drive knowledge boundary forward but students chose not to engage with the book.

Mark mentioned a new NSF project in October – building CS books for HS students to allow them to learn CS. Can’t use apprenticeship model because HS students don’t have time to mentor or be mentored because of an already full curriculum. The curse of outreach is that we have to take the time to produce and try to jam this into a heavily prescribed and full curriculum, to interest students in something – we need a mechanism that people will consult outside but it’s obvious that people won’t (according to the above).

How do we change the behaviour? All content seems to get used the most 48 hours before the mid-term! (No real surprises) There are many open questions about how students feel about reading in general and about whether we should be changing the way we write books to reflect a chunk repository, rather than a linear narrative.
Finally, a big issue was which format we should use – we need a solid, survivable format that works with publishers, authors and readers alike. HTML5 could be a start, but MathJAX is a good solid format for equations. Cay Horstmann suggests that any XML format will work.
Basically, despite these materials having been around for many years now, there are still a lot of unanswered questions. Fora like this are a start but it’s very telling that so many people had to show up to a physical venue to have a discussion about an electronic system…

SIGCSE, Birds of a Feather (BOF) Session “CS Unplugged”

Poor Tim Bell. He must think I’m stalking him. I attended the BOF session for CS Unplugged, which quickly turned into the BOF on ‘Energising your Outreach to Schools” (my words). Once again Lynn Lambert and Tim shared their experiences with CS Unplugged to help us frame what was wrong with our outreach (or the problems that we had) in order to try and fix them.

The main issues were:

  1. How do we get into the curriculum?
  2. Bad/old equipment.
  3. Creating a meaningful activity in a very short time.
  4. Persistence – how we do we stay in their minds or their environment?
  5. Priming – how we prepare them for our visit?
  6. Time – how do we fit it all in and, more importantly, how does the teacher?
CS Unplugged is a good way to address quite a few of these problems – it provides a curricular framework (1), doesn’t need equipment (2), is meaningful in a short time (3) and doesn’t take much time to carry out (6). But what about persistence and priming? The group discussed this for a while but the main message was “Train the trainer” – we need to keep investing time in teacher training to make these activities a go-to for any part of the day and a desirable activity for busy and over-worked teaching staff.
Along the way, we had a fascinating discussion of what it is that we actually do – how do we tell kids what it is that we do? As one participant says “A doctor walks in and says ‘I save lives’. We walk in and say ‘We process data.'” That’s a hard comparison but it’s a fair one.
We liked the idea that “We solve other people’s problems” and we also discussed the notion of regionalising what it is that we did, so picking out a CS focus for a given area, where the kids would see people doing it every day, or see people appreciating it every day.
Some other general notes from the session:
  • Pick the right time to come in and interact with students, when teachers are happy to have you. Teachers don’t get a reward for dealing with students at elementary level.
  • CS BIts and Bytes is a good newsletter
  • cs4fn got another mention as a good website
  • One amusing quote from a parent, after finding out what we did, was “I had no idea that CS had any application.” To our credit, nobody cried when this was told to the group.
  • Involve people in discussing useful, relevant problems and how CS is used to help: suggestions included global warming and genomic sequencing.

Overall, another fun discussion with a lot of actively concerned people trying to make things better. Please leap in for corrections if I missed something important or got something wrong. I’m also happy to edit to add credits if required. 🙂

 


Fred Brooks: Building Student Projects That Work For Us, For Them and For Their Clients

In the Thursday keynote, Professor Brooks discussed a couple of project approaches that he thought were useful, based on his extensive experience. Once again, if you’re not in ICT, don’t switch off – I’m sure that there’s something that you can use if you want to put projects into your courses. Long-term group projects are very challenging and, while you find them everywhere, that’s no guarantee that they’re being managed properly. I’ll introduce Professor Brooks points and then finish with a brief discussion on the use of projects in the curriculum.

Firstly, Brooks described a course that you might find in a computer architecture course. The key aspect of this project is that modern computer architecture is very complex and, in many ways, fully realistic general purpose machines are well beyond the scope of time and ability that we have until very late undergraduate study. Brooks works with a special-purpose unit but this drives other requirements, as we’ll see. Fred’s guidelines for this kind of project are:

  1. Have milestones with early delivery.

    Application Description
    Students must provide a detailed application description which is the most precise statement that the students can manage. A precise guess is considered better here than a vague fact, because the explicit assumption can be questioned and corrected, where handwaving may leave holes in the specification that will need to be fixed later. Students should be aware of how sensitive the application is to each assumption – this allows people to invest effort accordingly. The special-purpose nature of the architecture that they’re constructing means that the application description has to be very, very accurate or you risk building the wrong machine.

    Programming Manual (End of the first month as a draft)
    Another early deliverable is a programming manual – for a piece of software that hasn’t been written yet. Students are encouraged to put something specific down because, even if it’s wrong, it encourages thought and an early precision of thought.

  2. Then the manual is intensely critiqued – students get the chance to re-do it.
  3. The actual project is then handed in well before the final days of semester.
  4. Once again the complete project goes through a very intense critique.
  5. Students get the chance to incorporate the changes from the critique. Students will pay attention to the critique because it is criticism on a live document where they can act to improve their performance.

The next project described is a classic Software Engineering project – team-based software production using strong SE principles. This is a typical project found in CS at the University level but is time-intensive to manage and easy to get wrong. Fred shared his ideas on how it could be done well, based on running it over 22 years since 1966. Here are his thoughts:

  1. You should have real projects for real clients.

    Advertise on the web for software that can be achieved by 3-5 people during a single semester, which would be useful BUT (and it’s an important BUT) you can live without. There must be the possibility that the students can fail, which means that clients have to be ready to get nothing, after having invested meeting time throughout the project.

  2. Teams should be 3-5, ideally 4.

    With 3 people you tend to get two against one. With five, things can get too diffuse in terms of role allocation. Four is, according to Fred, just right.

  3. There should be lots of project choices, to allow teams choice and they can provide a selection of those that they want.
  4.  Teams must be allowed to fail.

    Not every team will fail, or needs to fail, but students need to know that it’s possible.

  5. Roles should be separated.

    Get clear role separations and stick to them. One will look after the schedule, using the pitchfork of motivation, obtaining resources and handling management one level up. One will be chief designer of technical content. Other jobs will be split out but it should be considered a full-time job.

  6. Get the client requirements and get them right.

    The client generally doesn’t really know what they want. You need to talk to them and refine their requirements over time. Build a prototype because it allows someone to say “That’s not what I want!” Invest time early to get these requirements right!

  7. Meet the teams weekly.

    Weekly coaching is labour intensive and is mostly made up of listening, coaching and offering suggestions – but it takes time. Meeting each week makes something happen each week. When a student explains – they are going to have to think.

  8. Early deliverable to clients, with feedback.

    Deadlines make things happen.

  9.  Get something (anything) running early.

    The joy of getting anything running is a spur to further success. It boosts morale and increases effort. Whatever you build can be simple but it should have built-in stubs or points where the extension to complexity can easily occur . You don’t want to have to completely reengineer at every iteration!

  10. Make the students present publicly.

    Software Engineers have to be able to communicate what they are doing, what they have done and what they are planning to do – to their bosses, to their clients, to their staff. It’s a vital skill in the industry.

  11. Final grade is composed of a Team Grade (relatively easy to assess) AND an Individual Grade (harder)

    Don’t multiple one by the other! If effort has been expended, some sort of mark should result. The Team Grade can come from the documentation, the presentation and an assessment of functionality – time consuming but relatively easy. The Individual Grade has to be fair to everyone and either you or the group may give a false indication of a person’s value. Have an idea of how you think everyone is going and then compare that to the group’s impression – they’ll often be the same. Fred suggested giving everyone 10 points that they allocated to everyone ELSE in the group. In his experience, these tallies usually agreed with his impression – except on the rare occasion when he had been fooled by a “mighty fast talker”

This is a pretty demanding list. How do you do tasks for people at the risk of wasting their time for six months? If failure is possible, then failure is inevitable at some stage and it’s always going to hurt to some extent. A project is going to be a deep drilling exercise and, by its nature, cannot be the only thing that students do because they’ll miss out on essential breadth. But the above suggestions will help to make sure that, when the students do go drilling, they have a reasonable chance of striking oil.


SIGCSE Oh, oh, oh, it’s magic!

If you’re at SIGCSE, then you’re probably one of the 1,000,000 people who jammed into the pretty amazing Wednesday session, Demystifying Computing with Magic, with Dan Garcia and David Ginat. Dan and David coped very well with a room that seemed to hold more and more people – in keeping with a magic show, we were all apparently trapped in a magic box.

The key ideas behind this session was that Dan and David would show us five tricks that would teach or introduce important computing notions, such as discrete maths, problem representation, algorithmic patterns and, the catch-all, general notions. Drawing on Silver’s 1997 paper, Fostering Creativity Through Instruction Rich In Mathematical Problem Solving and Problem Posing (It’s better in German, trust me), they focused on the notions of fluence (diverse directions for exploration), flexibility (adaptation to the task at hand – synonymous with cognitive flexibility), originality (unfamiliar utilisation of familiar notation), and awareness (being aware of the possible fixations[?] – to be honest, I didn’t quite get this and am still looking at this concept).

The tricks themselves were all fun and had a strong basis in the classical conceit of the stage magician that everything is as it seems, while being underpinned by a rigorous computational framework that explained the trick but in a way that inspired the Gardernesque a-ha! One trick guaranteed that three people could, without knowing the colour of their own hats, be able to guess their own hat colour, based on observing the two other hats, and it would be guaranteed that at least one person would get it right. There were card tricks – showing the important of encoding and the importance of preparation – modular arithmetic, algorithms, correctness proofs and, amusingly, error handling.

Overall, a great session, as evidenced by the level of participation and the number of people stacked three-high by the door. I had so many people sitting near my feet I began to wonder if I’d started a cult.

The final trick, Fitch Cheney’s Five Card Trick was very well done and my only minor irritation is that we were planning to use it in our Puzzle Based Learning workshop on Saturday – but if it’s going to be done by someone else, then all you can ask is that they do it well and it was performed well and explained very clearly. It even had 8 A-Ha’s! That’s enough to produce 2.66 Norwegian pop bands! If you have a chance to see this session anywhere else, I strongly recommend it.

(A useful website, http://www.cs4fn.org/magic, was mentioned at the end, with lots of resources and explanation for those of you looking to insert a little mathemagic into your teaching.)


SIGCSE Need A Teaching Framework: Hire a Science Fiction Author?

Just following up on the Science Fiction panel that I mention earlier, I had the opportunity to listen to, and later share excellent Japanese food with, Mike Richards from the Open University, UK. One of the things he mentioned at the SF panel was that they had used an SF writer, Cory Doctorow, to write a story that incorporated exactly the kind of elements that they wanted into a story. This was used for, correct me if I’m wrong, Mike, “TU100: MY Digital Life”, with a paper that you can find on Mike’s webpage.

I think this is both novel and exciting. We can all see the value of having an engaging framework, but how many of us would think about retaining a creator from this particular discipline in order to produce exactly the right material from the start? (Of course, we’ve already seen examples of customised musical work and video with support materials from the CS Unplugged people, so what I’m really saying is that I hadn’t mapped this in this way. Wake up, Brain!)

Another way of thinking and another tool to add to the box – this is proving to be a great conference


SIGCSE: I, Robot? Using Science Fiction in Computer Science Education

One of Thursday’s panel discussions was “Using Science Fiction in Computer Science Education”, with 5 panellists who, rather fittingly, had 3 physical panellists and 2 virtual – Rebecca Bates, Judy Goldsmith, Nanette Veilleux, Valerie Summet and Rosalyn Berge.

How do we engage our students? How can we get them to understand the vitality and important of current directions in CS, as well as giving students a context for the future directions- well, form this panel: why not Science Fiction? We’re all familiar with the idea of using familiar story frames to provide a context for information but, in this case, the stories we use are well-know Science Fiction stories. But this raises an important question – what is well-known? Does membership in our community implicitly include an understanding of the number 42, the fact that Han Shot First (don’t test me here) or the mutual incomprehension of the stultifying beauty of 2001?

Discussions across this panel covered a range of different areas, from using robotic stories to discuss the nature if intelligence and whether algorithms were emotions, to the teaching of ethics with a level of visibility into the problem that we’d normally never have – stories are a free source of ideas and what-ifs that we can use, and Science Fiction is the logical choice for our community, given the basis.

Did HAL die? Did HAL commit murder? Was Deckard a garbageman, an assassin, an executioner or a traitor? What does this mean to us as Computer Scientists? How can we use these ideas in our teaching? What do we think our students should learn from the aspects of SF that we enjoy, and which stories would we also like them to know? Movies provide an excellent way to expose people to ideas, in a way that most people are receptive to. It was raised in the panel that 2001 was often a big ask for the students – I proposed the excellent Moon as an alternative, which worked slightly better in the contemporary framework. Apparently, students find it easier to handle old books than old films or television – the special effects can get in the way. Fortunately, there is no shortage of old written material – I, Robot is a rich source by itself.

This is certainly an idea that I want to try out in my own teaching and look forward to think about – once I get back home. 🙂