It had to happen. My Second Life was running along smoothly (meaning that I have had fewer whiney emails from students saying that their friends have been stealing their toy bricks). And then the fearsome spectre of plagiarism loomed large over my lab session.
Plagiarism makes academics wail and gnash their teeth. International students often don't understand the concept, and undergraduates treat it with the same deference as they treat copyright on illegal downloads. Staff in my department are extremely suspicious of course work only modules because they worry that it isn't the student's work we are assessing. I mounted quite a campaign to get a 100% coursework module approved. Not to make it easier for students to plagiarise, you understand, but to make it a fairer form of assessment for the sort of content I teach.
For the portfolio assessment on my SL module there is only one aspect which now worries me about plagiarism and that is the Linden scripting. In the lab yesterday the tutor and I found that the MSc students (yes, international students) were naively complaining to us "this script doesn't work". They would show us a relatively complicated piece of code and tell us what they wanted it to do. Alarm bells would start ringing when we realised that the students had no clue about the simplest features of the code. Or they would have the most basic and blatant of misconceptions. Or they would dig themselves deep into holes by revealing that they couldn't answer simple questions about what a function did and weren't even able to demonstrate they could competently look up the documentation to find out. Others would show us a script which they had downloaded and explain how they had changed it, but only by altering a single parameter. You know, like changing red sparks to blue sparks. I'm going to award MSc passes for changing 3 numbers? I think not. And to further outrage me, one of them said "but there are lots of examples online. Why can't we just use them?".
OK, so there is some subtlety relating to learning from examples and using library code in computer science. It's not a good idea to re-invent the wheel and write a lot of code which has been done more elegantly and efficiently before. But there is a point to assessing people's programming abilities based on programs they have written themselves! Doh! I have explained this time and again to the class. I have taken the view that maybe they were borrowing scripts because their own scripting skills weren't good enough. So I ran extra classes to help with scripting concepts. Now I take the view that after all these warnings that if I see plagiarism when I mark this stuff there will be a trail of destruction and failing grades where ever my red pen falls, so help me God.
How will I know when I see plagiarism, my canny academic colleagues might wonder. At the moment, I intend to use an online detector like Turnitin which is integrated with our VLE (or another system which is recommended by colleagues). It should help by identifying scripts which are similar to those online, although not those which are in world in SL. But I think my best bet is the learning logs the students have to submit. If they can't satisfactorily explain what they learned and what they made in their learning logs, then they will be invited to explain their code verbally to me in a viva. Based on what I have seen of the blogs so far, this seems a promising avenue. For example, a student I know to have copied scripts has written about how he discovered it isn't all about cut and paste because the scripts don't work if you do that (!) And some students who are very good programmers blog it in a lot of technical detail which reveals the depth of their geeky understanding.
Ok, now to put the fear of my Red Pen of Destruction into the students.
Personally, I don't think there's anything wrong with downloading (legally free) code and using it. As a programmer, I do it every day. Programming is about using code to solve problems. If you can get someone else's code to solve your problem, even better.
The problem is with assessment. In a school environment, we need to be able to assess what the students learnt. So maybe we need a form of assessment that would focus on that, not on what they did (or did not).
For example, have students submit an essay describing what they wanted to create, what problems they had to solve, how they attacked them, what where the results, and what they learnt.
Another common problem I see with the standard forms of CS assessment is that they enforce the misconception that CS and software engineering are practices of code production. Code is cheap. Producing code is the lowest of all activities in the art of software engineering (let alone the science of computing). A healthy diet includes 20% design, 20% research, 10% coding, 20% testing, and 30% maintenance. Young grads often think that the 10% there is what its all about.
Think of it this way: if a student submits code that is %100 hers, and does what it claims to do, but can't explain how it does it or why, and can't easily get it to do something else - what grade should she get?
Posted by: Yishay Mor | February 23, 2008 at 06:53 PM
I guess most of the students do use source code which downloaded from www. But is it wrong? I guess no one can get a lot e-book on second life in internet for free with thousands of example. I strongly believe students need to be assessed based on their understanding on the script which they wrote not on based on what they have learn the course in the blog.
Posted by: bob | February 25, 2008 at 01:29 AM
Bob - . Yip, I agree with you that we want to assess understanding. My point is really that they can demonstrate their understanding of their own code in a blog. They are assessed both on the blog and on their code (and a variety of other criteria). My worry just now is that students are downloading stuff which they have no understanding of. And a blog is a reasonable way to check for understanding given the class is so big I can't personally interview everyone.
In answer to Yishay's question I would seriously doubt that someone could submit something which is really 100% hers but which she can't explain or extend. I think you need to understand in order to write - what do you think?
Posted by: Judy Robertson | February 25, 2008 at 09:01 AM
Back in the days of Basic, I spent some time programming short computer games, working my way through the Sinclair manual and doing it all from scratch. It was about ten years later that I thought 'Why did I do that? Why didn't I make much more sophisticated games by stitching together other people's code?' I felt it was a failure in my learning that I didn't understand that programmers build on each other's work - they don't keep reinventing the wheel.
I can see that's a problem from the point of view of assessment, though. Perhaps for assessment it might be worth sending students to look for a bit of scripting that they think is poor, and explaining what is wrong with it and how it could be improved? Or giving them a selection of free scripts and getting them to combine them to make a theme park ride? Or scripting something fairly basic and challenging them to improve it?
Posted by: Rebecca | February 25, 2008 at 09:57 PM
Thanks for your input, Rebecca. We do some of your suggestions (e.g. giving them skeleton code and asking them to fill in blanks) when they are in first year and learning how to program in the first place. And constructing the theme park from a selection of scripts will work well next year with 1st years. At Msc and fourth year level they should be advanced enough to know how to learn a new language with minimal prompting/scaffolding from staff. That is, they should know how to learn from example without just copying. Unfortunately some of the students are not performing at the advanced level. This is probably because the MSc students have had a shorter time to learn programming. But they are still meant to be assessed at MSc level. this is quite a vexed issue!
Posted by: JudyRobertson | February 26, 2008 at 07:51 AM