Recently I was appointed the position of ‘Academic Integrity Officer’ for the department of Computing and Information Science at the University of Guelph. Basically, I review undergraduate programming assignments and check them for plagiarism. Sweet title right? Makes me feel like Dog the Bounty Hunter. Though some of my friends told me I’m just a NARC. Bummer. Anyways, when i took the position I thought that it would sound great on the resume, be a good life experience, and help pad the back pocket (which can never hurt); but I knew that it had nothing to do with usability. At least, that’s what I thought. DUN DUN DUN!!!! [This is where I imagine overly dramatic music playing even though it's a mundane topic].
*** DISCLAIMER: All of the examples used here are merely anecdotal. They are not examples of actual cases of academic misconduct found at the University of Guelph, nor do does the topic matter in this blog post breach the terms of any privacy agreement I may have signed. ***
When a case of academic misconduct is discovered, it is my job to write up a formal report, which after going through a few people, ends up at the Dean’s office. Keep in mind that the Dean and the Associate Dean don’t have a background in computer programming. They’ve seen these reports before but that’s really the extent of it. So I can’t just send them the two assignments and let them figure it out. I have to make a non-programmer understand the similarities between 2 pieces of software, and do this all on a few 8″ x 11″ sheets of paper. All of a sudden, this becomes an example of a real-world usability problem with real-world constraints. Let’s break it down into Problem and (Potential) Solution, and just for fun, Take Home Message that applies to all user interfaces and document writing.
Problem: A non-programmer doesn’t know the words “variable, function, main method, comment” in a programming context. How then do you describe the similarities in the anatomy of the two programs?
Solution: You can say things like “the wording is similar” instead of “the variable names, function names, or comments are similar”.
Take Home Message: Use language appropriate for your target audience. They shouldn’t have to dictionary.com your terminology.
Problem: A non-programmer does not know that spacing and tabbing does not affect the functionality of the program. How then do you effectively show the similarities between two bits of code that at first glance look different?
Solution: The human mind is very good at visually spotting patterns [lookup Gestalt Psychology if you don't believe me]. Firstly, you can point out that these spaces and tabs are trivial and do not affect the functionality. Second of all, you can say that “the structure is identical”, while circling and highlighting the two bits of code (chunking) and connecting them with a line to represent a reationship. The best way to do this is have the two bits of code side by side.
Take Home Message: Use visual aids to chunk objects together or depict relationships. The human mind is very good at processing this information. In report writing, try to use graphs and figures to summarize information and show relationships.
Problem: On an 8″ x 11″ page, you cannot put two pieces of code side by side without making them too small to read.
Solution 1: You can put the code one on top of the other, but then you can’t draw lines between similar code- the lines cross and it looks confusing, and since the similar bits don’t line up horizontally, it is more difficult for the reader to see the similarities.
Solution 2: You can put the code side by side using landscape. This, however, may still result in code that is too small to be readable.
Take Home Message: Due to real-world constraints, you will often have to make comprises. Consider all options and choose the one that is most appropriate.
Overall, it is important to keep in mind that user interfaces don’t just come in the digital form. It is important to make even your work reports user-friendly. In my case, a user-friendly report means that the bad guy doesn’t get away. Don’t mess with the Dog.