[ProgSoc] Excellent little programming/hardware demos for O-day, so come to the Progsoc room today

marauder marauder at marauder.net.au
Thu Jan 27 00:14:37 EST 2011


Dear Progsoc,

I've had a good idea.  Apart from being in Progsoc, I'm also in the Usyd Psychology Society, and both societies need cool things to show off on their stands for O-day.  So I've thought of interesting little psych demos that are also interesting tech demos.  This way Progsoc gets to show off its programming and sysadmin chops with stuff that people can actually play with.  And because the respective O-days are over a kilometre apart, there won't be any awkwardness about having the same cool things at two stands.

I'll run through my ideas, from the programming angle and from the psych angle.  The aim is that there are enough so that many people can be a bit involved, and on O-day there are several projects to rotate through, switching each hour or something.  If something catches your eye, come by the Progsoc room today (Thu 27th) at 6ish, or email me.  You're welcome to help out remotely through the power of git, although a Progsoc codefest would be kinda cool too.  It's a good chance to learn or teach a language or technology or library.  I can provide hardware and pizza and whatnot, if there's not enough of those things floating around Progsoc.

This is totally tl;dr, I know, so in brief if you'd like to play with or learn about face recognition/blink detection/computer vision, some easy game programming, graphics/visualisation, optical mark recognition (e.g. those multiple-choice test answer sheets), web programming, or sysadmin, read on/email me.  

Thanks!
-marauder




1. Using the world as an extended memory

This one is seriously sneaky, and it should be highly impressive.  Two questions about how people solve problems are, do we plan far ahead or only a step or two, and do we have a copy of the problem in our heads or do we rely on what's in front of us?  One way to test this is to give people a computer-game puzzle that takes a lot of steps to solve.  And then while they're in the middle of solving it, wait for them to blink and while their eyes are closed, shuffle the game board a bit.  Turns out that people don't notice that some pieces have moved, and it doesn't affect their solving time all that much.  Which suggests that humans don't plan much and don't hold a problem in their heads if it's available in front of them.  Of course, if you wanted to be funny, you would just keep shuffling the puzzle every second blink and see how long people keep trying, with no idea why it's taking so long to solve such an easy puzzle.  I don't think anyone's done this, until now.

Tech stuff: I want to use Intel's OpenCV computer vision library and a webcam to spot eyeblinks.  The puzzle I want to implement is one of those picture puzzles where the pieces are jumbled and you have to slide them around.  I think PyGame and PyOpenCV are good library choices but I'm biased because me and Python are caught up in a serious bromance.  Eyeblink detection seems like a big deal especially if you haven't done much computer vision stuff, but actually it's mostly a solved problem, I think we can follow in the footsteps of giants here.


2. Machine marking of personality tests

People seem to love personality tests, and I have access to the good stuff that's psychologically valid.  We can give people a personality profile, information on where that places them in comparison to people who've visited the stand and people in general, and see if there's any personality patterns according to faculty, age, starsign, etc.

Tech stuff: to do this efficiently for lots of visitors without having to get hold of 10 laptops, we need machine-marked paper forms like they use for multiple-choice tests.  Optical Mark Recognition has always interested me for some reason, and it turns out that you can homebrew something with a cheap scanner and open-source software that's just as good as the commercial OMR.  In fact this project is 25% coding, 75% sysadmin, because the guts of it is LimeSurvey (a PHP app for web surveys) and queXF (a PHP app for OMR).  We mostly just have to glue them together so scans get fed automatically into queXF, OMR results get fed into LimeSurvey, and LimeSurvey results get turned into printed reports for each person and some graphs about the people who've come by.  


3. Deindividuation

Deindividuation is where people in large groups start behaving like antisocial rioters, because they lose any sense of individual responsibility for their behaviour.  Starting an actual riot would be attention-getting but might interfere with the orderly taking of membership money from students.  But you can demonstrate the effect by collecting anonymous answers to the question, "If you could be totally invisible for 24 hours and were completely assured that you would not be detected or held responsible for your actions, what would you do?"  Once you have enough answers, you can display them on a screen and common themes start to emerge: bank robbery, other criminal acts, weird sex, spying, eavesdropping.  People do come up with charitable things like ending wars or poverty, but on the whole antisocial acts greatly outnumber prosocial ones.  The guy who came up with this exercise ran it in 13 psych courses and 3 prisons, and found that if their anonymity were guaranteed, student behaviour would be indistinguishable from that of convicted felons. 

Tech stuff: not that hard, right?  A laptop with a little text box for visitors to type into, a database or something to collect the responses, then some cool visualisations on another screen.  I'm imagining something like those tag cloud pictures all the cool kids have on their blogs.


4. Emotional Stroop

If you haven't met the Stroop Effect before, check out http://faculty.washington.edu/chudler/java/ready.html (not actually Java, just JavaScript).  It shows how the thing you want your brain to do (naming the colour of ink a word is written in) can be slowed down by tasks you didn't want your brain to do but it does anyway (reading the word).  There's another version of this called Emotional Stroop, where the task is the same, you have to name the ink colour.  But in some cases the word is just a neutral word and in others it's about something like body image or depression or whatnot.  For some people the emotional content of the word makes no difference to how fast they can name the colour it's in, and for some people it does.  Psychs are playing with this to see if they can screen for disorders, but I want to code one up that detects how much people have sex on the brain.  Load it up with sexually-suggestive words (nothing too explicit, perverts!) and see who gets bogged down.

Tech stuff: this could be written in anything, so if you want to help you can choose.  It could take 30 seconds to write in Flash, for all I know.  You just need to display words from a list in one of three colours, wait for the user to press a key, record the reaction times for correct responses, and summarise at the end.


5. Registration-taker

Not a psych thing, just a thing.  I'm writing one in Django so people can scan the barcodes on student cards/Union cards, take signups and renewals, and spit out receipts.  It would take someone who knew Django about half an hour to bang this out, but I don't know Django and I've spent 8 hours to get maybe 1/3 of the way.  If anyone wants to school me a bit it would be hugely appreciated.




More information about the Progsoc mailing list