17 May 2014

Quicker

A charming series of videos that visualize various simple sorting algorithms via Eastern European folk dance. Perhaps the Székely folk dance shellsort is the most lively, as well as the optimal algorithm. But using 4-1/2 minutes to sort 10 elements is still somewhat poky.

kottke.org

06 May 2014

Tiling, literally

Ramsey Nasser explains his Arabic programming language/artwork قلب, a recursive acronym which we could transliterate as 'ALB.
At every single step of the way, every software tool you would use to build a language breaks horribly when encountering non-Latin text. They all expect text encoded as ASCII, which is the standard that includes lowercase and capital Latin characters, numbers, punctuation, and that’s about it. Anything else needs considerably more effort to support consistently. The preceding screenshot shows a version of my interpreter choking on Arabic text and vomiting it out as percent-delimited code points.

LanguageHat

08 April 2014

11 March 2014

No news

Sometimes a project is just slow, steady, grind-it-out work, without frequent milestones to mark progress. Work's like that sometimes.

17 January 2014

Start 'em young

As Eleanor Barkhorn reports, the time to get more women in computer science (any STEM field, for that matter), is when girls are in middle school and high school. The low participation rate in the AP computer science test by women high schoolers is shocking: in some rural states, in the past year, no girls took the exam.

Barbara Ericson, of Georgia Tech's Institute for Computing Education, is working to change that. Ericson and her colleagues, in partnership with the Girl Scouts and other organizations, are experimenting with new strategies to get young women interested in computing. One radical idea: allowing high school students to use CS courses to count toward math or science curriculum requirements.

As much as I think everyone should have a solid grounding in logic (usually introduced by proving theorems in geometry) and problem solving by manipulating equations (algebra, Nicholson Baker's bugbear), I'm inclined to support this idea. Designing, coding, and debugging a program in a procedural language calls for similar skills: working at multiple levels of abstraction, systematically eliminating explanations until the correct one is found, finding the simplest solution.