Category: Computers

The shape of programmer’s brains

I ran across a remarkable paper, “The Camel has two Humps”. Incoming Introduction to Programming students all *want* to learn to program, but about half the class never gets the hang of it and never will. The authors found a test that identifies the students that can learn to program.

The authors’ pretest asks questions about variable assignment: a=10, b=20, a=b. There is a typical meaning for these assignments in programming languages but the incoming students may not know them. So the authors classify the type of logic required to reach different answers and whether the students use the same logic for each question or switch around on different questions. Students who come up with consistent answers for different questions are the students who can learn to program.

Here’s a key figure:
consistent and inconsistent answers corellated with grades

This is remarkable, a way to candle incoming CS students and figure out (mostly) which ones can learn to program.

One notable thing that further research can answer is about the oddballs. The 2-3% of initially inconsistent testers that *do* learn to program–what sort of programmers are they? Do they end up writing different programs than the typical programmer?

Better reading tech

A company has developed a new reading technology called Live Ink (paper here). The idea is to improve the way text is displayed to improve reading comprehension. The way the brain perceives a page of text is as small region at a time. Words from several lines get picked up at the same time. This confuses the parts of the brain that comprehend words and sentences. Live Ink proposed to spread text out to avoid this mental confusion to improve reading comprehension.

There’s a kernal of a good idea there–electronic text allows reformatting to increase comprehension. But their solution sucks. It takes up too much space and it only partially helps with the problem of line confusion. The syntactic breakup may be helpful. Here’s an image of it:
Live Ink example

Computer formatting is a good idea. Here is my idea of how to do it. Fuzz out the lines before and after the current line. This could be done one of two ways. If eye movement tracking is available, follow the eye and only make the line being looked at visible with the others fuzzed out. Without eye tracking make this a timed system (like traditional light bar reading trainers). Start it on a section of text and make one line at a time is visible moving through the text. Controls would be needed to pause and go back a few lines, and flip it off.

By fuzz out the rest of the page I mean alter it so the brain doesn’t think it is text and try to decode it. Whether making it out of focus is enough or if another kind of noise needs to be added would need to be determined by trials. It would be important to leave enough information that the presence of text blocks and formatting is visible. These provide visual landmarks needed for good reading.

Technically, this could be easy–a web browser extension or perhaps as simple as some Javascript added to a page with overlay images fuzzing the text and moving as needed.

Graphviz on OS X

tried running the Graphviz programs on OS X (sudo fink install graphviz) and got a font error message, ‘Could not find/open font : Times in…’

To use the Graphviz programs with OS X, need to specify


The program can use fonts in /usr/X11R6/lib/X11/fonts/TTF. This is part of
the Apple supplied X11 (part of the optional/developer OS install disk? I don’t recall when/how I installed it.).
Found this info at: link