Archives for : August2013

HCI 2013 publication – cognitive models

I have a paper coming up at BCS HCI 2013 (September 11-13th, London), “Predictive Modelling for HCI Problems in Novice Program Editors” (Fraser McKay and Michael Kölling). It’s a predictive human performance modelling approach to learner programmer tools, carried out with CogTool. Second author is my PhD supervisor. From the abstract:

We extend previous cognitive modelling work to four new programming systems, with results contributing to the development of a new novice programming editor. Results of a previous paper, which quantified differences in certain visual languages, and feedback we had regarding interest in the work, suggested that there may be more systems to which the technique could be applied. This short paper reports on a second series of models, discusses their strengths and weaknesses, and draws comparisons to the first. This matters because we believe “bottlenecks” in interaction design to be an issue in some beginner languages – painfully slow interactions may not always be noticeable at first, but start to become intrusive as the programs grow larger. Conversely, text-based languages are generally less viscous, but often use difficult symbols and terminology, and can be highly error-prone. Based on the models presented here, we propose some simple design choices that appear to make a useful and substantive difference to the editing problems discussed.

This is a short paper, that ties up the loose ends of a previous HCI paper.

EDIT 12/09/13: I’ve posted a link to my copy of the PDF, and it’s also in open-access on the KAR (my university’s institutional repository). ACM and BCS links will (presumably) follow once available.

How to draw pi…

3141 digits with stampI’m possibly the least mathematically-minded programmer I know, but a maths-teacher friend recently prompted me to throw together an app we’ve called Pi-Wire. It started with the mathematical artwork of Cristian Ilies Vasile. To quote Visual news,

First Cristian Ilies Vasile had the idea of connecting each digit of π to its successive digit with links to the position of the numerically corresponding segments. Martin Krzywinski added to Vasile’s visualization…

The effect’s pretty impressive (check out the links). It distributes the digits 0-9 around the edge of a circle, and visualises the order in which they appear in π (or another constant). So, for the digits 3.14159, it draws connections from:

3 → 1, 1 → 4, 4 → 1, 1 → 5, 5 → 9

Chris Smith, maths teacher and noted pi geek, wondered whether it was possible to animate the effect, “so people get a handle for how segments are put together and then the dynamics of it.” The (very cool) software used in the original visualisations is most-often used in biology, though it would probably have been possible to do something here… I’ve heard it remarked that computer scientists like to “make” things, as a first resort, rather than last (gross generalisation, but I include myself in it…). Since there would be work involved in automating Circos, I thought I’d have a bit of fun with version 4.5 of the Windows Presentation APIs*.

The result was Pi Wire, which has been thrown together in the last few days. The application exposes parameters that adjust what’s being visualised, and it animates the process, as well as saving final (or intermediate) images. It renders pi, e, or φ to a variable number of decimal places. Each connection, in the example above, is rendered in colour, depending on the value of the (first) digit – 3s are pink/purple, 1s are orange, etc. It doesn’t look like much when working with only five decimal places, but the example shown in the picture uses the first 10,000 digits of pi. Chris blogged a little bit about the maths and patterns here.

Critically, the animation means a picture can be built up bit-by-bit (for demonstrating to kids, for example). As well as tweaking the render settings, we can adjust colours, line properties, and so on. We can switch on or off individual segments/digit values. The golden/orange graphic (right) shows only the progressions (for the first 100 digits) which start with 1. It shows the spread of which digits usually follow a 1.Pi 1000 digits - draw 1 only

It’s a bit of a rush job, though it’s (fairly) easy to use and hopefully interesting. Chris is certainly having a lot of fun making pretty pictures!

* Which I’d been using for work anyway (an old link, but one example).