Got Vygotsky?
Posted: April 25, 2012 Filed under: Education | Tags: Csíkszentmihályi, curriculum, design, education, flow, games, higher education, learning, principles of design, resources, teaching, teaching approaches, tools, vygotsky, Zone of proximal development, ZPD 4 CommentsOne of my colleagues drew my attention to an article in a recent Communications of the ACM, May 2012, vol 55, no 5, (Education: “Programming Goes to School” by Alexander Repenning) discussing how we can broaden participation of women and minorities in CS by integrating game design into middle school curricula (Thanks, Jocelyn!). The article itself is really interesting because it draws on a number of important theories in education and CS education but puts it together with a strong practical framework.
There’s a great diagram in it that shows Challenge versus Skills, and clearly illustrates that if you don’t get the challenge high enough, you get boredom. Set it too high, you get anxiety. In between the two, you have Flow (from Csíkszentmihályi’ s definition, where this indicates being fully immersed, feeling involved and successful) and the zone of proximal development (ZPD).
Which brings me to Vygotsky. Vgotsky’s conceptualisation of the zone of proximal development is designed to capture that continuum between the things that a learner can do with help, and the things that a learner can do without help. Looking at the diagram above, we can now see how learners can move from bored (when their skills exceed their challenges) into the Flow zone (where everything is in balance) but are can easily move into a space where they will need some help.
Most importantly, if we move upwards and out of the ZPD by increasing the challenge too soon, we reach the point where students start to realise that they are well beyond their comfort zone. What I like about the diagram above is that transition arrow from A to B that indicates the increase of skill and challenge that naturally traverses the ZPD but under control and in the expectation that we will return to the Flow zone again. Look at the red arrows – if we wait too long to give challenge on top of a dry skills base, the students get bored. It’s a nice way of putting together the knowledge that most of us already have – let’s do cool things sooner!
That’s one of the key aspects of educational activities – not they are all described in terms educational psychology but they show clear evidence of good design, with the clear vision of keeping students in an acceptably tolerable zone, even as we ramp up the challenges.
One the key quotes from the paper is:
The ability to create a playable game is essential if students are to reach a profound, personally changing “Wow, I can do this” realization.
If we’re looking to make our students think “I can do this”, then it’s essential to avoid the zone of anxiety where their positivity collapses under the weight of “I have no idea how anyone can even begin to help me to do this.” I like this short article and I really like the diagram – because it makes it very clear when we overburden with challenge, rather than building up skill and challenge in a matched way.
Sitting Alone in a Crowd Just Like You: The Isolated Student
Posted: April 9, 2012 Filed under: Education | Tags: education, higher education, isolation, reflection, resources, teaching, teaching approaches, transition 6 CommentsI’ve posted a number of things about the importance of training people to use all the techniques and technologies that we have – which applies to us teaching as much as it ever applies to the student. The best way to training and education to happen is, unsurprisingly, provide the best environment in which this can happen – resources, buildings, rooms and, above all, community. One of the big benefits of the traditional lecture is that we get the whole student community for a course into the one room, several times a week. What isn’t guaranteed is that we will actually get a proper community forming – we may just have a big room full of people, none talking to each other, no-one interacting. At that stage, of course, we have the traditional lecture at it’s potential worst.
I’m writing a series of short stories at the moment around the theme of isolation and there are many excellent examples in literature of the notion of being alone while in the company of others. Whether it’s the isolation of the protagonist in Bashevis Singer’s The Slave, separated from the community by his religion and status, or the isolation of the reader from the world and characters from Philip K. Dick, a wonderful example of umwelt, we see the same notion over and over again – the presence of other people, even like-minded people, does not guarantee any protection from isolation because of issues with perception, background and expectations.
There are many reasons that a student can feel that they can’t reach out to their community and handling this is one of the big issues that we have in dealing with the transition into a new course of studies. We spend a lot of time with (very useful) mentoring schemes, networking among our students with supporting BBQs and meet-ups – but the things we actually do in lectures are also very helpful. If you have a group activity, or a talk-to-your-neighbour, exercise in the first week, you can be setting up small communities and networks that will survive for the rest of the student’s career. If the lecture space is also a community space, a meeting place and something that people look forward to, then we start to work on the many possible issues that can lead to isolation.
If someone isn’t making progress then, rather than focus on what they’re not doing and giving them a relatively tired lecture on keeping up effort and putting in the hours, it can sometimes help to ask who they’re working with, whether they have any friends in the course and, if not, direct the student to your support system. For students who have more serious problems, at our University we have a Transitions Service who provide a shopfront to the other services we have, ranging from friendly chats over tea to introductions to our counselling service. This is, however, a little bit of overkill in most cases – a chat, some activity in lectures and a BBQ or two can address at least some of the problems.
Educational Software Systems: What are our requirements?
Posted: April 8, 2012 Filed under: Education | Tags: education, higher education, learning, learning management systems, LMS, reflection, resources, teaching, teaching approaches, tools 1 CommentMy recent evaluation of strategic IT issues in my faculty brought one thing very clearly to my attention. If we assume that the content that I (or a student or any other academic) creates should continue to be available to me, unless I assign my rights to someone else, then we have a problem if the storage mechanism used is closed and fee-based. If it’s closed (proprietary formats possibly with deliberate obfuscation or encryption, or remote storage with access controls) then I can’t easily get it out of the system unless the software provider lets me. If this whole arrangement (licensing or access) is based on a fee, the the worst possible situation is that, in order to access old materials/data/whatever, I have to continue to pay largish sums on money to keep using something that I created. So that got me thinking – what else do I expect (naively or not) of the systems that we use for education? I’m talking mostly about Learning Management Systems (LMS) here because that’s my current focus. Here are some cut down versions of my current thoughts.
- Modular: Not all schools, even in the same college, are the same. Some are big, some are small. Some need essays checked for plagiarism when submitted. Some just need a place to drop the assignments. Some need interactive quizzes! Some just need web pages. If we have a system that’s built out of modules then I can get the modules that I need and (if money is involved) match investment to requirement. Even in the open source community, there are issues of performance, management burden and complexity in the modules that you choose so customisation here is useful. Modularity also isolates the impact of faults. Well-designed modules are like water-tight doors on a ship – one module failing doesn’t sink the ship.
- Extensible: There are always going to be requirements particular to your school or college. If your system can be extended then you can adjust the system to meet your specific needs. If not, then you have to work around it. (You could also call this mutable but I prefer the improvement implicit in extensible). Now I’m not saying who should be doing these changes because that’s a whole other argument – the fact that it can be done is what’s important here.
- Open Storage: Whatever I create, I should be able to get to, export, import it back from other systems and hang onto – especially if we migrate to a different system and shut the old one down. I’m a great believer in keeping formats open and then, if your product is excellent, I’ll happily use it. If, at the start of our relationship, you say “Well, you give me your data and you’re going to have to pay us if you want to get it out, and pay us every year you want access to it.” then you are pretty much going to have to be the only game in town because I have no power or control in that relationship – and I’m the one who should be in control here. (Most people are getting really good about this now, which is good to see, but there are far too many examples of software where the same producer couldn’t maintain compatibility across two versions.)
- Efficient: Using these kinds of systems should save you time. Something I’ve created should be able to be re-used easily, live or die as quickly as I want and survive between upgrades. There should be a definite advantage to doing this – if not, why are we using this system?
- Robust: It should be strong. Students attack in waves and I have beautiful graphs to show that the day before an assignment is due it’s “STOP, Hammer time”, and weak or delicate systems will fail under this kind of load. Any system designer who has assumed an average and hardened the system up to 70% concurrent usage had better step back and add about 40% to that number to count for multiple accesses, dangling connections, staff use… Even more importantly, if I make a change to something (add an assignment, undertake an assignment, change a mark) it needs to stay CHANGED. Finally, I need to be able to undo things when and if they go wrong. Because things go wrong.
- Invisible: Ultimately, I shouldn’t notice the system, and nor should my students. I use it to create things but I focus on creation, not your system. My students use it to access things and perform actions but they should never notice the system itself. If you look out a window, you should never notice cracked panes, dirty glass, rotting wood or the accidental sandwiching of a bird between the double-glazed panes.
I realise that there is a lot of debate on Open versus Proprietary systems in the community and I have no wish to open that can of worms – for myself, I use a Mac (mostly on the FreeBSD side) and do my analysis work in R, not S, but then I use Illustrator, not the Gimp, for final touch-ups. I’m the poster boy for using stuff that works so I have no wish to force people to choose open or closed, or ‘whatever is in between’. But I’d be really interested to see what else belongs (or what doesn’t belong) on this list – what do you think?
Card Shouting: Teaching Probability and Useful Feedback Techniques by… Yelling at Cards
Posted: April 5, 2012 Filed under: Education | Tags: card shouting, education, feedback, fiero, games, higher education, resources, teaching, teaching approaches, tools 2 CommentsI introduced a teaching tool I call ‘Card Shouting’ into some of my lectures a while ago – usually those dealing with Puzzle Based Learning or thinking techniques. What does Card Shouting do? It demonstrates probability, shows why experimental construction is important and engages your class for the rest of the lecture. So what is Card Shouting?
(As a note, I’ve been a bit rushed today and I may not have put this the best way that I could. I apologise for that in advance and look forward to constructive suggestions for clarity.)
Take a standard deck of cards, shuffle it and put it face down somewhere where the class can see it. (You either need very big cards or a document camera so that everyone can see this in a large class. In a small class a standard deck is fine.)
Then explain the rules, with a little patter. Here’s an example of what I say: “I’m sick and tired of losing at Poker! I’ve decided that I want to train a pack of cards to give me the cards I want. Which ones do I want? High cards, lots of them! What don’t I want? Low cards – I don’t want any really low cards.”
Pause to leaf through the deck and pull out a Ace, King and Queen. Also grab a 2,3 and 4. Any suit is fine. Hold up the Ace, King and Queen.
“Ok, these guys are my favourites. What I’m going to do, after this, is shuffle everything back in and draw a card from the top of the deck and flip it up so you can see it. If it’s one of these (A, K, Q), I want to hear positive things – I want ‘yeahs!’ and applause and good stuff. But if it’s one of these (hold up 2,3 and 4) I want boos and hisses and something negative. If it’s not either – well, we don’t do anything.” (Big tip: put a list of the accepted positive and negative phrases on the board. It’s much easier that having to lecture people on not swearing)
“Let’s find out what works best: praise or yelling- but we’re going to have measure our outcomes. I want to know if my training is working! If I draw a bad card and abuse it, I want to see improvement – I don’t want to see one of the bad cards on the next draw. If I draw a good card, and praise it, I want the deck to give me another good card – if it’s lower than a J, I’ve wasted my praise!” Then work through with the class how you can measure positive and negative reaction from the cards – we’ve already set up the basis for this in yesterday’s post, so here’s that diagram again.
In this case, we record a tick in the top left hand box if we get a good card and, after praising it, we get another good card. We put a tick in top right hand box if we draw a bad card, abuse the deck, and then get anything that is NOT a bad card. Similarly for the bottom row, if we praise it and the next card is not good, we put a mark in the bottom left hand box and, finally, if we abuse the card and the next card is still bad, we record a mark in the bottom right hand box.
Now you shuffle and start drawing cards, getting the reactions and then, based on the card after the reaction, record improvement or decline in the face of praise and abuse. If you draw something that’s neither good NOR bad to start with – you can ignore it. We only care about the situation when we have drawn a good or a bad card and what the immediate next card is.
The pattern should emerge relatively quickly. Your card shouting is working! If you get a card in the bad zone, you shout at it, and it’s 3 times as likely to improve. But wait, praise doesn’t do anything for these cards! You can praise a card and, again, roughly 3 times as often – it gets worse and drops out of the praise zone!
Not only have we trained the deck, we’ve shown that abuse is a far more powerful training tool!
Wait.
What? Why is this working? I discussed this in outline yesterday when I pointed out it’s a commonly held belief that negative reinforcement is more likely to cause beneficial outcome based on observation – but I didn’t say why.
Well, let’s think about the problem. First of all, to make the maths easy, I’m going to pull the Ace out of the deck. Sorry, Ace. Now I have 12 cards, 2 to K.
Let me redefine my good cards as J, Q, K. I’ve already defined my bad cards as 2, 3, 4. There are 12 different card values overall. Let me make the problem even simpler. If we encounter a good card, and praise it, what are the chances that I get another good card? (Let’s assume that we have put together a million shuffled decks, so the removal of one card doesn’t alter the probabilities much.)
Well, there are 3 good card values, out of 12, and 9 card values that aren’t good – so that’s 9/12 (75%) chance that I will get a not good card after a good card. What about if I only have 12 cards? Well, if I draw a K, I now only have the Q and the J left in my good card set, compared to 9 other cards. So I have a 9/11 chance of getting a worse card! 75% chance of the next card being worse is actually the best situation.
You can probably see where this is going. I have a similar chance of showing improvement after I’ve abused the deck for giving me a bad card.
Shouting at the cards had no effect on the situation at all – success and failure are defined so that the chances of them occurring serially (success following success, failure following failure) are unlikely but, more subtly, we extend the definition of bad when we have a good card – and vice versa! If we draw any card from 5 to 10 normally, we don’t care about it, but if we want to stay in the good zone, then these 6 cards get added to the bad cards temporarily – we have effectively redefined our standards and made it harder to get the good result. Here’s a diagram, with colour for emphasis, to show the usually neutral outcomes are grouped with the extreme.. No wonder we get the results we do! The rules that we use have determined what our outcome MUST look like.
So, that’s Card Shouting. It seems a bit silly but it allows you to start talking about measurement and illustrate that the way you define things is important. It introduces probability in terms of counting. (You can also ask lots of other questions like “What would happen if good was 8-K and bad was 2-7?”)
My final post on this, tomorrow, is going to tie this all together to talk about giving students feedback, and why we have to move beyond simple definitions of positive and negative, to focus on adding constructive behaviours and reducing destructive behaviours. We’re going to talk about adding some Kings and removing some deuces. See you then.
Teaching CS in the 21st Century: CS as a fundamental skill.
Posted: April 2, 2012 Filed under: Education, Opinion | Tags: advocacy, education, higher education, reflection, resources, teaching, teaching approaches 1 CommentToday’s Guardian has a feature in their Computer Science and IT section that includes a lot of very interesting pieces, ranging from what’s scaring girls away from coding, to why we need to be able to program and, John Naughton’s proposal for rebooting the computing curriculum – as an open letter to the Education Minister for the UK. Feel free not to read the rest of my piece if you’re pressed for time – the links on the first page will keep you busy for quite a while.
For those who are still reading, here’s a picture of ubiquitous access to computers in the developing world – giving people the possibility of doing anything with their lives. (Image is from this World Food Programme page, the food aid branch of the UN, showing the Nepalese deployment of the XO Laptop, with a programme focused on bringing young people into education, combined with a cooking oil-based incentive scheme if daughters attend at least 80% of the time.)
What I took away from reading the Guardian feature is the overwhelming message that we should teach programming and computer awareness for the same reason that we teach maths and science to all students, regardless of where they’ll end up – because that’s the world in which they live. To quote Naughton’s article:
We teach elementary physics to every child, not primarily to train physicists but because each of them lives in a world governed by physical systems. In the same way, every child should learn some computer science from an early age because they live in a world in which computation is ubiquitous. (Item 3, A Manifesto for Teaching CS in the 21st Century.)
I’ve read too many articles about various government programs that try to raise standards but do so in a way that concentrates effort on some areas in a way that starves all of the other areas, or sidelines them at the least. If we don’t see Information Communication and Technology (ICT) skills as vital, then we won’t assign priority to them. They’ll get shunted out of the way for other topics, like Maths, Language skills and Science. ICT is not more important than these but, in the world that our students will have to occupy, ICT needs a seat at the table. As many other, and better, commentators have noted, the transformation of the workforce continues apace and programming and computer use is now a vital skill in many jobs.
We need the focus in schools, because then we can hire the teachers, which drives the job market, which causes the teacher training, which improves the quality, which improves the number of competent graduates, and ultimately leads to knowledgable and fully-participating members of our civilised democracies where those little boxes on desks aren’t a mystery or intimidating. I can’t take more people into my Uni-level courses than are being produced by schools – and, sadly, not everyone who has the skill or training at school goes on to use it. I can’t wave a wand and turn the “less than 20%” of women who start my degree into 50% by the end. (Well, yes, I can, but I can’t do it fairly or ethically.) I can do the best I can with the people I get but I’d really love to get a lot more people with the skills!
We all know this is a challenge because we have so many acronyms that might mean ‘Computer training’ – are we teaching ICT, IS, IT, CS, CSE? To step back from the acronyms, and their deliberate placement for emphasis, are we teaching computational or algorithmic thinking (problem solving and solution design), are we teaching computer usage at a fundamental level, are we teaching people how to use certain packages, certain techniques – where does programming fit into all of this?
All of us are need at least a subset of these skills now, in the 21st century. On a daily basis, I download more software updates and modifications and program more items around my house, than I ever did in the years before 1995.
As always, time and resource budgets are tight and, because of this, this is not a problem we can solve at one college, one school or even one state. This is why governments have to make this a national priority if initiatives like this will succeed. This doesn’t have to mean standardised testing or fixed curricula – it means incentive to provide quality education in certain areas, with supportive high-level goals and curriculum consideration, as well as allocated money for training and community building. Of course, there are many existing initiatives like the UK revamp of the high school curriculum and available on-line resources but, here in Australia, we still don’t seem to have strong linkage between a senior school course and University entry and it must make it hard to direct students into a certain path if there is no benefit for them. There are some excellent starting points, however, such as the Australian Government’s Digital Education Revolution, so there is certainly some hope for the future, but we need long-term vision and bipartisan support for these initiatives if they’re going to continue and make real change over time.
Beautiful Posters and Complicated Concepts Don’t Always Work – But That’s OK.
Posted: April 1, 2012 Filed under: Education | Tags: education, higher education, principles of design, reflection, resources, teaching, teaching approaches, universal principles of design Leave a commentI was recently reading Metafilter, a content aggregator, when I came upon a set of labels that came from the Information is Beautiful site and described a number of logical fallacies. Unfortunately, while these were quite nice to look at, the fallacy descriptions are at times inaccurate, and the diagrams don’t really convey the core idea sometimes. (There was an example of applying these labels to a speech and it was a bit of a stretch in many regards.) What disappointed me in the ensuing discussion on Metafilter was how overwhelmingly negative people were about this. There was a lot of “well, this is terrible logic” (and that statement was at times true) and “the application of labels simplistically leads to trouble” (which is also true) but let’s step back for a moment and look at the core idea.
Would it be helpful to use strong visual cues that students can attach to text for a subset of logical fallacies or rhetorical tricks to help in them marking up essays? How about the ability to click an ‘Ad Hominem’ button on Wikipedia when you’ve selected a box of text that contains an attack upon the person rather than their ideas?
While the original labels certainly need refinement and work, taking this as a starting point would have been both useful and constructive. Attacking it, deriding it and rejecting it because it isn’t perfect seems a wasted opportunity to me. It’s very easy to be dismissive but I’m not sure that there’s much long-term benefit in burning everything that’s not perfect. I much prefer a constructive approach – is there anything I can use from here? Can I take this and make it better? How can I achieve this and make it awesome? The Information is Beautiful site has lots of good stuff but there is the occasional miss, but you’re bound to learn something interesting anyway, or pick up a new way of seeing. Would I teach directly from it? No! Of course not. (Look at some of the labels, especially for Novelty and Design and tell me if this is all serious.)
I should note that Metafilter user asavage, who some of you will know from burning off his eyebrows on Mythbusters, also noted that the IIB link wasn’t great but suggested an excellent alternative – A Visual Guide to Cognitive Biases.
Yes, asavage doesn’t much like what he read in the original links, and there’s good reason for it to be modified, but he provides a constructive suggestion. Now, fair warning, it’s a scribd link to get the slide pack, which is big and requires you to log in to the site or use a Facebook login, but if you teach any kind of logical thinking at all, it’s an essential resource. It’s the Cognitive Bias Wikipedia page with good graphics and it’s a great deal of fun.
Are either of these approaches the equivalent of a full lecture course on logic, reasoning and rhetoric? No. With thought, could you use elements from both in your teaching? I think the answer is a resounding yes and I hope that you have fun reading through them.
Teaching Tools (again): Balancing Price, Need and Accessibility.
Posted: March 30, 2012 Filed under: Education | Tags: education, higher education, reflection, resources, teaching, teaching approaches, tools 4 CommentsI’ve spoken before on open source and teaching tools but I’ve been reviewing some interesting data on textbook purchasing. As some of you may know, book purchases are dropping in many areas because students feel that they don’t need to (or can’t afford to) buy the text. Some of the price burden of textbooks is the size, printing and shipping costs associated, so eBooks, which can be and often are, cheaper should be addressing this problem.
Is that our experience? Well, we’re still collecting data but, anecdotally, no. Despite eBooks being substantially cheaper, students aren’t buying them in any greater numbers. (Early indications are that it may actually be less.)
Price is always going to be an issue. 60-70% of a large number is still a large number (to a student).
Need is an issue – do students need the book as a text or a reference? Will they be able to get by on lecture notes? How is the course structured? There are important equity issues associated with forcing a student to buy a book as you don’t know what they’ve had to give up to do that, and the resale market for secondhand books is not what it once was.
But one of the big concerns of my students is accessibility. They are well aware that buying an electronic book may give it to them in a very constrained form – a book that can only be read on one machine and may not survive upgrades, a book that may not have a useful search mechanism, a book where you can’t easily highlight the text. Worse, it may be a book that, sometime in the future, just stops working and can never be read again.
Yes, publishing companies are pouring millions of dollars into solving this problem but books are special in a very important way. Books enable knowledge transfer, they don’t own or restrict the knowledge transfer. When you produce a physical book, people can expend effort to do what they like. Make a house out of it, read it, re-index it, tear out the pages and put them together in print density order. None of this is possible with an eBook unless someone lets you. (Ok, you can build a house but it will use your laptop or tablet.)
I can’t help thinking that most of the effort seems to be going into providing the experience that publishing companies want us to have, in terms of usage, ownership and access – focusing on controlling us rather than enabling us. Perhaps this is the point we should address first?
(If you haven’t read my post on Hal Abelson’s talk, you might want to get to that after this.He talks a lot about the problems with the walled garden and his terminology,including the very useful term generative, is a very interesting read.)
I Ran Out Of Time! (Why Are Software Estimates So Bad?)
Posted: March 24, 2012 Filed under: Education | Tags: curriculum, design, education, higher education, reflection, resources, teaching approaches Leave a commentI read an interesting question on Quora regarding task estimation. The question, “Engineering Management: Why are software development task estimations regularly off by a factor of 2-3?“, had an answer wiki attached to it and then some quite long and specific answers. There is a lot there for anyone who works with students, and I’ll summarise some of them here that I like to talk about with my students:
- The idea that if we plan hard enough, we can control everything: Planning gives us the illusion of control in many regards. If we are unrealistic in assessment of our own abilities or we don’t account for the unexpected, then we are almost bound for failure. Making big plans doesn’t work if we never come up with concrete milestones, allocate resources that we have and do something other than plan.
- Poor discovery work: If you don’t look into what is actually required then you can’t achieve it. Doing any kind of task assessment without working out what you’re being asked to do, how long you have, what else you have to do and how you will know when you’re done is wasted effort.
- Failure to assess previous projects: Learn from your successes and your failures! How much time did you allocate last time? Was it enough? No? ADD MORE TIME! How closely related are the two projects – if one is a subset of another what does this say for the time involved? Can you re-use elements from the previous project? Be critical of your previous work. What did you learn? What could you improve? What can you re-use? What do you need to never do again?
- Big hands, little maps: There’s a great answer on the linked web page of drawing a broad line on Google maps at a high-level view and estimating the walking time for a trip. The devil is in the details! If you wave your hands in a broad way across a map it makes the task look simple. You need to get down to the appropriate level to make a good estimate – too far down, you get caught up in minutiae, too far up, you get a false impression of plain sailing.
I found it to be an interesting question with lots of informative answers and a delightful thought experiment of walking the California coast. I hope you like it too!
The ACID test: Teaching With Examples From Other Areas
Posted: March 20, 2012 Filed under: Education | Tags: collaboration, education, higher education, principles of design, resources, teaching, teaching approaches, tools 2 CommentsI’ve just returned from teaching an intensive module on Distributed Systems – no, don’t go, I have a point for everyone, not just the Computer Scientists in the audience. Dealing with computations that take place over several computers can be tricky because it can be difficult for everyone to agree whether all the things that they wanted to happen have actually happened. Combine that with the problems that occur when two or more people try to change the same thing at the same time and we need a strong mechanism to deal with it. The properties that refer to this are usually represented with the acronym ACID.
We use something called a transactional model – what we’re trying to achieve either happens or, if there’s a problem, we make it as if it never occurred (we call this atomicity). When we make change we want to keep the overall system consistent with regard to some key requirements (consistency). If two things are happening at once, but could fail, we set it up so that they don’t take account of each other’s changes until we’re sure that they’ve finished and are going to hang around (isolation). Finally, speaking of hanging around, once we’ve made something stick, we want it to stay stuck – that’s durability.
Why have I covered this? Because I want you to understand how I can take ACID (atomicity, consistency, isolation, durability) out of computer science and make students think about it in a different framework – that of the legal system. Here’s the question I posed to my students as part of a tutorial:
“Using Transaction Properties (ACID), discuss whether a person simultaneously accused of two crimes should be tried, in both cases, as if only one crime had been committed.”
Now this doesn’t seem related, but the complex issues in the presumption of innocence, not declaring previous crimes until sentencing and the nature of appeal can lead to a quite complicated and involved discussion. I like to start students off by getting them to think about the problem individually and asking questions to clear up any definitional problems. Then they go to their neighbour, then into small groups of 4-5. By the time we’re done the rooms full of discussion and we bring it together to illustrate that thinking about the problem in this way gets us away from memorised jargon inside the originating discipline and forces students to describe the situation based on their understanding of the concept.
This is a third year course so the question is designed to make people think – there are some answers that are better than others but almost all pathways based on careful thought will head towards a good answer.
Stepping outside the original discipline can be fun and useful – just make sure that you’re keeping the analogies accurate, precise and not too far from the original material. Hope this is useful to you!
Fixing Misdirected Effort: Guiding, with the occasional shove.
Posted: March 19, 2012 Filed under: Education | Tags: education, educational problem, frankenstein, higher education, resources, teaching, teaching approaches Leave a commentMy students have a lot of questions and my job is often as much about helping them find the right questions as it is about finding the answers. One of the most frustrating aspects of education is when people fixate on the wrong thing, or invest their effort into the wrong ventures. I talked before how I believed that far more students were procrastinators versus lazy, they invest their effort without thinking about the time that they need or all of the responsibilities that they have.
That’s why it gets frustrating when all of the effort that they can expend goes into the wrong pathway. I’ll give you a couple of examples. We run a forum where students receive e-mail notification and, because the forum is an official dissemination point, students are compulsorily enrolled into certain forums and will receive mail whenever discussion takes place. Every year, there’s at least one student who starts complaining about receiving ‘all this e-mail’. (Generally not more than 10 messages a week, except during busy times when it might rise to 20-30. Per week.) We then reply with the reasons we’re doing it. They argue. Of course, the e-mail load of the forum then does rise, because of the mailed complaints about the e-mail load – not to mention the investment of time. The student who complains that mail is wasting their time generally spends more time in that one exchange than processing the mail for the semester would have cost.
Another example is students trying to work out how much effort they can avoid in writing practical submissions. They’ll wait outside your office for an hour and talk for hours (if you let them) about whether they have to do this bit, or if they can take this shortcut, and what happens if I do that. Sitting down and trying it will take about 5 minutes but, because they’re fearful or haven’t fully understand how they can improve, they spend their time trying to dodge work and, anecdotally, it looks like some of these people invest more time in trying to avoid the work than actually doing the work would have required. This is, of course, ignoring the benefits of doing the work in terms of reinforcement and learning.
Then, of course, we have the curse of the Computer Science academic, that terror to the human eye – the plagiarised, patchwork monstrosity of Frankencode!
Frankencoding, my term for the practice of trying to build software by Googling sections (I’m a classicist, or I’d call it Googlecoding) and jamming them together, is a major time waster here as well. If you design your software and built it up, you understand each piece and can debug it to get it working. If you surf news groups and chuck together bits and pieces that you don’t understand, your monster will rise up and lurch off to the village trailing disaster in its wake. Oh, and for the record, it’s really obvious to a marker when it has happened and even more obvious when we ask you WHY you did something – if you don’t know, you probably didn’t write it and “I got it off the Internet” attracts nothing good in the way of marks.
What I want to do is get effort focused on the right things. I know that my students regard most of their studies as a mild inconvenience, so I don’t want them spending what time they do devote to academia on the wrong things. This means that I have to try and direct discussions into useful pathways, handle the ‘what if I do this’ by saying ‘why don’t you go and try it. It’ll take 5 minutes’ (framed correctly) and by regularly checking for plagiarised code – including tests of understanding that accompany practical coding exercises such as test reports and design documents. Once again, understanding is paramount and wasted effort is not useful to anyone.
I like to think of it a gentle guidance in the right direction. With the occasional friendly, but firmer, shove when someone looks like they’re going seriously off the rails. After all, we have the same goals: none of us want to waste our time!












