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.


Teaching in the data deluge

I currently subscribe to a design magazine called Desktop and an article called Artifacts reminded me of the big difference between my college life and that of my students. The article discussed the collection of inspirational and reference documents, books and items kept by professional designers, with some illustrated examples, but highlighted the difference between the early days of modern design and now.

“There was a time, not long past, when seeking inspiration and influence was the challenge, not sorting it.”

The article goes on to note the difference between sharing a dog-eared copy of a design magazine, going to the library (which the authors define, tongue in cheek) and having to copy printed resources.

Of course, our students have gone through the same change. I had to go to the library,as a student, if I couldn’t buy the book. Locating was the problem. These days my students have to be able to classify, sift and order because there is so much information to hand. Of course, no all sources are equal and the implicit authority granted by physical publication now faces off against the ease of availability of the top ten hits on Google.

I find this more challenging in some ways but far more interesting in others. Yes, it’s easy to incorporate work that’s not your own but we are living in the data deluge – this fact allows us to have discussions about assessing quality, determining validity and authority and what plagiarism is and, importantly, how to avoid doing it, even unintentionally.

I much prefer a world where the problem is sifting. It forces us to look at far more interesting and important questions than “when does the library open” and allows us to spend our effort on understanding and using knowledge, without expending the majority of our effort on trying to locate already-published information. That whole “shoulders of giants” thing works a lot better when you can see the giants and find their shoulders! A surfeit of shoulders is a much better challenge to have.


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.


From Zero To Legend (of Zelda): Rapid Achievements in Programming

When I first went to college, I had some programming experience because I’d been a keen Apple II programmer. This meant that I did have some idea of how much work was involved in making cool things happen on the computer. When you only had 7 colours in high res mode and you had to super pixel to make orange – you quickly realised that cool games took time. The people I started college with came in three varieties: people who could program in some sort of computer language (to varying degrees), people who knew what computers were but only as users, and people who had never touched one before. The people who had used them before, but had never programmed, used to gripe that we were doing all sorts of boring stuff and why couldn’t they just write a game? In fact, where were the graphics? (We were using a mainframe with dumb (text) terminals attached to it. GTC Infoton, VT102 emulation, 80×24, 2400 baud, all hooked up to an VAX 11/780. Yow.)

An old serial terminal.

FEAR MY SERIAL NATURE!

These days, everyone has at least seen a computer and, as we all know, the things you can see on a computer today are mind-blowing. The graphics in just about any game can make you believe you’re in another world.

That, of course, is why a lot of people come to Computer Science and that, sadly, is also the reason that a lot of people are unhappy in first year. We teach them a lot of programming but, until recently, we didn’t use a language or environment that would allow them to do two important things:

  1. Do cool things.
  2. Show them off.

That’s where some of the great new(ish) languages are making their mark in early programming. Scratch and Alice, which I’ve referred to before, allow school students to make things happen. This allows them to do cool things and they can show it off to their friends – this makes what we do interesting, engaging, exciting and something that they may wish to pursue. At the other end of the spectrum, iOS and Android offer another pathway but they’re pretty high level in many ways – especially if you’re having to manually manage memory and write quite intricate code to handle Controllers or tie Views together. There’s no doubt that mobile platform computing is a short path to awesome but intro students may not be ready for the many complexities and pitfalls of starting in such a hostile world.

Students want to do amazing things as soon as they can because, for most of them, that’s why they came to us. Nobody came to listen to 7 lectures on the FOR loop. (At least, I really hope not!) We want to make amazing things happen.

So let me show you two other environments that may help students get there faster. One is an entire programming system based on the iPad, called Codea – your entire development environment sits on the iPad and you make programs, run programs and enjoy. Lots of good game widgets, premade content and you’re programming in Lua which is a pretty interesting language. (Full confession, Codea has been developed by some people I’ve known for a while but it’s interesting enough just to look at and, no, they don’t pay me. 🙂 ) It used to be called Codify (which explains the name in the video) but it’s now called Codea.

The other is from a link that a student sent me – he thought I’d find it interesting. (The full video is here.)  It shows a development environment that allows you to modify variables in running code to fine-tune your game, allows you to freeze, roll forward and back and basically have fun while you program. There are also a lot of great concepts in what he discusses. The author and presenter is Bret Victor and he’s displaying his amazing interactive editor. (Seriously, go to Bret’s site. It will be one of the most interesting things you do all day.) I’ve put the intro video below. In the video, Bret’s editor is using JavaScript (another good “zero to legend” programming language) but with a lot of useful support that makes debugging and fine-tuning a lot more fun.

There are so many ways of approaching this problem – what’s great is that so many people are approaching it! They understand that everyone wants to be able to turn their dreams into reality and good support and development environments can help this.

[Edit: I’ve just realised that one of Mark’s posts that I had on my screen to read when I got back from SIGCSE provided another , and more detailed, look at Bret Victor. Seriously, if you’re not reading Mark’s Computer Science Education blog yet, you should. Save me the embarrassment of accidentally double posting. 🙂 ]


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.


SIGCSE Wrap-up 2012

And SIGCSE is over! Raja and I presented the infamous puzzle-based learning (PBL) workshop. It took three years to get into a form where it was accepted – but it was worth it. ALl of the participants seemed to have a good time but, more importantly, seemed to get something useful. The workshop about 12 hours of information jammed into 3 hours but it’s a start.

Today’s lunch was pretty good but, despite the keynote being two really interesting people (Fernanda Viégas and Martin Wattenberg, from Google’s Big Picture visualisation in Cambridge, MA) and the content being interesting – there wasn’t much room for us to take it further beyond contributing our datasets to the Many Eyes project and letting it go to the world. I suspect that, if this talk had preceded Hal’s yesterday, it would have been much better but, after the walled garden talk, the discussion of what a small group of very clever people had done was both interesting and inspirational – but where was the generative content as a general principle?

I’m probably being too harsh – it’s not as if Fernanda and Martin didn’t give us a great and interesting talk. I suspect that Hal’s talk may just have made me a lot more aware of the many extended fingers in the data pies that I work with on a regular basis.

So let me step back and say that the current focus on presenting data in easily understood ways is important and exciting. It would be fantastic if all of the platforms available were open, extensible and generative. There we go – a nice positive message. Fernanda and Martin are doing great stuff and I’d love to see all of it in the public domain sometime. 🙂

Following the lunch, Raja and I had to set-up for our workshop, and that meant that our audience was going to be the last SIGCSE people we’d see as everyone else was leaving or heading off to another workshop. We think it went well but I guess we’ll see. I’ll try to put a PBL post in the queue before I start jumping on planes again.

Bye, SIGCSE, it’s been fun. See you… next year?


SIGCSE: Scratching Alice – What Do Students Learn About Programming From Game, Music Video, And Storytelling Projects?

I went to a fascinating talk that drew data from 11-14 year olds at a programming camp. Students used a 3D programming language called Alice or a visual programming language called Scratch, to tell stories, produce music videos and write games. The faculty running the program noticed that there appeared to be a difference in the style of programming that students mastered depending on whether they used Alice or Scratch. At first glance, these languages both provide graphical programming environments and can be very similarly used. They both offer loops, the ability to display text, can produce graphics and you can assign values to locations in memory – not surprising, given that these are what we would hope to find in any modern high-level programming language. For many years, students produced programs in Alice, with a strong storytelling focus, but from 2008, the camp switched to Scratch, and a game-writing and music-video focus.

And the questions that students asked started to change.

Students started to ask questions about selection statements and conditional expressions – choosing which piece of code to run at a given point and calculating true and false conditions. This was a large departure from the storytelling time when students, apparently, didn’t need this knowledge.

The paper is called “What Do Students Learn About Programming From Game, Music Video, And Storytelling Projects?“, Adams and Webster, and they show a large number of interesting figures determined by data mining the code produced from all of the years of the camp. Unsurprisingly, the game programming required students to do a lot more of what we would generally recognise as programming – choosing between different pathways in the code, determining if a condition has been met – and this turns out to be statistically significant for this study. Yes, Scratch games use more if statements and conditionals than Alice storytelling activities and this is a clear change in the nature and level of the concepts that the students have been exposed to.

Students tended to write longer programs as they got older, regardless of language, games were longer than other programs, IF statements were used 100 times more often in games than stories and LOOPS were used 100 times more often in games and videos than stories.

Some other, interesting, results include data on gender differences in the data:

  • Boys put, on average, 3.2 animations of fire into all of their games, compared to the girl’s rather dull 0.8. Come on, girls, why isn’t everything on fire?
  • Boys use infinite loops far more frequently than girls. (I’d love to see if there’s an age-adjusted pattern to this as well.)
  • Girls appear to construct more conditional statements. This would usually indicate a higher level of utility with the concepts.

We generally have two things that we try to do when we carry out outreach – amuse/engage the audience and educate the audience. There’s not doubt that the choice of language and the exercise are important and this paper highlights it. They’re not saying that Alice is better or worse than Scratch but that, depending on what you want, your choice of activity is going to make students think in a certain way. If all you’re after is engagement then you don’t need students practising these higher-level programming skills – but if you’re trying to start out proto-programmers, maybe a storytelling approach isn’t what you’re after.


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. 🙂

 


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