Computer science students should learn to cheat, not be punished for it

This is a well thought-through response to a recent alarmist NYT article about cheating among programming students.

The original NYT article is full of holy pronouncements about the evils of plagiarism, horrified statistics about its extent, and discussions of the arms wars, typically involving sleuthing by markers and evermore ornate technological fixes that are always one step behind the most effective cheats (and one step ahead of the dumber ones). This is a lose-lose system. No one benefits. But that’s not the biggest issue with the article. Nowhere does the NYT article mention that it is largely caused by the fact that we in academia typically tell programming students to behave in ways that no programmer in their right mind would ever behave (disclaimer: the one programming course that I currently teach, very deliberately, does not do that, so I am speaking here as an atypical outlier).

As this article rightly notes, the essence of programming is re-use of code. Although there are certainly egregiously immoral and illegal ways to do that (even open source coders normally need to religiously cite their sources for significant uses of code written by others), applications are built on layer upon layer upon layer of re-used code, common subroutines and algorithms, snippets, chunks, libraries, classes, components, and a thousand different ways to assemble (in some cases literally) the code of others. We could not do programming at all without 99% of the code that does what we want it to do being written by others. Programmers knit such things together, often sharing their discoveries and improvements so that the whole profession benefits and the cycle continues. The solution to most problems is, more often than not, to be found in StackExchange forums, Reddit, or similar sites, or in open source repositories like Github, and it would be an idiotic programmer that chose not to (very critically and very carefully) use snippets provided there. That’s pretty much how programmers learn, a large part of how they solve problems, and certainly how they build stuff. The art of it is in choosing the right snippet, understanding it, fitting it into one’s own code, selecting between alternative solutions and knowing why one is better (in a given context) than another. In many cases, we have memorized ways of doing things so that, even if we don’t literally copy and paste, we repeat patterns (whole lines and blocks) that are often identical to those that we learned from others. It would likely be impossible to even remember where we learned such things, let alone to cite them.  We should not penalize that – we should celebrate it. Sure, if the chunks we use are particulary ingenious, or particularly original, or particularly long, or protected by a licence, we should definitely credit their authors. That’s just common sense and decency, as well as (typically) a legal requirement. But a program made using the code of others is no less plagiarism than Kurt Schwitters was a plagiarist of the myriad found objects that made up his collages, or a house builder is a plagiarist of its bricks.

And, as an aside, please stop calling it ‘Computer Science’. Programming is no more computer science than carpentry is woodworking science. It bugs me that ‘computer science’ is used so often as a drop-in synonym for programming in the popular press, reinforced by an increasing number of academics with science-envy, especially in North America. There are sciences used in computing, and a tiny percentage of those are quite unique to the discipline, but that’s a miniscule percentage of what is taught in universities and colleges, and a vanishingly small percentage of what nearly all programmers actually do. It’s also worth noting that computer science programs are not just about programming: there’s a whole bunch of stuff we teach (and that computing professionals do) about things like databases, networks, hardware, ethics, etc that has nothing whatsoever to do with programming (and little to do with science). Programming, though, especially in its design aspects, is a fundamentally human activity that is creative, situated, and inextricably entangled with its social and organizational context. Apart from in some research labs and esoteric applications, it is normally closer to fine art than it is to science, though it is an incredibly flexible activity that spans a gamut of creative pursuits analogous to a broad range of arts and crafts from poetry to music to interior design to engineering. Perhaps it is most akin to architecture in the ways it can (depending on context) blend art, craft, engineering, and (some) science but it can be analogous to pretty much any creative pursuit (universal machines and all that).

Address of the bookmark:

Original page


Learnium is yet another attempt to overlay a cloud-based social medium on institutional learning, in the same family as systems like Edmodo, Wikispaces Classroom, Lore, GoingOn, etc, etc. I deliberately exclude from this list the far more excellent, theoretically grounded, and innovative Curatr, as well as dumb bandwagoners like – of all things – Blackboard (not deserving of a link but you could look up their atrocious social media management tools if you want to see how not to do this).

Learnium has a UK focus and it includes mobile apps as well as institutional integration tools. It looks slick, has a good range of tools, and seems to be gaining a little traction. This is trying to do something a little like what we tried to do with the Landing, but it should not be confused with the Landing in intent or design philosophy, notwithstanding some superficial similarities. Although the Landing is often used for teaching purposes, it deliberately avoids things like institutional roles, and deliberately blurs such distinctions when its users make use of them (eg. when they create course groups). It can be quite confusing for students expecting a guided space and top-down structure, and annoying if you are a teacher trying to control the learning space to behave that way, but that’s simply not how it is designed to work. The Landing is a learning space, where everyone is a teacher, not an institutional teaching space where the role is reserved for a few.

Learnium has a far more institutionally managed, teacher/course-oriented perspective. From what I can tell, it’s basically an LMS, cut down in some places, enhanced in its social aspects. It’s closer to Canvas than Moodle in that regard. It might have some value for teachers that like the social media tools but that dislike the lack of teacher-control, lack of privacy, deeply problematic ethics, and ugly intrusions of things like Facebook, and who do not want the cost or hassle of managing their own environments.  It is probably a more congenial environment for social pedagogies than most institutional LMSs, allowing learning to spread beyond class groups and supporting some kinds of social networking. There is a lot of scope and potential for vertical social networks like this that serve a particular kind of community in a tailored fashion. This is very much not Facebook, and that’s a very good thing.

But Learnium is an answer to the question ‘how can I use social media in my courses?’ rather than ‘how can social media help to change how people learn?’ It is also an answer to the question of ‘how can Learnium make money?’ rather than ‘how can Learnium help its users?’ And, like any cloud-based service of this nature (sadly including Curatr), it is not a safe place to entrust your learning community: things like changes to terms of service, changes to tools, bankcruptcy ,and takeovers are an ever-present threat. With the exception of open systems that allow you to move everything, lock stock and barrel, to somewhere else with no significant loss of data or functionality, an institution (and its students) can never own a cloud-based system like this. It might be a small difference from an end user perspective, at least until it blows up, but it’s all the difference in the world.

Address of the bookmark:

Original page

Teens unlikely to be harmed by moderate digital screen use

The results of quite a large study (120,000 participants) appear to show that ‘digital’ screen time, on average, correlates with increased well-being in teenagers up to a certain point, after which the correlation is, on average, mildly negative (but not remotely as bad as, say, skipping breakfast). There is a mostly implicit assumption, or at least speculation, that the effects are in some way caused by use of digital screens, though I don’t see strong signs of any significant attempts to show that in this study.

While this accords with common sense – if not with the beliefs of a surprising number of otherwise quite smart people – I am always highly sceptical of studies that average out behaviour, especially for something as remarkably vague as engaging with technologies that are related only insofar as they involve a screen. This is especially the case given that screens themselves are incredibly diverse – there’s a world of difference between the screens of an e-ink e-reader, a laptop, and a plasma TV, for instance, quite apart from the infinite range of possible different ways of using them, devices to which they can be attached, and activities that they can support. It’s a bit like doing a study to identify whether wheels or transistors affect well-being. It ain’t what you do, it’s the way that you do it. The researchers seem aware of this. As they rightly say:

“In future work, researchers should look more closely at how specific affordances intrinsic to digital technologies relate to benefits at various levels of engagement, while systematically analyzing what is being displaced or amplified,” Przybylski and Weinstein conclude. 

Note, though, the implied belief that there are effects to analyze. This remains to be shown. 

Address of the bookmark:

Moral panic: Japanese girls risk fingerprint theft by making peace-signs in photographs / Boing Boing

As Cory Doctorow notes, why this headline should single out Japanese girls as being particularly at risk – and that this is the appeal of it – is much more disturbing than the fact that someone figured out how to lift fingerprints that can be used to access biometric authentication systems from photos taken using an ‘ordinary camera’ at a considerable distance (3 metres). He explains the popularity of the news story thus:

I give credit to the news-hook: this is being reported as a risk that young women put themselves to when they flash the peace sign in photos. Everything young women do — taking selfies, uptalking, vocal fry, using social media — even reading novels! — is presented as a) unique to young women (even when there’s plenty of evidence that the trait or activity is spread among people of all genders and ages) and b) an existential risk to the human species (as in, “Why do these stupid girls insist upon showing the whole world their naked fingertips? Slatterns!”)

The technical feat intrigued me, so I found a few high-res scans of pictures of Churchill making the V sign, taken on very good medium or large format film cameras (from that era, 5″x4″ press cameras were most common, though some might have been taken on smaller formats and/or cropped) with excellent lenses, by professional photographers, under various lighting conditions, from roughly that distance. While, on the very best, with cross-lighting, a few finger wrinkles and creases were partly visible, there was no sign of a single whorl, and nothing like enough detail for even a very smart algorithm to figure out the rest. So, with a tiny fraction of the resolution, I don’t think you could just lift an image from the web, a phone, or even from a good compact camera to steal someone’s fingerprints unless the range were much closer and you were incredibly lucky with the lighting conditions and focus. That said, a close-up selfie using an iPhone 7+, with focus on the fingers, might well work, especially if you used burst mode to get slightly different images (I’m guessing you could mess with bas relief effects to bring out the details). You could also do it if you set out to do it. With something like a good 400mm-equivalent lens,  in bright light, with low ISO, cross-lit, large sensor camera (APS-C or higher), high resolution, good focus and small aperture, there would probably be enough detail. 

Address of the bookmark:

Setapp – Netflix-style rental model for apps for Mac

Interesting. For $10USD/month, you get unlimited access to the latest versions of what is promised to be around 300 commercial Mac apps. Looking at the selection so far (about 50 apps), these appear to be of the sort that usually appear in popular app bundles (e.g. StackSocial etc), in which you can buy apps outright for a tiny fraction of the list price (quite often at a 99% reduction). I have a few of these already, for which I paid an average of 1 or 2 dollars apiece, albeit that they came with a bunch of useless junk that I did not need or already owned, so perhaps it’s more realistic to say they average more like $10 apiece. Either way, they can already be purchased for very little money, if you have the patience to wait for the right bundle to arrive. So why bother with this?

The main advantage of SetApp’s model is that, unlike those in bundles, which often nag you to upgrade to the next version at a far higher price than you paid almost as soon as you get them, you always get the latest version. It is also nice to have on-demand access to a whole library at any time: if you can wait for a few months they will probably turn up in a cheap pay-what-you-want app bundle anyway, but they are only rarely available when you actually need them.  I guess there is a small advantage in the curation service, but there are plenty of much better and less inherently biased ways to discover tools that are worth having. 

The very notable disadvantage is that you never actually own the apps – once you stop subscribing or the company changes conditions/goes bust, you lose access to them. For ephemerally useful things like disk utilities, conversion tools, etc this is no great hassle but, for things that save files in proprietary formats or supply a cloud service (many of them) this would be a massive pain. As there is (presumably) some mechanism for updating and checking licences, this might also be an even more massive pain if you happen to be on a plane or out of network range when either the app checks in or the licence is renewed. I don’t know which method SetApp uses to ensure that you have a subscription but, one way or another, lack of network access at some point in the proceedings could really screw things up. When (with high probability) SetApp goes bust, you will be left high and dry. Also, I’m guessing that it is unlikely that I would want more than a dozen or thereabouts of these in any given year, so each would cost me about $10 every year at the best of times. Though that might be acceptable for a major bit of software on which one’s livelihood depends, for the kind of software that is currently on show, that’s quite a lot of money, notwithstanding the convenience of being able to pick up a specialist tool when you need it at no extra cost. 

This is a fairly extreme assault on software ownership but closed-source software of all varieties suffers from the same basic problem: you don’t own the software that you buy.  Unlike use-once objects like movies or books, software tends to be of continuing value. The obvious solution is to avoid closed-source altogether and go for open source right the way down the stack: that’s always my preference. Unfortunately, there are still commercial apps that I find useful enough to pay for and, unfortunately, software decays. Even if you buy something outright that does the job perfectly, at some point the surrounding ecosystems (the operating system, network, net services, etc) will most likely render it useless or positively dangerous at some point. There are also some doubly annoying cases where companies stop supporting versions, lose databases, or get taken over by other companies, so software that you once owned and paid for is suddenly no longer yours (Cyberduck, I’m looking at you). Worst of all are those that depend on a cloud service over which you have no control at all and that will almost definitely go bust, or get taken over, or be subject to cyberattack, or government privacy breaches, or be unavailable when you need it, or that will change terms and conditions at some point to your extreme disadantage. Though there may be a small niche for such things and the immediate costs are often low enough to be tempting, as a mainstream approach to software provision, it is totally unsustainable.


Address of the bookmark:

Pebble dashed


Pebble made my favourite smart watches. They were somewhat open, and the company understood the nature of the technology better than any of the mainstream alternatives. Well, at least they used to get it, until they started moving towards turning them into glorified fitness trackers, which is probably why the company is now being purchased by Fitbit.

So, no more Pebble and, worse, no more support for those that own (or, technically, paid for the right to use) a Pebble. If it were an old fashioned watch I’d grumble a bit about reneging on warranties but it would not prevent me from being able to use it. Thanks to the cloud service model, the watch will eventually stop working at all:

Active Pebble watches will work normally for now. Functionality or service quality may be reduced down the road. We don’t expect to release regular software updates or new Pebble features. “

Great. The most expensive watch I have ever owned has a shelf life of months, after which it will likely not even tell the time any more (this has already occurred on several occasions when it has crashed while I have not been on a viable network). On the bright side (though note the lack of promises):

We’re also working to reduce Pebble’s reliance on cloud services, letting all Pebble models stay active long into the future.”

Given that nearly all the core Pebble software is already open source, I hope that this means they will open source the whole thing. This could make it better than it has ever been. Interesting – the value of the watch would be far greater without the cloud service on which it currently relies. 


Address of the bookmark:

Open Whisper Systems

The Signal protocol is designed for secure, private, encrypted messaging and real-time calling. The protocol, designed by Open Whisper Systems, is used in an increasingly large range of tools (including by Facebook and Google), but their own app is the most interesting application of it. 

The (open, GPL) Signal app is a secure, private messaging and voice chat app for iOS and Android, offering guaranteed and strong end-to-end encryption without having to sign up for a service with dubious privacy standards or further agendas (e.g. Facebook, Apple, Google, Whatsapp, Viber etc). No ads, no account details kept by the company, no means for them (or anyone) to store or intercept messages or calls, the organization is funded by donations and grants. The app uses your phonebook to discover other contacts using Signal – I don’t have many yet, but hopefully a few of my contacts will see this and install it. Call quality seems excellent – as good as Skype used to be before Microsoft maimed it – though I haven’t used it enough yet to assess its reliability. One disadvantage is that, if you have more than one phone and phone number, there seems to be no obvious way to link them together. That’s a particular nuisance on a dual-SIM phone.

It needs a real, verified phone number to get started but, once you have done that, you can link it to other devices too, including PCs (via Chrome or a Chrome-based browser like the excellent Vivaldi), using a simple QR code (no accounts!) so this is a potentially great replacement for things like Whatsapp, Skype, Allo, Viber, etc. No video calling yet, though you can send video messages (and most other things).


Address of the bookmark:

Get that “new Mac” smell all the time with a $24 scented candle

Some time ago, while comparing the virtues of paper and electronic books, I predicted that the current generation would one day wax lyrical about the smell of a new iPhone much as those from my generation get gooey over the scent of old books.

That day has arrived.

Address of the bookmark:

Sole and Despotic Dominion

Cory Doctorow is on excellent form discussing the evils of DRM and the meaning of ownership. The title is lifted from William Blackstone, referring to what it means to own something –  “that sole and despotic dominion which one man claims and exercises over the external things of the world, in total exclusion of the right of any other individual in the universe.” Doctorow’s central argument here is that, at least in the US (where DMCA 1201 denies people the right to break DRM locks), the presence of copyrighted DRM’d code in almost every object manufactured, from books to rectal thermometers, means that they cannot ever be owned by anyone other than their manufacturer, protected by law and unaccountable to anyone. 

“DMCA 1201 gave publishers and movie studios and game companies the power to make up their own private laws and outsource their enforcement to the public courts and police.”

Among the results of this are that security researchers cannot reveal flaws that may be dangerous or even deadly (think cars, insulin pumps, etc, not to mention the Internet of Hackable Things) while criminals can exploit them freely. It means that companies like Volkswagen can conceal cheating on emissions tests, that makers of thermostats can prevent you from controlling heat in your own home, that books you bought can be taken away from you on a whim or an error, that printer manufacturers can introduce code to break your printer if you don’t use their cartridges the way they want you to use them, that security agencies can demand that manufacturers let them use your webcam to spy on you, that abandoned games on a long extinct platform cannot be ported to modern hardware, that your watch will stop working if its manufacturer goes bust, and so on. It means that, mostly without our consent or knowledge, we no longer own what we own. As Doctorow puts it:

“There’s a word for this: feudalism. In feudalism, property is the exclusive realm of a privileged few, and the rest of us are tenants on that property. In the 21st century, DMCA-enabled version of feudalism, the gentry aren’t hereditary toffs, they’re transhuman, immortal artificial life-forms that use humans as their gut-flora: limited liability corporations.”

Address of the bookmark:


Very interesting – a real-time, largely browser-based video, audio, chat, screen-sharing, etc system requiring no sign-up, no fees, no persistent data. Just pick a URL for a web meeting (webinar), and share it with 15 or more other people. It’s not exactly Adobe Connect, but it has all the main features needed for quick, easy web conferencing with no need for proprietary plugins.

There are no ads, it runs on most browsers that support WebRTC (best on Chrome, Firefox, or one of their many derivatives) and there are mobile apps for it. It’s not just a connection service for WebRTC – there are TURN and STUN servers involved too, so this costs a fair bit for the company to develop and run. It took me a while to figure out how they ever intend to make any money but I think it seems to involve a model much like that of BigBlueButton, with paid-for services like recording, app integration, broadcast etc available through TalkyCore. 

Like all WebRTC implementations, much depends on the browser and router, so this might not work for everyone all the time, but I think it looks very promising, especially now that Firefox has removed Hello from its browser.

Address of the bookmark: