Posts by Year

2019

How I Teach Today

I teach a training class for RStudio instructors once a month or so, and invigilate anywhere from half a dozen to a dozen exams each week. The mechanics are ...
November 25, 2019

Allocating Responsibilities

I wrote this guide ten years ago when I was supervising undergraduate programming projects at the University of Toronto. I hope it’s still useful.
November 19, 2019

Cutting Corners

I wrote this guide ten years ago when I was supervising undergraduate programming projects at the University of Toronto. I hope it’s still useful.
November 19, 2019

Team Conflict

I wrote this guide ten years ago when I was supervising undergraduate programming projects at the University of Toronto. I hope it’s still useful.
November 19, 2019

Gage Park

Sometimes we get more than we deserve.
November 13, 2019

Night Watch

“That’s a nice song,” said young Sam, and Vimes remembered that he was hearing it for the first time.
November 13, 2019

Power is Always Suspicious of Fun

My dad told me once that Hitler feared Charlie Chaplin more than Winston Churchill, because people will rally around a leader who is faced with an enemy, but...
November 05, 2019

Ten Simple Rules That Are Missing

I’m a big fan of PLOS’s Ten Simple Rules and Quick Tips papers. I’ve contributed to a few, but there are many more I’d like to read. If you can write any of ...
November 03, 2019

First Do No Harm

Maya Gans and I are pleased to announce that TidyBlocks has adopted the Hippocratic License, a new open source license that allows people to use software fre...
October 30, 2019

Family

Twelve years ago today.
October 26, 2019

Teaching Tech Together Is Out

I am pleased to announce that Teaching Tech Together has now been published by Taylor & Francis. You can buy it from them directly or get it through your...
October 25, 2019

In Bloom

My father kept these four plants on the window sill for years. One day he went downstairs and they were all in bloom. It only happened once, but he always ho...
October 25, 2019

So You’ve Been Fired

Insist on a record of all conversations. The biggest mistake you can make is to assume good faith on the part of those who fired you.
October 17, 2019

Proficiency

Edwin Thoen recently tweeted a short video showing how to use multiple cursors in the RStudio IDE. It’s a powerful little feature that most users don’t know ...
October 11, 2019

Managing a Queue of Learners

More than 200 people will have taken RStudio instructor training by the end of this year. Unlike many courses, participants don’t sign up for a specific clas...
September 27, 2019

Ecosystems

My daughter was asked to pick an ecosystem and write a paragraph about it, then make a list of things she learned while doing the assignment. She had exactly...
September 22, 2019

Wind Chimes in the Rain

I woke up this morning to the sound of wind chimes in the rain. It isn’t fall yet, but it’s definitely no longer summer: not cold, not even cool, but both ar...
September 13, 2019

How Do You Tell?

I had another good conversation yesterday with Prof. Sally Fincher, whose work was a big influence on Teaching Tech Together. The subject was notional machin...
September 05, 2019

TidyBlocks Webinar

If you’ve ever played with Scratch or another blocks-based programming tool and said, “Gee, I wish I could use something like this to wrangle data,” you’re i...
September 04, 2019

Finally Real

For the last twenty years I’ve kept a list of books and projects that I didn’t think I would ever get around to doing. I am very (very) pleased that two of t...
August 22, 2019

Riding at Night

There is something magical about riding a bicycle down an empty street on a warm summer evening. Porch lights are on, and you can hear TVs and people talking...
August 20, 2019

It Feels Good to be Useful

A notification landed in my email earlier today because my GitHub ID had been mentioned in an issue, and I couldn’t be happier about its content. @njsmith w...
August 14, 2019

Research This!

I presented “Research This! Questions that Computing Educators Most Want Computing Education Researchers to Answer” at ICER 2019 this morning, and the full p...
August 14, 2019

Exoplanets

I think a lot about Scott Hanselman’s phrase “dark matter developers“—about the possibility that the 1% or 5% of developers who blog, tweet, post on Stack Ov...
August 10, 2019

Documentation Types

This post is an update on an earlier one that slims down the set of documentation types. Feedback is very welcome.
August 08, 2019

RIP Toni Morrison

If there is a book that you want to read, but it hasn’t been written yet, you must be the one to write it. — Toni Morrison
August 06, 2019

No Support for Hate

Twitter, Cloudflare, Shopify, and Amazon won’t care if they lose my business: I’m just one consumer. They will care if programmers refuse to work with them b...
August 04, 2019

Teaching Online

I think that our grandchildren will probably regard the distinction we make between what we call the real world and what they think of as simply the world...
August 03, 2019

Doing Good and Getting Paid

I taught RStudio’s instructor training course three times in the last three weeks, and one follow-up question that came up every time was, “How do I start bu...
July 27, 2019

Third Walls and Eighth Bolts

My brother Jeff used to talk about the third wall. When you’re painting a room, the first wall is easy because you’re excited about getting a chore done. The...
July 22, 2019

Is This a Notional Machine for R?

A year ago, I wrote a description of a notional machine for Python, i.e., the mental model of how Python programs execute that I want to convey to learners w...
July 15, 2019

A Veteran of a Thousand Language Wars

You see me now a veteran of a thousand psychic wars I’ve been living on the edge so long, where the winds of limbo roar… — Blue Oyster Cult
July 07, 2019

Deskilling Learning

According to Wikipedia, deskilling is, “…the process by which skilled labor…is eliminated by the introduction of technologies operated by semiskilled or unsk...
July 07, 2019

Patterns in Git

Two years ago, I proposed that someone could try to fix Git’s usability issues by:
July 05, 2019

A Modest Proposal

Undergraduate enrolment in computer science has gone up and down several times over the years. We’re currently in a boom, but history teaches that numbers wi...
July 05, 2019

Who I’ve Cited

Authors cited in Teaching Tech Together; all 356 references are available online.
June 27, 2019

Chapter Summaries

Key points from each chapter of Teaching Tech Together to complement yesterday’s index.
June 24, 2019

An Index

So what exactly does Teaching Tech Together cover?
June 23, 2019

Typography

My dad used to have a little pocketbook that was given to Australian soldiers during the Korean War. It had a few handy phrases in Korean, Chinese, and Russi...
June 20, 2019

Feature Complete

Teaching Tech Together is feature complete: I have to revise the diagrams and do one last pass on grammar, but I think the content is in close-to-finished fo...
June 19, 2019

Chunks versus Functions

I have now done two multi-page analyses in R Markdown, and one thing I’ve noticed is that I’m writing fewer functions than I normally would. A command-line s...
June 16, 2019

Software Isn’t Sustainable

Software Carpentry didn’t start life as a training program: it began as a competition to design software tools that would be easier for scientists to use. Th...
June 14, 2019

Martha’s Rules

A group I’m part of is using Martha’s Rules for consensus-based decision making. It’s working pretty well, and I hope the summary below will be useful to oth...
June 13, 2019

ICER Acceptance

Paul Denny, Brett Becker, Michelle Craig, Piotr Banaszkiewicz, and I were very pleased to receive notice last week that ICER 2019 has accepted our paper expl...
June 06, 2019

Software Engineering Revisited

I am at the International Conference on Software Engineering for the first time in a decade. It’s been good to catch up with friends, but this fly-by has con...
May 30, 2019

Checking-Driven Development

I spent some time talking to my colleague Garrett Grolemund this week about software testing and data science, and I think I’m a little less confused about a...
May 28, 2019

Active Teaching

Educators use the term active learning to describe learning through play, group discussion, one-minute papers, or anything else that requires learners to use...
May 26, 2019

LaTeX, Biber, and Pandoc

I’m trying to get Teaching Tech Together ready for publication. The PDF is looking OK, but I’m struggling to get an HTML that I’m happy with, and I’m hoping ...
May 26, 2019

Words and Hours

Words and productive hours per day over the past five months.
May 24, 2019

Checking-Driven Development

I spent some time talking to my colleague Garrett Grolemund this week about software testing and data science, and I think I’m a little less confused about a...
May 24, 2019

Bottle of Light

Scholastic published a book of mine titled Bottle of Light back in 2008 as part of a reluctant reader program—it wasn’t ever available directly to the public...
May 23, 2019

And Then Another

Comes a day, last kiss Comes a day, last breath Comes a day, and then another
May 19, 2019

Buzzfeed on DataCamp

Davey Alba’s article for Buzzfeed about DataCamp’s mishandling of an incident of sexual harassment has just been published. I think it’s a well-written summa...
May 13, 2019

Positive and Negative Openness

Yesterday, R-Ladies posted this great list of practical steps that people can take to build an R community where they work. I’m going to quote it a lot, but ...
May 11, 2019

In the Classroom

My ten rules for teaching are too high-level to be immediately useful in the classroom, so here are ten others that I hope will help people in the moment as ...
May 04, 2019

Shorter Lines

Mark Guzdial wrote a short series of tweets yesterday on how to reduce long lines at Computer Science office hours, which he has expanded in this post:
May 03, 2019

Sexing Data Science Chickens

The biggest problem in data science is its bias against people who aren’t straight, affluent, white or Asian males. Its second biggest problem, in my opinion...
May 02, 2019

R in the Browser

Mozilla has just earmarked $25,000 of funding for a research project aimed at getting R running in browsers under WebAssembly. The project is RQ5 in this lis...
April 29, 2019

From Textbooks to Notebooks and Back

I just converted my introduction to R for Python programmers from Jekyll to bookdown, partly because I wanted to learn how bookdown works but also because I ...
April 27, 2019

Ten Quick Tips for Reviewing Lessons

If you do a degree in English literature, you spend most of your time reading and critiquing other people’s work rather than writing new material yourself. I...
April 24, 2019

DataCamp Clarifications

There has been a lot of discussion online about DataCamp’s mishandling of a sexual assault case since Kara Woo bravely came forward on April 5. I published a...
April 22, 2019

Already Mostly There

I picked up Phillips and Rozworski’s The People’s Republic of Walmart on a whim, then read it in three sittings. Its subtitle says, “How the world’s biggest ...
April 22, 2019

Contrarians

Q: How many TED speakers does it take to screw in a lightbulb? A: It’s a really obscure number—you won’t have heard of it.
April 21, 2019

Learning Curves

I keeping thinking about the idea of a learning curve, but I only realized this morning that the phrase is a little strange. When we say that something has “...
April 17, 2019

What Docs When

Note: this post updates an earlier one based on feedback from several people. Please keep the comments coming.
April 16, 2019

An Exchange with DataCamp

I haven’t spoken publicly about my experience with DataCamp out of respect for Kara Woo’s privacy. Now that she has so bravely come forward, I can say that a...
April 15, 2019

The People You Have

Too often, the defenders of free markets forget that what we really want is free men. — Michael Crawford
April 14, 2019

Python Flash Cards

I’ve never met Eric Matthes, but after spending an hour browsing his Python Flash Cards, I would like to shake his hand. They’re well written, beautifully or...
April 12, 2019

Bootcamps

Some interesting data about bootcamp grads versus college grads with even-handed analysis:
April 06, 2019

The Worst Behavior

two years after the incident and DataCamp is here to collect their reward for doing the absolute bare minimum. — Jesse Mostipak
April 05, 2019

All the Roadrunning

A million miles our vagabond heels Clocked up beneath the clouds They're counting down to show time When we do it for real with the crowds Air miles are owi...
April 03, 2019

Concept Maps

Inspired by Daniela Soto’s awesome concept map of the Carpentries’ instructor training, I’ve drawn some for the lessons I’ve been writing for RStudio. Whatev...
March 31, 2019

Online Teaching Setup

As I mentioned last week, Garrett Grolemund and I have been teaching RStudio’s instructor training and certification online, and I’m pretty pleased with our ...
March 30, 2019

Curriculum Roadmap

“PythonSneks: An Open-Source, Instructionally-Designed Introductory Curriculum with Action-Design Research” by Bart, Sarver, Friend, and Cox is one of my fav...
March 30, 2019

You Should Talk to HR

I was recently reminded that a lot of people in tech think HR’s only responsibilities are hiring, benefits, and firing. That’s not how it’s supposed to work:...
March 27, 2019

Occupations

There are some threads right now on Twitter and on various forums I belong to about life after grad school—more specifically, about how little support grad s...
March 24, 2019

Twelve Weeks, Twelve Tools

Suppose you have a group of junior developers who have built moderately complicated web applications using Express and React, but don’t really understand how...
March 21, 2019

Educational Paramedics

Garrett Grolemund and I just wrapped up a couple of days of instructor training for RStudio staff, and one of the things I learned from participants’ questio...
March 20, 2019

Christchurch and Shopify

Man I can’t honestly tell if it’s just transference because I don’t know what to do with my anger and pain about it, but it sure does fucking suck that ev...
March 15, 2019

Keep Me In Your Heart for a While

Shadows are fallin’ and I’m runnin’ out of breath Keep me in your heart for a while If I leave you it doesn’t mean I love you any less Keep me in your heart ...
March 14, 2019

Reviewing Lessons

I had a great discussion yesterday with Garrett Grolemund about reviewing slides for lessons. We’re teaching a class together next week, and while I’m happy ...
March 12, 2019

The Tool I Want

We talk about “programming” as if there was just one kind, but in the past three months I have:
March 10, 2019

Learning to Program

A colleague recently pointed me at The Immutable Laws of Brainjo, which explains how to master a musical instrument more efficiently based on the neuroscienc...
March 07, 2019

Making It Work in Practice

From 2011 to 2016, Jorge Aranda and I tried to get software engineering researchers and practitioners to talk to one another by writing reviews of papers wri...
February 25, 2019

Durations

I’ve been tracking how long I work on what for a while now, and the distribution tells me that I need to manage interruptions a little better.
February 20, 2019

Is Code-Along Formative Assessment?

Wikipedia defines formative assessment as, “…a range of formal and informal assessment procedures conducted by teachers during the learning process in order ...
February 20, 2019

Late Binding

I’ve been working on a new Jekyll template for lessons that can also be used to produce nicely-formatted PDFs, mostly to give myself an excuse to do a little...
February 16, 2019

Examples Wanted for Code Review

There’s a lot of good advice on the web about how to do code reviews, from Cohen et al’s Best Kept Secrets of Peer Code Review to articles like these ones. W...
February 11, 2019

Classifying Data

With apologies to Borges, I believe that all data sets can be classified as follows:
February 04, 2019

Why I Teach (Revisited)

When I first started volunteering at the University of Toronto, students occasionally asked me why I would teach for free. This was my answer in 2004:...
January 30, 2019

Computing Skills Books for Researchers

Thrice upon a time, I ran Software Carpentry as a one-semester course at the University of Toronto. I toyed with the idea of turning those notes into a textb...
January 28, 2019

The Elements of Programming Writing Style

Along with my list of unwritten books about programming, I’ve kept a haphazard list of ones that have influenced the way I write about the subject. Sometimes...
January 26, 2019

The Principle of Least Precision

Another day, another attempt to formalize something whose utility lies in its informality. Rigor and precision have their place: if someone asks, “What’s the...
January 24, 2019

Leadership Training for Open Science

Many people in various open science communities have technical skills and good intentions, but no experience engineering structural change in organizations. ...
January 10, 2019

Not on the Shelves (2019 Edition)

I made progress on two book projects last year: Teaching Tech Together is now “done”, and JavaScript versus Data Science should be out some time in February....
January 06, 2019

Back to top ↑

2018

Harper: Lesson Discovery and Aggregation

After feedback from several people, I have updated the proposal for a lesson discovery and aggregation system (now called “Harper”) and put it in its own pag...
December 30, 2018

Data Wrangling with JavaScript

I recently read and enjoyed Ashley Davis’s new book Data Wrangling with JavaScript. As its title suggests, it doesn’t spend very much time on statistical the...
December 29, 2018

Use Case Maps Revisited

Back when I was struggling to teach a meaningful course on software architecture at the University of Toronto, I mentioned Reekie and McAdam’s book A Softwar...
December 27, 2018

Poor Thinking

Linda Tirado’s essay about being poor has haunted me since I first read it four years ago. “Poor people don’t plan long-term: we’ll just get our hearts broke...
December 26, 2018

Be Grateful for the Present You Got

Not long before the end, I asked my brother Jeff if he was angry about his life being cut so short. He said, “I try not to be. If you get a really good prese...
December 24, 2018

Off Twitter

After yet another unpleasant encounter on Twitter, I have deliberately locked myself out of my account for a couple of weeks: it just doesn’t seem the grief ...
December 24, 2018

PETE, PRIMM, and Monsters

A year ago, I wrote a short catalog of exercises that you can use in programming classes. I’d now like to build up a catalog of lesson structures, and would ...
December 20, 2018

Fourteen Percent and a Change of Direction

Following on from previous posts about sharing lessons (which were actually more about discoverability), this post is yet another re-think, and is based i...
December 19, 2018

Thirteen Percent and Counting

Last week, I posted a description of a half-baked plan for lesson aggregation. I’ve had some useful discussions since then; what follows is hopefully the fi...
December 17, 2018

Speaking of Accessibility

Elizabeth Patitsas has put together a truly awesome reading list on the social context of computer science education. It’s full of pointers to important work...
December 16, 2018

No Straight Pipeline

Most people will probably read JavaScript versus Data Science online for free, but I like having printed copies of books. Getting this one out the door gave ...
December 14, 2018

A Story Line Game for Teaching

In the wake of yesterday’s launch of JavaScript versus Data Science, I’ve been thinking about what I could do in 2019, and about a party game that I’m fond o...
December 13, 2018

JavaScript versus Data Science

Toby Hodges and I are very pleased to announce the launch of JavaScript versus Data Science, a tutorial on one of the world’s most widely-used languages for ...
December 12, 2018

The Third Wall

My brother Jeff used to say that the third wall’s the hardest. What he meant was that when you’re painting a room, the first wall goes well because you’re ex...
December 08, 2018

Three Courses

People who’ve known me for a while will have heard all this before, but since some of you haven’t, here’s what I would put in the core of a modern undergradu...
December 06, 2018

Analyze That! Very Preliminary Results

What questions do people who teach computing most want computing education researchers to investigate? A few months ago, Brett Becker, Michelle Craig, Paul D...
December 06, 2018

Teaching Workshop on March 2, 2019

I’m very pleased to announce that we’re offering a one-day workshop on how to teach tech (and other things) at the Toronto Public Library on March 2, 2019, a...
December 05, 2018

One Last Step

I’ve been saying for a while that within a few years, most people who are analyzing data will be doing it in JavaScript. It has an enormous user base, great ...
December 02, 2018

OER Landmines

Some great discussions this past week with some new friends in the Open Educational Resources movement. A few things that came out of it:
December 02, 2018

Learning from McMaster

The medical program at McMaster University is one of the best in Canada. While everyone likes to toot their own horn, they’re simply telling the truth when t...
December 02, 2018

Scripts

Somewhere out there, in this universe or another, there’s a third Aliens movie in which we discover that the monsters from the first two films are precursors...
November 30, 2018

Teaching as a Telenovela

I have never been a fan of a daytime soap opera (that I’m willing to admit in public), but I once had a chance to see one being filmed, and I came away with ...
November 29, 2018

Augmenting Error Messages

Posted on behalf of a colleague: if you’re a Python programmer, and would like to help make using the language easier, they’d appreciate hearing from you. Y...
November 28, 2018

My To-Don’t List

Most of us have a to-do list. For years I kept mine in a hardcover lab notebook, copying items forward at the start of each day until they were done or I had...
November 28, 2018

Afraid of Change

A few months ago, I had the misfortune to take part in an awful one-day workshop based on an equally awful book called Radical Candor. For those lucky enough...
November 24, 2018

Non-Standard Evaluation in R

This post is my attempt to explain how non-standard evaluation works in R. I'm writing from the standpoint of a C and Python programmer who was once conversa...
November 16, 2018

The Real Open Challenges

Two days, two articles I can’t access (and gosh, isn’t the use of “open” in the title of the first one ironic). And please don’t tell me that I can probably ...
November 15, 2018

Building Powerful Community Organizations

I’ve written about the book Building Powerful Community Organizations before, but I’m very happy to have a reason to do so again: I finally got to meet its a...
November 09, 2018

Abstraction and Comprehension

I’ve been thinking a lot about the notations we use for programming as I’ve been teaching myself R, and I have a theory. When we use a low-level language, we...
November 03, 2018

Twelve Questions

Way back in the year 2000, Joel Spolsky wrote down twelve questions for assessing the quality of a software team. This became known as the Joel test, and it ...
November 01, 2018

Credit and Respect

You can tell what people respect by what they’re willing to give others credit for doing. Which brings me to the most recent version of the ACM’s criteria fo...
October 31, 2018

Ten Rules

I’ve added a new page summing up everything I know in bite-sized chunks. I hope it’s useful.
October 31, 2018

Formatting Functions

I’ve written and edited a little over two million words of computer-related material in the last 35 years. For much of that time I wrote time() to mean “the ...
October 26, 2018

Amazon Makes Me Sad

I have bought hundreds of books from Amazon in the past eighteen years, and while its recommendations were sometimes bizarre, I often enjoyed logging in and ...
October 25, 2018

Two Columns

I’m spending a few minutes every morning adding prose to the point-form notes in JavaScript versus Data Science. My goal is to have a single document that co...
October 24, 2018

Writing Fiction

My first two books were on parallel programming. A few hundred people bought each, but they were quickly out of date. More people read Beautiful Code and its...
October 19, 2018

Four Forms of Documentation

A colleague recently pointed me at this article by Daniele Procida that divides software documentation into four categories:
October 18, 2018

Flake and Collins, Mark and Jack and Tobi

It’s been a difficult couple of weeks, watching helplessly as reactionaries give a perjuring rage-baby a lifetime appointment to the Supreme Court. Christine...
October 06, 2018

Teaching Ethics

A couple of days ago, I wrote about the excellent book What Works for Women at Work and said that it would be required reading if I ever taught another under...
September 18, 2018

What Works for Women at Work

I never got more than a couple of dozen pages into Sandberg’s Lean In, but I’ve just finished Williams and Dempsey’s What Works for Women at Work and loved i...
September 16, 2018

Analyze That!

We are conducting a study to find out what questions people who teach computing would most like researchers to answer. If you teach programming, web design, ...
September 05, 2018

Two Courses

Toby Hodges and I are pleased to announce the release of Version 0.2 (ish) of JavaScript versus Data Science. It’s still point-form notes, and there are stil...
September 04, 2018

Joining RStudio

Today is my daughter’s first day at her new school—she’s very excited. Coincidentally, today is also my first day as a full-time member of staff at RStudio, ...
September 04, 2018

High and Low, One by One or All Together

Thinking some more about my last post, I’ve realized why I am so often frustrated with academia: it’s high church and I’m low church. The terms were first us...
August 31, 2018

Authoring

In the beginning was the finger, and paint, and the wall of the cave. Whoever painted the first pictures this way could create whatever they wanted—the mediu...
August 13, 2018

The Real Challenge

A recent conversation with Toby Hodges reminded me of this post last year by Anil Dash, which in turn reminded me of this Twitter thread:
August 12, 2018

Three Terms

After DataCamp fired me in June, I spent a month getting Teaching Tech Together over the finish line. With that out of the way, I started thinking once again...
August 07, 2018

Link Rot

An astute reader pointed out that some links on my site were 404'ing, so I ran a check for the first time in a couple of years. The results surprised ...
July 17, 2018

Teaching Tech Together

I am pleased to announce the publication of Teaching Tech Together, a guide to building and delivering lessons that work, and creating a teaching community a...
July 15, 2018

Isaac Ezer’s Dragnet

I wrote a description last year of different kinds of exercises people use when teaching programming. In it, I talked about the many kinds of things...
July 05, 2018

End-User Teachers

I’ve been thinking about a recent article by Mark Guzdial in which he talks about who he’s writing for. Guzdial is a public intellectual: his research is hig...
June 20, 2018

One-Day Workshops

Over the past year, I’ve run eight workshops on how to teach for various groups and companies in the Toronto area. Their content is drawn from the Carpentrie...
June 14, 2018

Rules for Teaching

Be kind: all else is details. Remember that you are not your learners… …that most people would rather fail than change… …and that ninety percent of ...
May 13, 2018

Meetings

This thread on Twitter sparked a lot of interest, so I hope it’s useful if I publish the whole section on meetings from the upcoming revision of How to Teach...
May 11, 2018

Organize!

I want a cartoon like this, but instead of being labelled “socialist” and “anarchist”, the people pointing at the stars are labelled “MOOCs” and “peer instru...
May 11, 2018

Cigarettes and Shopify

When I was seven or eight, my teacher told my class that cigarettes cause cancer. My dad was a chainsmoker–a pack a day, sometimes more–so that evening, just...
May 06, 2018

GSoC 2018

It’s been a couple of years since I supervised a Google Summer of Code project, but I still enjoy browsing the projects and seeing what people are up to. Whi...
April 30, 2018

Version 3 Feedback

Version 3 of How to Teach Programming (and Other Things) is now kinda sorta maybe ready for feedback: if you have time to go through 270 pages and tell me wh...
April 28, 2018

Is This a Notional Machine for Python?

Mark Guzdial was kind enough to take a few tweets last week to try to explain the idea of a “notional machine” to me. If I understand correctly, it’s a compe...
April 12, 2018

Yaks

I’d like to teach scientists how to program, but that would be a lot easier to do if we had better software tools to offer them.
April 01, 2018

The Undergraduate Software Project Guide

Back in 2007, I tried to condense everything I had learned from supervising undergraduate thesis projects at the University of Toronto and elsewhere into a s...
April 01, 2018

The Senior Professor’s Handbook

Short version: I’d really like someone who understands sociology and political science to analyze academic publishing and promotion in terms of selectorate t...
March 26, 2018

Grand Unified Editor Theory

It’s a sad fact that you can’t get a PhD in Computer Science simply by building an innovative piece of software. That’s partly due to a double standard among...
March 24, 2018

Analog is More Satisfying

I’m organizing my thoughts about other people’s thoughts for the next revision of How to Teach Programming (and Other Things), and have found yet again that ...
March 24, 2018

Where Does This Come From?

A few years ago I saw a talk that described a tracing tool for blocks-based programming languages. If I recall correctly, the idea was to show time on the ho...
March 23, 2018

Goodbye, Jeff

In the end you think about the beginning. We weren’t close as children, but he moved to Ottawa to start university the same year I went there for my first jo...
March 20, 2018

I Can’t (Quite) Teach JavaScript

I’ve been thinking about what tools I would use to teach librarians how to crunch data if I was starting today with a blank slate, and I have reluctantly con...
March 17, 2018

Seven Ways to Think Like a Programmer

Jon Udell’s essay “Seven Ways to Think Like the Web” completely changed the way I think about what the Internet is for and how we ought to use it. I tried to...
March 16, 2018

Chariots

To people who use ‘em, a wheelchair is a chariot of independence. Like a bicycle. Or a skateboard. No one is trapped, tied down, or imprisoned. Quite the ...
March 16, 2018

Tables

An imagined dialog:
March 09, 2018

Budgets

Parkinson’s First Law is that work expands to fill the time available, but Parkinson never said whose time. As I’ve watched several organizations I’m involve...
March 09, 2018

Collaborative Lesson Development

William Gibson once said that our children would find it quaint that we bothered to distinguish the real from the virtual. Now that the hype about MOOCs has...
March 03, 2018

I’m Missing

I’ve been browsing the SIGCSE 2018 proceedings (which for once I was able to read legally), and as I wrote last week, I’m repeatedly struck by my own absence...
February 27, 2018

Teaching Programming in the Wild

Back in 2007, Jorge Aranda published a paper called “Requirements in the Wild”. It won an award for “most innovative paper” because it was the first one in t...
February 18, 2018

‘Analyze This!’ for CS Education

Back in 2013, Andy Begel and Tom Zimmermann at Microsoft Research asked software engineers to find out what questions they wanted software engineering resear...
February 14, 2018

Workshop Benefits

Last September, Feldon et al wrote a paper titled “Null effects of boot camps and short-format training for PhD students in life sciences” that seemed to say...
February 13, 2018

More Dagstuhl

Following up on my previous post about the recent Dagstuhl meeting on programming language design, I had a look at the slides. There is some awesome stuff he...
February 12, 2018

My Dagstuhl

Another week, another report of a great meeting at Schloss Dagstuhl, this one about designing and evaluating programming languages. I would probably have enj...
February 10, 2018

CarpentryCon 2018

Harriet Alexander just announced that she has taught the first Software Carpentry workshop in Antarctica. Coincidentally, registration is now open for Carpen...
February 04, 2018

Assessing Competence

A friend who is running workshops to teach coding skills to people getting into tech asked me a question earlier this week: what’s the best way to rate and r...
January 26, 2018

Procedural versus Declarative

The distinction between declarative memory and procedural memory is one attempt among many to describe the distinction between “knowing that” and “knowing ho...
January 15, 2018

Educational Bibliography

In response to requests, an incomplete bibliography of papers I read while working on How to Teach Programming (and Other Things). I'm still trying to f...
January 13, 2018

Teaching Statistics in the 21st Century

The late 1980s saw a wave of new undergraduate programs launched in computational physics, as the advent of affordable workstations and PCs made the power to...
January 09, 2018

Book Club

I started as a programmer, but somehow became a teacher. If I wanted to make that transition today faster and with fewer false starts, I would read these boo...
January 07, 2018

Back to top ↑

2017

The Year in Review

January Ran another one-day workshop on how to teach for people in Toronto. It went well: what I learned doing instructor for Software Carpentr...
December 30, 2017

Wanted: A Workable Lesson Competition

I have sometimes quipped that we’ll know our work is done when the weekend papers run lesson reviews beside their book and movie reviews. (Yes, I quip. I can...
December 30, 2017

Wanted: Books on How to Teach Computing

Hundreds of books have been written about how to teach mathematics. So far as I know, only a handful have been written about how to teach computing. I’d be g...
December 27, 2017

Explanation-Oriented Programming

I’m trying to write a small program in a language I don’t yet know well. Each step forward takes two or three tries as I stumble over things I don’t know abo...
December 27, 2017

Data Visualization as Industrial Design

I’ve had some interesting discussions by email since posting my article about software engineering and industrial design. A couple of them have asked where t...
December 27, 2017

Holiday Reads

Three Parts Dead and the rest of Max Gladstone’s Craft Sequence. Retribution Falls and the other three volumes of Chris Wooding’s Tales of the Ketty Jay...
December 23, 2017

Invitation: Exercise Types Extended

A couple of months ago, I assembled an incomplete list of automatically gradable exercises that can be used to teach programming. I think it would be useful ...
December 17, 2017

Consider the Bicycle

Consider the bicycle–more specifically, the De Rosa SK Pininfarina:
December 17, 2017

The New Standard Model

It’s been 35 years since I first wrote a program for someone else to use. A lot of things have changed:
December 06, 2017

Remembrance

Jamais plus. Geneviève Bergeron Hélène Colgan Nathalie Croteau Barbara Daigneault Anne-Marie Edward Maud Haviernick Maryse Lagani...
December 06, 2017

How to Design an Effective Lesson

I have recorded a screencast of this presentation on designing an effective lesson. I’d be very grateful for feedback, either as comments on this blog post o...
December 01, 2017

My Favorite Tool - Asking for Help

My favorite tool is asking for help. You may not think of it as a tool, but it’s something I use frequently to solve a wide range of problems, so I think it ...
November 28, 2017

Teaching Guide Updated

I have made updates to How to Teach Programming (and Other Things), and would be grateful for feedback. New chapters are marked with ★ in the table of conten...
November 27, 2017

Developer Testing in the IDE

Moritz Beller, Gousios Georgios, Annibale Panichella, Sebastian Proksch, Sven Amann, and Andy Zaidman: "Developer Testing in The IDE: Patterns...
November 26, 2017

Data Science for Software Development

Many software developers are learning data science to analyze their customers' data. What a growing number are realizing is that they can use those same tech...
November 20, 2017

Freakonomics, But For Good

Freakonomics was a fun read, but it was also very effective propaganda for neoliberal economics. Rather than saying, “Believe what I believe!” it said, “Let ...
November 17, 2017

Not on the Shelves: 20th Anniversary Edition

Twenty years after writing the first version, I have posted yet another update to my list of unwritten books. If anything on this list already exists, I’d be...
November 11, 2017

Remembrance Day

Today is November 11th. Every year, on this day, we pause for a moment to remember those who fought so that we don’t have to. Every year, on this day, we tak...
November 11, 2017

Teaching Tech Together Meetup on Nov 14

We’re holding another meetup on Tuesday, Nov 14, 2017 for people interested in teaching tech skills both inside and outside traditional classrooms. The event...
November 05, 2017

Carpentry For Everyone

Update: this post from Terry McGlynn says a lot of important things about the relationship between high-status and low-status universities, the mistaken perc...
November 05, 2017

Books for Programmers

I used to review books about programming for Doctor Dobb’s Journal. Over the last decade, though, I have belatedly realized that programmers can’t understand...
November 04, 2017

I’m Probably Wrong Again

A couple of years ago, I helped run a Software Carpentry instructor training class in Florida. Part-way through the second day, one of the participants asked...
November 01, 2017

Making Maintainable Lessons

Good courses take a lot of effort to build, but building them is only half the battle. If you have a hundred courses, you have more than a hundred combinatio...
October 21, 2017

Change Strategies

I read Borrego and Henderson's paper on getting people and institutions to adopt better teaching techniques for the third time this week, and once aga...
October 21, 2017

Exercises for Teaching Programming

Every mechanic has her favorite screwdrivers, and every good teacher has different kinds of exercises to check that her students are actually learning, let t...
October 16, 2017

Discovery: Three and Out

We were really looking forward to Star Trek: Discovery. Finally: a Star Trek series we could watch together for the first time as a family. But that dream di...
October 08, 2017

The Big Picture Revisited

It’s been seven years since I first tried to draw this diagram; I’m not sure I’ve made much progress, but the act is its own reward. Please click on the imag...
September 30, 2017

Git, Graphs, and Software Engineering

A couple of years ago, I complained that distributed version control still hadn’t had its structured revolution. After yet another discussion about how usefu...
September 30, 2017

I’m Tired of Killing Aliens

I’ve been waiting over a year for Iron Marines to come out. My whole family loved Ironhide Games’ Kingom Rush trilogy, and I hoped that a cartoon RTS would c...
September 24, 2017

Dad With His Birdhouses

Tomorrow is the second anniversary of my father’s death. I cannot know what he would say about the state of the world today, but I rather suspect he would qu...
September 21, 2017

Disappearing Data

I woke up this morning to a really depressing thread on Twitter from the Pacific Institute’s Peter Gleick. He went looking for the data on climate change tha...
September 18, 2017

Long Thoughts

When’s the last time you had a long thought? I remember having thoughts that stretched on for hours as I worked through basic physics problems or wrote my fi...
September 13, 2017

Bridge and Evolution

I hate the phrase “thought leader”. It’s the epitome of self-congratulatory business-speak, meant to sound vaguely inspirational without providing any afford...
September 08, 2017

MSR Books

Back in 2010, Andy Oram and I edited a book called Making Software: What Really Works, and Why We Believe It. In it, some of the leading lights of empirical ...
August 01, 2017

Too Soon and From Unexpected Directions

Alvin Toffler once wrote, “The future always arrives too soon and in the wrong order.” After thirty-five years in tech, I would add, “And from unexpected dir...
July 21, 2017

Hunter S. Thompson, Football, and the GOP

Hunter S. Thompson is remembered today for his gonzo style: frequently imitated, rarely matched. What is often forgotten is how brave he was, both in what he...
July 20, 2017

Heaven Must Be Empty

Courage, honesty, and humility are all great virtues, but the greatest is compassion. If you don’t feel the suffering of others as you would your own, you ha...
July 01, 2017

Say Their Names

Edward Sotomayor Jr.    Stanley Almodovar III    Luis Omar Ocasio-Capo Juan Ramon GuerroroEric Ivan Ortiz-Rivera...
June 12, 2017

Numerical JavaScript

I have a terrible record when it comes to making predictions, but there is one notable exception. In 2002, I told a room full of Python programmers in Toront...
May 22, 2017

Empirical Software Engineering Using R

A new update of Derek Jones' Empirical Software Engineering Using R is now available. At 283 pages, it includes an introduction to statistics, a...
May 08, 2017

Still Waiting

A couple of days ago, I went looking for a comparison of the architectures of various wiki systems. I wasn’t after a feature list–Wikipedia and WikiMatrix ha...
April 30, 2017

Ordering Jekyll Collections

Short version: I am offering a US$100 bounty for an implementation of ordering for Jekyll collections. To qualify, an implementation must be an addition to J...
February 25, 2017

Resignation

I have resigned my position at Shopify because of the company’s decision to continue hosting Breitbart’s online store. I will start a new position with Rangl...
February 18, 2017

A Moral Equivalent of the Turing Test

Given recent discussions about how Silicon Valley CEOs are dealing with the Trump Administration, I’d like to propose a moral equivalent of the Turing Test. ...
February 06, 2017

Community Organization Training in Toronto

Toronto-area tech folks (and others): would you pay $300/head for a two-day weekend workshop on community organization run here in the city by the Midwest Ac...
February 01, 2017

Stand with Government Scientists

Canadians got to see the damage an anti-science government could do when Stephen Harper was Prime Minister. His government scrapped the long-form national ce...
January 25, 2017

Pennies for Understanding

Millions for compilers but hardly a penny for understanding human programming language use. Now, programming languages are obviously symmetrical, the ...
January 08, 2017

Them That’s Got

A colleague recently told me about a symposium for early career researchers taking place in Hawaii later this month. Its mission statement says, "...
January 06, 2017

Rubric for Open Instructor Training

The Software Carpentry Foundation’s Steering Committee recently resolved to run four open online instructor training sessions per year in order to help suppo...
January 03, 2017

Blogging

I blog less than I used to, partly because what I have to say is less practical than it used to be. I'd like to change that in 2017.
January 01, 2017

Back to top ↑

2016

2016 in Review

We got back from England almost exactly a year ago. It took us six months to find a house and another three to do renovations, but...
December 24, 2016

Next Steps

Software Carpentry has accomplished an amazing amount over the past six and a half years, but a new opportunity has come up for me here in Toronto tha...
December 14, 2016

Next Steps

Software Carpentry has accomplished an amazing amount over the past six and a half years, but a new opportunity has come up for me here in Toronto, and after...
December 14, 2016

Instructor Training for Library Carpentry

We are pleased to announce that we are partnering with csv,conf (a community conference for data makers everywhere) to run an instructor training class speci...
December 08, 2016

Remembrance

Twenty-seven years on, most Canadians instantly recognize the name of their murderer. I'd rather remember theirs: Geneviève Bergeron Hé...
December 06, 2016

Normal

"Normal humans don't work like programmers expect them to because programmers haven't built tools that would let them." — Mike Hoye
December 05, 2016

Stuff That Actually Matters

In the wake of things like GamerGate, Brexit, and the American election, it seems pretty clear that the tech industry needs a backgrounder for people wh...
November 13, 2016

Empirical Software Engineering Using R

Derek Jones has begun assembling a book to be titled Empirical Software Engineering Using R. You can view the work so far or file issues in this Git...
November 02, 2016

A Reproducibility Reading List

Prof. Lorena Barba has just posted a reading list for reproducible research that includes ten key papers: Schwab, M., Karrenbach, N., Claerbout, J...
November 01, 2016

Rules for Teaching

Be kind: all else is details. Never teach alone. No lesson survives first contact with learners. Nobody will be more ex...
October 30, 2016

Close Cousins

Our process for developing and maintaining lessons has grown and changed over time. Simultaneously but separately, an organization called the Programming His...
October 30, 2016

The Rest Is Yet To Come

I co-taught an instructor training workshop earlier this week, then taught a second one on my own a couple of days later. I made some pretty big mistakes in ...
October 29, 2016

Programming as Theory Building

I was recently reminded of a thought-provoking but often-overlooked essay by Peter Naur from 1985 called “Programming as Theory Building” (scan here, plain t...
October 23, 2016

Library Carpentry is One Year Old

The indefatigable James Baker recently wrote a blog post summarizing what’s happened with Library Carpentry in the past year. It summarizes their lessons, th...
October 22, 2016

Given Infinite Minions

My browser home page has a "to do" list and a "to don't" list. The former is things that I should be working on; the latter is things that I shouldn't...
October 19, 2016

In Memoriam: Hans Petter Langtangen

Hans Petter Langtangen’s books Python Scripting for Computational Science and A Primer on Scientific Programming with Python taught many of us how to do nume...
October 11, 2016

Beth Duckles on the Practice of Measuring

Dr. Beth Duckles, who did a valuable study of our instructor community earlier this year, gave a talk at the recent Measuring the Impact of Workshops worksho...
October 10, 2016

Test-Driven Development

Davide Fucci, Giuseppe Scanniello, Simone Romano, Martin Shepperd, Boyce Sigweni, Fernando Uyaguari, Burak Turhan, Natalia Juristo, and Markku Oivo: "An...
October 05, 2016

And Now There Are Three

A new book has just been published that covers much of the same material as Software Carpentry, and a great deal more: Paarsch and Golyaev’s A Gentle Introdu...
October 04, 2016

Python as a Second Language

Donny Winston, Joey Montoya, and I taught a one-day class for Lawrence Berkeley National Laboratory on Python as a Second Language last week. As its introduc...
October 04, 2016

Two Studies of Online Communities

Two recent papers may be of interest to this community. The first is from Adam Crymble at The Programming Historian a distributed group of digital humanitie...
September 30, 2016

Epistocracy as Privilege

Another day, another display of privilege from Aeon titled, “The right to vote should be restricted to those with knowledge”. No mention of the fact that so-...
September 29, 2016

The Markov Test

The Turing Test is used to determine whether a program exhibits human behavior. I’d like to propose that we use a Markov Test to determine whether a human be...
September 27, 2016

Terrified Sheep

In a recent article in Aeon, the historian Alice Dreger says, “Without tenure, professors become terrified sheep.” She goes on to say:
September 27, 2016

Teaching Programming to the Blind

Andreas Stefik (who discusses what we know about the usability of programming languages in this entertaining podcast) has worked extensively on computing edu...
September 23, 2016

What I Wish I’d Read

I would have called myself a research software engineer from the mid-1980s to the late 1990s, and if I could send email back in time and tell my younger self...
September 21, 2016

Paradise Unplugged

Denae Ford, Justin Smith, Philip J. Guo, and Chris Parnin: "Paradise Unplugged: Identifying Barriers for Female Participation on Stack Overflow". FSE'...
September 21, 2016

Show Me Your Model

As far as I can tell, there are no published studies showing that version control is better than mailing files around or sticking them in shared drives. I be...
September 18, 2016

Five From ICER’16

These papers were all presented at the 12th Annual International Computing Education Research conference in Melbourne earlier this month, and give a g...
September 16, 2016

Collaborative Choral Software Exegesis

I’ve been thinking a lot about Mike Caulfield’s idea of choral explanations, the way we use Etherpad for collaborative note-taking in Software Carpentry work...
September 12, 2016

Slides for Two Talks Online

I've posted HTML slides for two upcoming talks, one on lessons learned from Software Carpentry, the other on what's missing in computing and what it...
September 10, 2016

The Discussion Book

Hot on the heels of Small Teaching (which we reviewed last week) comes Brookfield and Preskill’s The Discussion Book. Its subtitle is “50 great ways to get p...
September 10, 2016

You Keep Using That Word…

We decided in 2012 that we would only review material that is openly available. I was therefore pleased to discover earlier this week that I could act...
September 09, 2016

Small Teaching

Elizabeth Green’s Building a Better Teacher changed how I think about teaching, and sparked some good discussion in our community. Therese Huston’s Teaching ...
September 05, 2016

We Still Can’t Have Nice Things Together

Last year I used YAML and Norway to explain why why we can’t have nice things. We’ve just stumbled over a problem that has forced us to re-do some of the wor...
September 05, 2016

What I Didn’t Learn in a CS Degree

I recently stumbled across The Imposter's Handbook, which describes itself this way: For the longest time I would remain silent when discussi...
August 26, 2016

Markers

Contents include: a copy of The Portable Curmudgeon a joke book from Australia from the late 1940s or early 1950s a toy fish a piece of bro...
August 26, 2016

Ten Ways to Turn Off Learners

PLOS has published a very useful set of articles called Ten Simple Rules that covers everything from effective statistical practice to winning a Nobel Prize....
August 19, 2016

Not Much of a Conversation

I've been reading articles on The Conversation for a while, and with a couple of trips coming up, I thought I might try to write something for them. ...
August 04, 2016

Etsy for Teaching

I've been wondering for years why people don't collaborate on lessons in the same open, ad hoc way they write Wikipedia and build open source software. ...
August 04, 2016

Seymour Papert 1928-2016

Seymour Papert passed away on Sunday at the age of 88. I never had the privilege of meeting him, but Software Carpentry would probably never have existed if ...
August 02, 2016

Library Carpentry in Toronto

On July 28-29, a group of volunteers from the University of Toronto’s libraries ran a two-day workshop for thirty-five of their fellow librarians. People cam...
July 30, 2016

More on Instructor Training

Since we announced yesterday that we are re-opening applications for instructor training, several questions have come in by email and on Twitter. We’ve answe...
July 26, 2016

Reopening Instructor Training

For the last ten months, the Software Carpentry Foundation has worked toward three goals for its instructor training program:
July 25, 2016

Publishing Our Lessons, Version 2016.06

We are very pleased to announce the publication of Version 2016.06 of the Software Carpentry lessons. Thanks to a lot of hard work by their maintainer...
July 19, 2016

Lesson Incubation

The Data Carpentry and Software Carpentry Steering Committees recently approved [a process for supporting the incubation of new lessons. The goal is to provi...
July 19, 2016

Commonization

I just finished a pair of books that were each very good in their own right, but were even better back to back: ...
July 17, 2016

500 Lines

After a lot of hard work by Mike Dibernardo and Amy Brown, the latest book in the AOSA Series is now out. It's called 500 Lines or Less, and in it...
July 12, 2016

Instructor Training Completion Times

How long does it take to complete instructor training once the class itself is done? Two dozen people who recently qualified told us this: Reading Les...
July 05, 2016

In That Dawn

"Bliss was it in that dawn to be alive..." — Wordsworth Jerome Ravetz's recent article How should we treat science's growing ...
June 21, 2016

An Interview with Andreas Stefik

Functional Geekery's interview with Andreas Stefik is a great summary of what we actually know about the usability of programming languages—it's w...
June 15, 2016

Polymorphism in Python

Beatrice Åkerblom and Tobias Wrigstad: "Measuring Polymorphism in Python Programs". SPLASH'15, October 2015, https://people.dsv.su.se/~beatric...
June 13, 2016

Frequency Distribution of Error Message

David Pritchard: "Frequency Distribution of Error Messages". PLATEAU'15, October 2015, http://2015.splashcon.org/event/plateau2015-frequency-distrib...
June 12, 2016

Parallelism in Open Source Projects

Marc Kiefer, Daniel Warzel, and Walter Tichy: "An Empirical Study on Parallelism in Modern Open-Source Projects". SEPS'15, October 2015, https://ps...
June 12, 2016

The Superbug in Education

Roy Pea coined the term "superbug" in 1986 to describe the belief many novices have that computers can understand our intentions in the same way that pe...
June 10, 2016

Novice Programming Mistakes

Amjad Altadmri and Neil C. C. Brown: "37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student Data". SIGCSE'15, Marc...
June 09, 2016

Too Many Knobs

Tianyin Xu, Long Jin, Xuepeng Fan, Yuanyuan Zhou, Shankar Pasupathy, and Rukma Talwadker: "Hey, You Have Given Me Too Many Knobs! Understanding and Deal...
June 09, 2016

A Software Engineering Homunculus

A cortical homunculus is a graphical representation showing how much of the brain is devoted to different parts of the body: ...
June 09, 2016

Perceived Relevance

David Log, Nachiappan Nagappan, and Thomas Zimmermann: "How Practitioners Perceive the Relevance of Software Engineering Research". ESEC/FSE'15, Augus...
June 09, 2016

Hidden Truths in Dead Software Paths

Michael Eichberg, Ben Hermann, Mira Mezini, and Leonid Glanz: "Hidden Truths in Dead Software Paths". ESEC/FSE'15, August 2015, http://dx.doi.org/10.1...
June 09, 2016

Goto in C

Meiyappan Nagappan, Romain Robbes, Yasutaka Kamei, Eric Tante, Shane McIntos4, Audris Mocku5,and Ahmed E. Hassa: "An Empirical Study of Goto in C Code...
June 09, 2016

Pull-Based Development

Georgios Gousios, Margaret-Anne Storey, and Alberto Bacchelli: "Work Practices and Challenges in Pull-Based Development: The Contributor's Perspective"....
June 07, 2016

Code Ownership Revisited

Patanamon Thongtanunam, , Shane McIntosh, , Ahmed E. Hassan, and , Hajimu Iida: "Revisiting Code Ownership and its Relationship with Software Quality in...
June 07, 2016

BigDebug

Muhammad Ali Gulzar, Matteo Interlandi, Seunghyun Yoo, Sai Deep Tetali, Tyson Condie, Todd Millstein, and Miryung Kim: "BigDebug: Debugging Primitives f...
June 05, 2016

Knitting

Sometimes programming feels like trying to fix a leaky pipe, one that's rusted half-way through and just barely accessible in an awkward corner behi...
June 04, 2016

First Analysis of Instructor Training Data

Following up on Wednesday’s post about instructor training stats, Erin Becker (Data Carpentry’s new Associate Director) has posted an analysis. I was very su...
May 20, 2016

Get Better But Not Change

The tragedy of the Hapsburgs was that they wanted things to get better, but couldn't bear the thought that anything might actually change. ...
May 19, 2016

Looking for a Model

Updated: this CSV file has information on who taught when. The three columns are the person's unique identifier, the date on which th...
May 18, 2016

Accident or Malice

I'm involved in several hybrid online and in-person communities, and two of them have had unpleasant incidents in the last couple of weeks. In one, ...
May 10, 2016

Summarizing Our Lesson Discussion Sessions

For the first four months of this year, we ran hour-long lesson discussion sessions to give people going through instructor training a chance to ask question...
April 29, 2016

Maintaining Java ORM Code

Tse-Hsun Chen, Weiyi Shang, Jinqiu Yang, Ahmed E. Hassan, and Michael W. Godfrey: "An Empirical Study on the Practice of Maintaining Object-Relational M...
April 26, 2016

Java Exception Handling

Suman Nakshatri, Maithri Hegde, and Sahithi Thandra: "Analysis of Exception Handling Patterns in Java Projects: An Empirical Study". MSR'16, May 2016,...
April 26, 2016

Game Postmortems

Michael Washburn Jr., Pavithra Sathiyanarayanan, Meiyappan Nagappan, Thomas Zimmermann, and Christian Bird: "'What Went Right and What Went Wrong': An A...
April 26, 2016

Finding Security Bugs

Joseph P. Near and Daniel Jackson: "Finding Security Bugs in Web Applications Using a Catalog of Access Control Patterns". ICSE'16, May 2016, http://d...
April 26, 2016

Extremely Angry

From this thread by Mike Hoye, the Engineering Community Manager for Firefox at Mozilla: Extremely angry with the state of academic CS research righ...
April 26, 2016

Questions, Answers, and Lessons

While working on an outline of a new lesson on Python, I began thinking about the overall coherence of what we teach. In particular, I started to ...
April 24, 2016

Designing a New Novice Python Lesson

Last November, I volunteered to pull together a new full-day lesson on Python suitable for people with no previous programming experience. It has taken longe...
April 10, 2016

For Some Value of ‘Just’

One of the cardinal rules of Software Carpentry is never say 'just', because it signals the listener that the speaker thinks their problem is trivial....
April 09, 2016

Trying to Find a Form

I have been thinking (again) about what to teach in a full-length course on Software Carpentry and Data Carpentry, which has led me, meta begettin...
April 08, 2016

Zen and the Art of Assignment Operators

I was 19 when I first read Zen and the Art of Motorcycle Maintenance. For months afterward, I just had to tell everyone I knew about Quality-with-a-ca...
April 01, 2016

Throttling

Every technology that solves problems creates new ones, most of which can't be solved by purely technological means. Online discussions (including Twi...
March 31, 2016

Registers

Linguists recognize that speech occurs in different modes or registers, which serve different purposes: Intimate: used with very close friends,...
March 21, 2016

Continuous Installation Checking

This one started with me trying and failing to install some bioinformatics software on my Mac, then turned into a Twitter rant: Everyone: please s...
March 19, 2016

New Maintainers

We are pleased to announce that Harriet Dashnow and Daniel Chen have agreed to take over maintenance of the R inflammation lesson. Our thanks to them for vol...
March 17, 2016

In My Better World

In my better world, programming language designers have been studying usability since the 1960s, and every new language worries as much about usab...
March 13, 2016

Complexity vs. Subtlety

I gave a lightning talk on Software Carpentry for the OICR yesterday, and in discussion afterward, Jonathan Dursi made an observation that I’ve been thinking...
March 05, 2016

A Modest Proposal

I had the pleasure of meeting Denia Djokic on Tuesday evening, and during the conversation we came up with a modest proposal: put 10% of the national ...
February 25, 2016

Books Away

Earlier this week my mother gave away the last of my father's books: 67 boxes containing 1,969 volumes, or about half of what he owned when he died. ...
February 24, 2016

More of a Difference Than You Realize

We received this after an online instructor training workshop earlier this week, which reminded me that small differences for some people can be large ones f...
February 19, 2016

Checking the Balance

Added 2016-02-22: this strong critique of the Terrell et al preprint mentioned in the opening paragraph of this post is worth a careful read....
February 16, 2016

Our New Instructor Pipeline

Last fall, we decided to reboot our instructor training course. We’ve tried a lot of things since then, and one of the biggest successes has been our new che...
February 16, 2016

Designing Lessons Collaboratively

A few days ago, I asked for feedback on a new Python lesson aimed at people who’ve never programmed before. The outline had already received several rounds o...
February 15, 2016

Correlations

We've run instructor training both online and in person for several years, so it's time to look at how they compare. The raw data shows: the event...
February 08, 2016

Come a Long Way, Got a Long Way to Go

Simon Oxenham recently reported on a new report from the National Council on Teacher Quality that examined how well teacher training courses and textbooks co...
February 07, 2016

Two Pages of Evidence

Andreas Stefik and his colleagues have written a two-page summary of what we actually know about usability and programming language design. There aren’t near...
February 02, 2016

Active Workshops

A few days ago, we were asked what was the greatest number of simultaneous workshops we’d ever run. I didn’t know, but it was an easy enough question to answ...
February 02, 2016

Elsewhere on the Web

Our instructors teach a lot more than just Software Carpentry. For example, Christie Bahlai has started teaching a course on “Open Science and Reproducible R...
January 29, 2016

A New Version of ‘Lessons Learned’

A new version of “Software Carpentry: Lessons Learned” is now available on F1000. We think it’s an interesting complement to the instructor survey, and we ho...
January 28, 2016

Our Introduction to Git Has Been Published

Our short paper “A Quick Introduction to Version Control with Git and GitHub” has been published in PLOS Computational Biology. It is freely reusable under a...
January 21, 2016

A New Book from Mark Guzdial

Regular readers will know that I am a huge fan of Mark Guzdial, a professor at Georgia Tech whose group does world-class work on computing education, and who...
January 13, 2016

Good Communities (Kinds Of)

Back in October, Sarah Sharp posted a really useful article titled “What makes a good community?”. In it, she divided online tech communities into six levels...
January 09, 2016

Lessons as Lab Protocols

A roundabout chain of references led me to Abbott et al’s “Programs for People: What We Can Learn from Lab Protocols” (presented at VL/HCC 2015) which looks ...
January 03, 2016

Back to top ↑

2015

Plans for 2016

Twelve months is a long time. A year ago I was wrapping up my second month without an income and had serious doubts about whether Software Carpentry...
December 28, 2015

Maybe I Actually Am An Engineer

The following exchange (lightly edited) took place on Twitter a few days ago: Titus Brown: bash is disastrous for pipelines! very hard to rerun enti...
December 28, 2015

New Words Needed

Titus Brown recently asked (on behalf of a friend) what people think of the term and practice of "hardening" software, by which he meant making rese...
December 26, 2015

Pushing Ahead in Puget Sound

As regular readers will know, our instructor training classes are heavily over-subscribed: even after the classes we ran this fall, we still have ov...
December 20, 2015

Instructor Training Checkout Procedure

After a lot of discussion, we have come up with a new procedure for completing instructor training for Data Carpentry and Software Carpentry. Its go...
December 18, 2015

Three Flavors of Instructor Training

It's been a busy few months for instructor training: along with a two-day class at the University of Manchester, we also wrapped up a pilot of a new k...
December 18, 2015

Educational Engineering

One of the participants in this week's instructor training course mailed me to say, "[We] were discussing some of the ideas we were talking about in edu...
December 15, 2015

Teaching in Cambridge

I ran a three-hour class on teaching as part of EuroSciPy in Cambridge this summer; the video is available online.
December 11, 2015

Teaching For Loops

A few days ago, Karin Lagesen asked people what metaphors they use when teaching for loops. It kicked off an entertaining thread. When we talk abo...
December 10, 2015

My Literature Problems

Problem #1 A couple of years ago, I put together a bibliography of research into the software engineering aspects of scientific computing. I'd n...
December 06, 2015

Just Keep Swimming

I had a conversation a few days ago with a young colleague who said (basically), "Nothing I do ever seems to take off the way your projects do." Coinc...
December 06, 2015

How the Year Went

I wrote a post on New Year's Day about things I probably wouldn't do this year. Here's my score card: Turn Software Carpentry into a book: no...
December 06, 2015

Does the Stage Create the Actor?

A lot of coding workshops have sprung up in the last ten years, ranging from one-day events to teach people the basics of HTML to months-long internsh...
November 30, 2015

How I Handle Email

These are a couple of folders in my personal mail account: and these are a couple of folders in my work account: That come...
November 23, 2015

Advances

Alfred North Whitehead once said that civilization advances by extending the number of important operations which we can perform without thinking abou...
November 20, 2015

The Morea Framework

I first met Philip Johnson, a professor of Computer Science at the University of Hawaii, through shared interests in empirical software engineering re...
November 20, 2015

Catch and Release

Edible fish are getting smaller every year because we catch and eat the big ones, taking the genes for large size out of circulation. This has been ...
November 16, 2015

CourseSource: A(nother) New Hope

I came across CourseSource a few weeks ago, and I'm pretty excited: CourseSource is an open-access journal of peer-reviewed teaching resour...
November 15, 2015

Miscellaneous Projects

This post is a bit of a link fest, but after talking about how to contribute at yesterday's instructor retreat, I thought it might be useful to po...
November 15, 2015

Daddy, Why Don’t You Ever Laugh?

We were eating dinner last Friday night when my daughter asked me, "Daddy, why don't you ever laugh?" Coincidentally (or perhaps not) I had just fin...
November 09, 2015

Visualizing Repository Activity

I am updating the lessons learned paper, and would like to include histograms showing how many people have contributed how often to our lessons. Mor...
October 27, 2015

Journals as Repositories

I had a really good conversation yesterday with Cath Brooksbank and Sarah Morgan, who do training at EMBL-EBI in Hinxton. During the conversation we t...
October 17, 2015

Teaching in the Large

Acccording to Wikipedia, the terms "programming in the large" and "programming in the small" were coined by Frank DeRemer and Hans Kron in 1975 to...
October 09, 2015

Please Welcome Our New Executive Director

We are very pleased to announce that Jonah Duckles has accepted the position of Executive Director of the Software Carpentry Foundation, and will star...
October 01, 2015

Citation Format

Earlier this month, we published our lessons by giving them DOIs through Zenodo. As we said in an earlier post, though, we've been struggling to...
September 30, 2015

Thinking About Teaching

A little over a year ago, we blogged about jugyokenkyu, or "lesson study", a bucket of practices that Japanese teachers use to hone their craft, f...
September 28, 2015

Plus Ça Change

I gave this talk at SciPy'06. A few things have changed since then, but it's suprising how many haven't: Higher productivity still get...
September 26, 2015

Goodbye, Dad

At the end, you think about the beginning. I remember being at the beach one summer, seeing my dad dive into the lake off a log boom and thinking, "...
September 22, 2015

Software Engineering Practices in Science

Dustin Heaton and Jeffrey Carver have just published a paper titled Claims About the Use of Software Engineering Practices in Science: A Systematic Lite...
September 16, 2015

Rebooting Instructor Training

Instructor training has been key to Software Carpentry's growth, but it was clear by the time our last online class finished in April that we couldn't...
September 14, 2015

How Teaching Knowledge Is Transferred

I hesitate to say so, but I believe that we pedagogues tend to exaggerate greatly the amount of change in educational practice that results f...
September 13, 2015

Unwritten and Undone

Every few years, I indulge in a bit of sympathetic magic by writing reviews of books that don't actually exist in the hope that it will inspire some...
September 06, 2015

Our Lessons Have Now Been Published

It's been a long time coming, but we have finally published Version 5.3 of our core lessons. Please cite them as: Daisie Huang and Iva...
September 05, 2015

Better Teaching Practices

It wasn't part of our original plan, but over time Software Carpentry has come to be about better teaching as much as it is about better computing. ...
September 01, 2015

Three Graphs I Would Like to See

I spent part of the weekend chatting with a friend in Cambridge who used to be science editor at The Independent and now edits Scientific Computing Wo...
August 31, 2015

Prepping for the Python Lesson

Inspired in part by Byron Smith's post about trimming our standard Python lesson, Christina Koch has written a post of her own about preparing to te...
August 16, 2015

Checking What We Teach

Back in May, Jonathan Klaasen wrote a post about setting up a lab data management system. After re-reading it, I think it's a good reality check o...
August 14, 2015

A Hostage Situation

If you do software engineering research, and want your work to matter, you should go and read http://exple.tive.org/blarg/2015/07/24/hostage-situati...
July 24, 2015

WiSE Workshop at UC Davis Aug 17-18

We are pleased to announce that the latest in our series of workshops for women in science and engineering will be held at UC Davis on August 17-18, 2...
July 23, 2015

A Pair of Workshops

Do you know your options for software licensing? Have you heard of new funders' requirements for software sharing? This workshop in Cambridge (UK) o...
July 23, 2015

Welcome Maneesha and Katarzyna

We are very pleased to announce that Maneesha Sane (pronounced "sah-nay") will be joining us in August as our new Program Coordinator. Having coordin...
July 20, 2015

Changes to Workshop Administration Fees

After discussion with our Advisory Council and Data Carpentry, we have agreed to make some changes to the administration fee we charge for workshops t...
July 20, 2015

Git as GOTO

I am not a fan of Git. While some people may find it intuitive, I consider it one of the most complicated programs I have ever tried to teach. Some ...
July 20, 2015

Top 10 Myths about Teaching CS

Mark Guzdial (whose blog has been a frequent inspiration) recently wrote an article title Top 10 Myths about Teaching Computer Science: The l...
July 18, 2015

Our Next Big Step

With Software Carpentry's rapid growth over the past couple of years, the combined responsibilities of being the Executive Directory and running the ins...
July 06, 2015

Pushing Back

A week ago, we posted a proposal to use Jekyll to build our lessons rather than Pandoc. The immediate reaction was almost uniformly positive, bu...
July 01, 2015

What is a Research Software Engineer?

By now, many people in the UK (well, many of the sort who read this blog) will have heard the term Research Software Engineer, but what exactly is an ...
June 29, 2015

Training Lessons

I wrote about our experiments with the format of instructor training back in May. At that time, we had run the class as: a multi-week online c...
June 26, 2015

Using Jekyll for Lessons

A recurring complaint about our lesson template is that it requires authors to commit generated HTML files to their repositories as well as their Mark...
June 24, 2015

Another Good Workshop in Brazil

The indefatigable Raniere Silva has just posted a description of a workshop at the University of Ceará that he and Dani Ushizima just finishe...
June 23, 2015

Splitting the Shell Window

Raniere Silva has written a short post about a trick he found (via Kate Hertweck) for splitting the terminal window when teaching the shell so tha...
June 21, 2015

Recycling Training Course Material

Over the past two years, more than 200 people have written multiple choice questions and other assessment exercises as part of Software Carpentry inst...
June 21, 2015

Research-Based Course Design

I've written before about the breadth and depth of Juha Sorva's work on computing education. His latest contribution is a paper co-authored with Ott...
June 21, 2015

Their Names Were

Cynthia Hurd was a public library manager. Clemena Pickney was a church pastor and state senator. Ethel Lee Lance had worked in the church for years. ...
June 19, 2015

Adding a Lesson on Make

We are very pleased to announce the addition of a lesson on automation and Make, which was created by the SSI's Mike Jackson and Steve Crouch. The r...
June 18, 2015

Why I Am Not Excited About Julia

If you hang out in scientific programming circles, you're probably heard of Julia by now. If you don't, or you haven't, it is: ...a high-le...
June 18, 2015

Get More Done in Less Time

Over the past year, Alexandra Simperler has interviewed participants in Software Carpentry workshops to find out what impact we've actually had on the...
June 17, 2015

Updating the Project List

Updating my description of where my time goes made me realize that our list of things we need help with had fallen out of date. The highlights a...
June 15, 2015

Where the Time Goes (Version 2)

Last November, I wrote a post about where my time was going. A lot has changed since then, including my workload, so here's an update: ...
June 14, 2015

Routinely Unique

Back in April, Jeffrey Chang wrote wrote an article for Nature in which he pleaded for those who analyze bioinformatics data to be recognized as c...
June 14, 2015

Reverse Engineering CSS

Software Carpentry's lessons are written in Markdown, then transformed into HTML using Pandoc which is styled using Bootstrap with a bunch of cust...
June 14, 2015

Eroded Away

Little by little, the subversive features of the computer were eroded away. Instead of cutting across and challenging the very idea of subject boundarie...
June 13, 2015

Warming Up for Version 5.4

It's time to start thinking about what should be in Version 5.4 of our lessons (which we plan to release in the middle of August to get us through to th...
June 12, 2015

Learning in Both Directions

Last weekend, 30 people from a broad range of grassroots groups that are trying to increase diversity in tech got together in Boulder to compare e...
June 12, 2015

Why We Can’t Have Nice Things

In the beginning, there were tables: rows upon rows, with columns separated by commas or tabs or something more exotic. They were elegant but limite...
June 11, 2015

People You Don’t Want On Your Team

I have been at least half of these people at different times in my life... Anna knows more about every subject than everyone else on the team put together&md...
June 09, 2015

An Update on Publishing Our Lessons

Just a quick update on publishing our lessons: we prepared the release on schedule, uploaded it to Zenodo, and then discovered that we couldn't ac...
June 07, 2015

Updating the Lesson Template

A couple of weeks ago, we asked our lesson maintainers what changes they would like to see in our lesson template based on their experiences getting V...
June 07, 2015

Teaching Biocomputing at UT

Becca Tarvin has just posted an article about her experiences teaching biocomputing at the University of Texas. Like last month's report on teachi...
June 03, 2015

A Few Articles on Education

Over the past year, I've come to realize that Software Carpentry will only work if knowledge flows in several directions. Scientists need to learn a...
May 25, 2015

ICSE 2015

I have just posted titles and abstracts from my favorite 24 papers from ICSE 2015 on the Software Carpentry blog. As I say there, just over half...
May 24, 2015

ICSE 2015

Back when I was still trying to do science myself, my field of study was software engineering. The International Conference on Software Engineering is...
May 24, 2015

Coding for Librarians

Andromeda Yelton (who has featured in this blog before) has written a set of six articles for Library Technology Reports titled Coding for Librari...
May 22, 2015

Experiences with Geoscientists

Christian Jacobs, Gerard Gorman, and Lorraine Craig have written a paper titled "Experiences with efficient methodologies for teaching computer pr...
May 21, 2015

Online Instructor Training Revisited

We have now run instructor training in three formats: an in-person two- or three-day class, a multi-week online class, and a hybrid version in whi...
May 19, 2015

New Members of the Team

It's been several months since we last welcomed new instructors to the team. A lot of people have finished training since then, so please say hello ...
May 16, 2015

Selling Hope

Last summer, George Monbiot wrote: If we had set out to alienate and antagonise the people we've been trying to reach, we could scarcely ha...
May 02, 2015

Achintya Rao’s PhD Starter Kit

Achintya Rao started a PhD last January, and in response to a request for advice from a friend, wrote a PhD Starter Kit that lists useful tools and ...
May 02, 2015

Ada Initiative’s Ally Skills Workshop

The Ada Initiative ran their Ally Skills workshop at PyCon 2015, and by all accounts it was useful and thought-provoking. They don't do an onlin...
April 25, 2015

Van Lindberg’s Keynote: Say Thanks

Van Lindberg, the chair of the Python Software Foundation, gave a really insightful keynote at PyCon 2015 last week. In a nutshell: ...
April 25, 2015

The Paradox of Learning Objects

Warren Code recently forwarded this post by David Wiley, a serial innovator in open education and educational reform. In it, he recapitulates th...
April 22, 2015

Learning in Both Directions

We have spent a lot of time thinking about how to assess the impact that Software Carpentry is having. We've done some small studies and collect...
April 21, 2015

Library Carpentry

We wrote about the digital skills classes at the British Library last October. We were therefore very pleased to see that James Baker, a Software ...
April 17, 2015

Close Enough Redux

Back in October, we explained why we don't teach testing in Software Carpentry workshops. In response, Ian Hawke has put together a really nice ...
April 17, 2015

Publishing Our Lessons

Digital Object Identifiers (DOIs) are one of the building blocks of academic bibliography systems. It's now possible to get a DOI for a GitHub repos...
April 17, 2015

Quality Is Free - Getting There Isn’t

Worried about the rising tide of retractions, Nature Biotechnology recently announced that, "Its peer reviewers will now be asked to assess the avai...
April 15, 2015

The Future Then and Now

Jon Udell's Internet Groupware for Scientific Collaboration taught me how to think about the web. He started work on an update a couple of months ag...
April 13, 2015

April 2015 Lab Meeting

We held our second lab meeting of 2015 on April 1st, and had near-record turnout. Notes from the Etherpad are included below; the highlights are: ...
April 03, 2015

April 2015 Lab Meeting

The next Software Carpentry online lab meeting will take place on Wednesday, April 1 (no, really) at 10:00 and 19:00 Eastern time. (As usual, we will ...
March 20, 2015

And Now We Are Three

The four core topics that every Software Carpentry workshop is supposed to teach are automating tasks using the Unix shell, structured programming in ...
March 17, 2015

Teaching Tips

Last week's post on what's in your bag generated so many useful comments that we'd like to follow it up with another: what tips do you have for new ...
March 15, 2015

Goodbye, Terry

"It is often said that before you die you life passes before your eyes. It is in fact true. It's called living." — Terry Pratchett
March 12, 2015

What’s In Your Bag?

What do you have in your knapsack when you travel to teach a workshop? My list is: cough drops spare t-shirt (and deodorant) a variety of video ...
March 11, 2015

Adding a Contributor Covenant

The Software Carpentry Foundation's Steering Committee has voted to add a Contributor Covenant to our lessons and other repositories. Like the Code ...
March 02, 2015

Ten More Instructors

It's a pleasure to welcome another ten instructors from the Southern Hemisphere to our team: Areej Alsheikh-Hussain Sung Bae Nicholas Cro...
March 02, 2015

Eleven New Instructors

It's a pleasure to welcome another eleven instructors to our team: Ewan Barr Thomas Coudrat Isabell Kiral-Kornek Scott Kolbe ...
February 28, 2015

Wrong Is Useful: Lessons as Packages

"What would Greg do? [pause] OK, now that we've ruled that out..." — overheard I wrote a post last July about using package managers li...
February 27, 2015

Improving Instruction

It's been quite a year for Software Carpentry instructor training: we had a great session at UC Davis (see also this excellent post from Rayna Harri...
February 27, 2015

NeSI Becomes Software Carpentry Affiliate

We are very pleased to announce that New Zealand eScience Infrastructure (NeSI) has become an affiliate member of the Software Carpentry Foundation. ...
February 12, 2015

Plot This

The most useful little guide to visualization I've ever found is the decision tree created by Andrew Abela, which you can find here. Do you want to ...
February 09, 2015

Scientific Coding vs. Software Engineering

Daisie Huang recently wrote a great article for the Software Sustainability Institute's blog titled "Scientific coding and software engineering: what'...
February 08, 2015

Welcome Our Newest Instructors

It's a pleasure to welcome another eight instructors to our team: Harriet Alexander Emmanouil-Ioannis Farsarakis Meeta Mistry J...
February 03, 2015

Open Access and Computer Science

I was very pleased to see the announcement today of PeerJ Computer Science, an open access journal for my discipline with a stellar advisory board a...
February 03, 2015

Nouns and Verbs

I've spoken and written many times about how puzzled I am that massive, open collaboration on lessons is so rare in the age of Wikipedia and open sour...
February 02, 2015

Our First Workshop in South Korea

We are very pleased to announce that our first workshop in South Korea will be taking place in Seoul later this month. Many thanks to Kwangchun (Vic...
February 02, 2015

Announcing 2015 Steering Committee

The election for the Software Carpentry Foundation's Steering Committee is now complete. 122 ballots were exercised out of 179 mailed out, and our n...
January 31, 2015

Cast Your Vote

Voting is now open for Software Carpentry's new Steering Committee. If you are a member, you should have received a ballot by email from elections@e...
January 26, 2015

The Other Ninety Percent

Ninety percent or more of learning a skill takes place outside formal lessons as people try things out for themselves and turn attention into habit. ...
January 24, 2015

Welcome Our First New Instructors of 2015

One of the best parts of this job is welcoming new instructors to our team. Many of this year's first group have already helped with workshops, and I ...
January 24, 2015

Improving the Balance

Jennifer Martin's recent article "Ten Simple Rules to Achieve Conference Speaker Gender Balance" reminded me that while we've been reporting the numbe...
January 22, 2015

Language Wars and Others

We often get asked, "Why do you teach [X]? Why don't you teach [Y]?" where X and Y are random permutations of Perl, Python, R, MATLAB, Julia, C++, and ...
January 14, 2015

Introducing Software Carpentry

As we said in December, we're planning to use the latest incarnation of Browsercast as a web-native alternative to screencasting for recording and p...
January 13, 2015

Thanks to RStudio

Our thanks to RStudio for their generous donation to help us run Software Carpentry workshops. Inspired by the innovations of R users in science, educ...
January 13, 2015

Instructor Training at UC Davis

On Tuesday and Wednesday of last week, we ran a live instructor training class at UC Davis. Over 40 people from all across the country got a lightning...
January 12, 2015

2015 Election Nominations

As we announced last year, an election will be held on January 26-30 for the seven positions on the Steering Committee of the Software Carpentry Found...
January 05, 2015

Cathedrals, Bazaars, and In Between

Poul-Henning Kamp's article A Generation Lost in the Bazaar was doing the rounds on Twitter again last week. In it, he argues that the free-for-all ...
January 05, 2015

The Future and Funding of Science

I was talking with friends over the holiday about the future of science and how it might one day be funded. Since it'll be ten years before I'm proven...
January 04, 2015

Books You May Enjoy

I didn't read (or re-read) much in 2014, but I enjoyed these: Lauren Beukes: The Shining Girls Elizabeth Green: Building a Better Teacher David ...
January 02, 2015

Things I Won’t Do This Year

I've made and broken my share of New Year's resolutions, so this year I thought I'd do something different and make a list of things I'd like to do in...
January 01, 2015

Back to top ↑

2014

Projects, Projects, Projects

We have updated our projects page with links to: things we're building ourselves, and things that our members are building. The ...
December 28, 2014

Welcome Aboard

A lot of people qualified as instructors this fall and winter, thanks in part to the live sessions we ran in Charlottesville, Norwich, and Seattle. Th...
December 23, 2014

Standing for Election

From 26-30 January, an election will be held for the seven vacant positions on the inaugural Steering Committee of the Software Carpentry Foundation. ...
December 18, 2014

Who Are We?

For the last three years, I've been storing information about instructors, workshops, and other things in a small SQLite database so that I can look...
December 15, 2014

Templates: We Live, We Learn

We have partially converted four of our core lessons to the new lesson template, and are making a few tweaks as a result. The most important of thes...
December 09, 2014

New Accessibility Guidelines

Software Carpentry values the participation of every member of the scientific community and want all attendees to have an enjoyable and fulfilling exp...
December 05, 2014

Summarizing the News

We made several big announcements this morning, so here's a short summary to guide you through them all: The bylaws for the Software Car...
December 03, 2014

Our First Election

The Software Carpentry Foundation's bylaws state that the Steering Committee must be elected annually. With a new year upon us, the interim committe...
December 03, 2014

Plans for 2015: Lessons

The previous three posts in this set looked at instructor training, workshop organization, and the twin challenges of mentorship and assessment....
December 03, 2014

Plans for 2015: Mentorship and Assessment

The previous posts in this set looked at instructor training and workshop organization. In this one, I'd like to look at mentorship and assessment...
December 03, 2014

Plans for 2015: Workshop Organization

As I write this, 228 people have been certified to teach Software Carpentry workshops, of whom 136 have taught in the past twelve months. That's ama...
December 03, 2014

Plans for 2015: Instructor Training

Instructor training has been going well: it looks like more than 50% of people who participated this summer and fall will complete and start teaching ...
December 03, 2014

Software Carpentry Foundation: Governance

I am pleased to announce that our interim Steering Committee has adopted bylaws for the Software Carpentry Foundation, which is the final step in us...
December 03, 2014

What About MOOCs?

We frequently get asked whether Software Carpentry would work as a MOOC. The answer is that I think it can work well if it's what Siemens and Downes...
December 02, 2014

Goalposts for the Digital Humanities

As a follow-on to last month's post about courses at the British Library, I asked some people who are teaching digital humanists where their goalpos...
December 01, 2014

How to Manage Confidential Data

A couple of days ago, a member of our community wrote: I am very interested in working on improving research analytics in government using ...
November 27, 2014

Congratulations to Data Carpentry

In case you missed the announcement last week, our sibling organization Data Carpentry has received funding from the Moore Foundation to support its...
November 24, 2014

Instructor Training Stats

The Software Carpentry Foundation's board asked me for some stats on instructor training, and I thought other people would find them interesting as well...
November 22, 2014

Interim Board Meeting: Nov 18, 2014

Software Carpentry Foundation Interim Board Meeting: Nov 18, 2014 Attending Neil Chue Hong Jenny Bryan Tracy Teal Damien Irving Greg Wilson Carole Goble Kai...
November 18, 2014

Close Enough for Scientific Work

The discussion around last month's post "Why We Don't Teach Testing (Even Though We'd Like To)" has been one of the most interesting in Software Carpe...
November 18, 2014

IP Communism

Back in August, the editor-in-chief of Communications of the ACM wrote an editorial in which he wrote, "It is regrettable, I believe, that the ope...
November 18, 2014

Why It Matters

Sometimes I forget that it isn't obvious why scientists ought to learn to program—or why anyone else ought to. Being more productive, getting ...
November 11, 2014

Amdahl’s Law and Software Carpentry

Amdahl's Law says that the speedup you can get by parallelizing a computation is limited by how much of the computational can't be sped up. For exampl...
November 07, 2014

Instructor Training at TGAC

Hayley London has written a great summary of the instructor training at TGAC in Norwich in October. Aleksandra Pawlik, Bill Mills, and I enjoyed mee...
November 06, 2014

You Should Read Juha Sorva’s Thesis

If you really want to dig deeper into educational research and how it applies to teaching programming, you should grab a copy of Juha Sorva's PhD thes...
November 06, 2014

Politics for Current Physicsts

Richard Muller's Physics for Future Presidents and its sequel Energy for Future Presidents are both really good books, even if you're not planni...
November 05, 2014

Interim Board Meeting: Nov 4, 2014

Software Carpentry Foundation Interim Board Meeting: Nov 4, 2014 Attending Greg Wilson (Software Carpentry Foundation) Neil Chue Hong (Software Sustainabili...
November 04, 2014

Software Carpentry Foundation: FAQ

As we announced two weeks ago, we are setting up an independent foundation to manage Software Carpentry's continued growth. This week, we passed an ...
November 03, 2014

Pandoc and Building Pages

Long-time readers of this blog and our discussion list will know that I'm unhappy with the choices we have for formatting our lessons. Thanks to a t...
October 29, 2014

Why Software Matters

Why does software matter to scientists? It may seem obvious to people who read this blog, but that's like saying that the answer to, "Why opera?" is...
October 28, 2014

Lost in Space

You probably haven't seen the 1998 movie Lost in Space, or if you have, you've suppressed the memory—it was awful. But I do know one guy who e...
October 27, 2014

British Library Courses

I had a chance to catch up with James Baker at the British Library on Friday, and discovered that they're running an amazing series of short classes o...
October 27, 2014

A New Lesson Template, Version 2

Update: this post now includes feedback from participants in the instructor training session run at TGAC on Oct 22-23, 2014. Please see the b...
October 23, 2014

Massuni Kickstarter Has Launched

I'm very excited that Massuni's Kickstarter has launched. They're bringing custom furniture design to the web: you can use an in-browser tool to d...
October 22, 2014

Beautiful Lessons

On May 17, 2006, I sent the following email to a couple of hundred programmers and computer scientists whose email addresses I had gleaned from the we...
October 20, 2014

Welcome More New Instructors

We are very pleased to welcome another new batch of instructors to our team: Pete Alonzi Balamurugan Desinghu Leonor Garcia-Gutierrez Jeff Holl...
October 16, 2014

A Research Software Petition

"We must accept that software is fundamental to research, or we will lose our ability to make groundbreaking discoveries." If you agree—and I hope...
October 15, 2014

Interim Board Meeting: Oct 14, 2014

Software Carpentry Foundation Interim Board Meeting: Oct 14, 2014 Attending Jenny Bryan (Univ of British Columbia) Josh Greenberg (Sloan Foundation) Katy Hu...
October 14, 2014

Of Templates and Metadata

As an appendix to the splitting the repository post, Greg recently posted a straw man template for how lessons might be structured after the repo ...
October 14, 2014

A New Template for Lessons

Note: this post has been superseded by this one. Please post comments and feedback there. We blogged two weeks ago about a new template ...
October 14, 2014

A Reproducible Science Hackathon

NESCent is organizing a "Reproducible Science Hackathon" where participants will develop material and tools for teaching and facilitating a broad adop...
October 04, 2014

Browsercast

As we mentioned back in April, Gabriel Ivanica spent the summer working on a Google Summer of Code project called Browsercast. His goal was to build a...
October 04, 2014

A New Template for Workshop Websites

The first step in reorganizing the bc repository is making it easier (much easier) for people to create websites for workshops. The current instruc...
October 04, 2014

Welcome Our New Instructors

We are very pleased to welcome a new batch of instructors to our team: Russell Alleen-Willems Catalina Anghel Christie Bahlai P...
October 03, 2014

A Better Software Engineering Course

I've taught several university courses on software engineering over the years, and haven't been happy with any of them. Like most professors, I buil...
October 02, 2014

Interim Board Meeting: Sep 30, 2014

Software Carpentry Foundation Interim Board Meeting: Sep 30, 2014 Attending JB: Jenny Bryan (Univ of British Columbia) CG: Carole Goble (U. Manchester) JG: ...
September 30, 2014

Splitting the Repository

United Airlines messed up my travel again last weekend, so I finally had a chance to think some more about how Software Carpentry works and how we can...
September 29, 2014

UCOSP as a Model

Software Carpentry's two-day workshops are just one of many ways to teach people practical skills. Term-long group projects are another model that I'm v...
September 28, 2014

September 2014 Lab Meeting Report

After a two-month break for a sprint and some holidays, we held another monthly lab meeting this week. About 50 people showed up to talk about issues ...
September 26, 2014

A Proposal for Topic Maintainers

I can lift ten pounds. I can even still lift a hundred pounds, though my back won't thank me, but I can't lift a thousand pounds. Similarly, while...
September 18, 2014

Interim Board Meeting: Sep 16, 2014

Software Carpentry Foundation Interim Board Meeting: Sep 16, 2014 Attending NCH: Neil Chue Hong (Software Sustainability Institute) - chair GW: Greg Wilson ...
September 16, 2014

Mentioned in the Paris Review

Blake Winton pointed me at this article by Vikram Chandra in the Paris Review titled "The Beauty of Code". It opens with a hairball of a dependency ...
September 16, 2014

Stray Thoughts

My friend Bob told me a story once. He spent a winter in a cabin outside Whitehorse with only a dog for company. When the thaw finally came, he and ...
September 15, 2014

September 2014 Lab Meeting

After taking a break in July for our sprint, and in August because people were on holiday, doing fieldwork, or both, we will resume our monthly online...
September 12, 2014

Videos from Stanford

Stanford University has posted videos from the Software Carpentry workshop held there in August featuring Azalee Bostroem, Chris Lonnen, Dani Traphagen,...
September 12, 2014

What Sciences Are There?

The Software Carpentry pre-assessment questionnaire for bootcamp participants ask them to tell us what field they're in. The options we give them are ...
September 11, 2014

Please Help Trans Tech

Naomi Ceder's talk at PyCon 2014 about her transition from male to female was the highlight of the conference for a lot of people. She recently post...
September 10, 2014

An Update on Upcoming Bootcamps

So it turns out we have more events coming up than I realized: University of Delaware bootcamp Sep 11-12, 2014 Univ...
September 06, 2014

Building Better Teachers

Some books are intrinsically great. (I've read Going Postal half a dozen times, and enjoyed it just as much at each encounter.) Other books feel gre...
September 04, 2014

Fall 2014 Bootcamps (So Far)

Our calendar for the fall is filling up pretty quickly: we've added the following bootcamps in the last couple of weeks, and have more on the way. I...
August 30, 2014

Conversations About Teaching

Over the last few days, there have been four related discussion threads on the Software Carpentry mailing lists about what we use, what we t...
August 18, 2014

News from Australia

Damien Irving summed up Software Carpentry activities in Australia in a short talk at PyCon Australia last week, and talked a bit as well about lesson...
August 13, 2014

Sustainability

I took part in a meeting about sustainable scientific software at last month's SciPy conference. Much of it was taken up with discussion of getting ...
August 04, 2014

Summer Sprint Summary

Last week, the Mozilla Science Lab hosted its first-ever global sprint. Dozens of people joined in from 18 cities (and a few from home) to work for ...
July 29, 2014

Summer Sprint FAQ

The Mozilla Science Lab's first-ever two-day sprint is less than three weeks away, so here's a short FAQ to tell you who can take part and how. ...
July 21, 2014

SciPy 2014 Talks and Lessons

Talks from SciPy 2014 are now online, and include several from people associated with Software Carpentry. I particularly enjoyed Lorena Barba's key...
July 21, 2014

Scientific Groupware Revisited

16 years ago, Jon Udell wrote a white paper titled "Internet Groupware for Scientific Collaboration" that profoundly changed how I thought about the...
July 05, 2014

Summary of June 2014 Lab Meeting

At our monthly lab meeting yesterday (June 26), we discussed a wide range of topics (though only about half as much as was on the agenda). Details not...
June 27, 2014

Our IUSE Proposal Was Rejected

We got word a few days ago that our proposal to the NSF's Improving Undergraduate STEM Education program had been rejected. The panel summary agreed...
June 27, 2014

Help Us Build an Admin Tool for Bootcamps

It takes a lot of work behind the scenes to match instructors to bootcamps, keep track of who taught (or learned) where, and manage our mailing lists....
June 20, 2014

An Update on Our Sprint Plans

Plans for our two-day sprint in July are coming together: full details are being compiled on our Etherpad, but we hope the summary below will give y...
June 15, 2014

A Double Handful of Bootcamps

The next couple of days are going to be busy, with bootcamps in Amman and Toronto, and at Duke, UC Davis, and Claremont Colleges. The week aft...
June 15, 2014

Planning Our Summer Sprint

As a warm-up for our lab meeting on June 26, we have some more information to share about our two-day sprint in July. Please see our Etherpad for de...
June 09, 2014

Collected Links

A lot of people have been writing about Software Carpentry on other blogs of late. Here, in no particular order, are a few of their posts: Damie...
June 05, 2014

Announcing Two More WiSE Bootcamps

Thanks to generous support from Waterfront International and Stevens Capital Management, we are pleased to announce that we are running two bootca...
May 26, 2014

Summary of May 2014 Lab Meeting

Our monthly online lab meeting took place this past Thursday (May 22), and for the first time it included voting on pull requests and other issues. Al...
May 24, 2014

Behind the Scenes

A lot of people work behind the scenes to organize bootcamps, keep our website going (and readable), and generally make it possble for the rest of us ...
May 20, 2014

A Lot of Bootcamps in the Works

Last week, we ran our first bootcamp in Brazil—many thanks to Raniere Silva for this writeup about what worked and what didn't. We'll visit ...
May 20, 2014

Agenda for This Month’s Lab Meeting

The next Software Carpentry lab meeting will be held at 10:00 Eastern on Thursday, May 22, and repeated at 19:00 Eastern on the same day. (You can use...
May 13, 2014

Knocking on the Future’s Door

Once again I feel like I'm knocking on the future's door but nobody's answering. The task we set ourselves seemed simple: produce a nicely-formatted P...
May 08, 2014

A Multi-Site Sprint in July

We'll be holding our first-ever global sprint on July 22-23, 2014. This event will be modeled on Random Hacks of Kindness: people will work with frien...
May 05, 2014

Playing the Kazoo

Yesterday, Matt Davis quoted Peter Wang as saying, "A violin is to a kazoo as Python is to Excel." To which I replied, "Exactly: anyone who want...
May 05, 2014

How to Improve Instructor Training

We ran a three-day intensive version of our instructor training course in Toronto earlier this week. The 40 attendees seemed to find it useful, an...
May 02, 2014

Wise as Athena…

Katy Huff has written an article for the Berkeley Science Review about our recent bootcamp for women in science and engineering in California. It'...
May 01, 2014

PyCon 2014 Videos

A double handful of people associated with Software Carpentry gave talks at PyCon 2014 in Montreal two weeks ago. Thanks to Sheila Miguez and Will Kah...
April 27, 2014

April 2014 Lab Meeting

We held another online lab meeting yesterday, which covered a fairly wide range of topics. The notes are below; comments about what we missed, and...
April 25, 2014

Hand Made

Sadie made this for me. It's super-cuddly.
April 24, 2014

Mr. Biczo Was Right

I didn't have nearly enough time to enjoy everything that was going on at PyCon 2014 last week. One event I particularly regret missing was a sprint ...
April 23, 2014

Import Lesson

Lorena Barba has done it again. Having created a wonderful 12-step introduction to the Navier-Stokes equations using the IPython Notebook, she has...
April 23, 2014

GSoC Projects for 2014

We're very pleased to announce that two students will be working on Google Summer of Code projects we put forward, and that one of our regular contr...
April 22, 2014

Changing the Channel

A lot of open source projects use an antiquated-but-reliable chat system called IRC for long-running conversations. We've had an IRC channel for Sof...
April 18, 2014

Do Not Be Worried

Sage advice for our instructors and learners from an eight-year-old:
April 16, 2014

This Is Why I Don’t Write Any More

Thursday: fly to Montreal for PyCon. Friday: give a talk at McGill. Saturday: tell people at PyCon what I know about education. Sunday: help M...
April 15, 2014

Summarizing Our Instructors’ Skills

We've been asking bootcamp participants to tell us about themselves for a while now, so it seems only fair to share some information about our instructo...
April 15, 2014

Bridging the Writing Gap

A few months ago, we had an interesting discussion about what Software Carpentry should teach about writing and publishing in the 21st Century. One ...
April 06, 2014

Announcing NBDiff

I am very pleased to announce the first release of NBDiff, a tool for diffing and merging IPython Notebooks that is now available on GitHub and ...
March 30, 2014

One of Our Inspirations

Last week's post about our original logo reminded me that I'd never blogged about one of the books that inspired Software Carpentry in the first place: ...
March 27, 2014

Changing Our Core Curriculum

We currently say that people must teach task automation, structured programming, version control, and unit testing in order to use the Software Carpen...
March 27, 2014

Building a Minimal Online Presence

Titus Brown and Ethan White led a half-hour discussion today of the minimal online presence people in academia ought to have. Notes from the call are ...
March 27, 2014

Not on the Shelves

Every few years, I indulge in a bit of sympathetic magic by writing reviews of books that don't actually exist in the hope that it will inspire some...
March 23, 2014

Empirical Software Engineering Papers

When I teach scientists programming, I frequently cite empirical studies in software engineering to back up my claims about various tools and practice...
March 19, 2014

Our Original Logo

How old is Software Carpentry? So old that the only surviving copy of our original logo is an unanimated GIF:
March 18, 2014

A Letter from John von Neumann

Plans to standardize and publish codes of various groups have been made in the past, and they have not been very successful so far. The difficulty is ...
March 14, 2014

You and Jimi Hendrix

I had a discussion a couple of weeks ago about software development tools and processes with some undergraduate students I'm mentoring. They asked w...
March 14, 2014

Everything Old is New Again

Yesterday, the New York Times R&D Lab announced streamtools, a web-based graphical tool for working with streams of data. It lets users create d...
March 14, 2014

Anatole France, Updated

Anatole France (1844-1924) Then The law, in its majestic equality, forbids the rich and poor alike to sleep under bridges, to beg i...
March 07, 2014

A Workshop for Librarians at PyCon

We are very pleased to announce that we will be running a two-day workshop on programming skills for librarians during the PyCon sprints in Montreal o...
March 04, 2014

Learn How to Teach People to Program

We are very pleased to announce that we will be running two one-day workshops on how to teach programming during the PyCon sprints in Montreal on Apri...
March 04, 2014

Summary of Feb 2014 Lab Meeting

We held a lab meeting last week. 48 people attended in two sessions (to accommodate different time zones); the main points are summarized below. C...
March 03, 2014

Software Carpentry on the CBC

Greg Wilson was recently interviewed by CBC Radio's "Spark" program: you can listen to the interview online, or catch it live this Sunday at 1:00 pm.
March 01, 2014

The Open Scoop Challenge

Sooner or later, in every discussion of open science, someone will say there's a risk of being scooped if you share your code or data with your peer...
February 25, 2014

Lab Meeting (Feb 2014)

We're having our first lab meeting of 2014 this week. As usual, we'll hold it twice to accommodate different time zones: once at 20:00 Eastern on Wedn...
February 23, 2014

From Training to Engagement

I was interviewed about Software Carpentry earlier this week, and the interviewer's second question was, "Don't scientists all learn how to program th...
February 21, 2014

Lessons Learned Has Been Published

I'm pleased to announce that "Software Carpentry: Lessons Learned" has been published on F1000Research. A paper like this is necessarily incomplete, ...
February 19, 2014

Our Biggest Event Ever

If you have friends or colleagues in or near Montreal, please let them know that we're running our largest bootcamp ever on April 14-15 in conjuncti...
February 13, 2014

An Online Peer Instruction Tool

Peer instruction is a teaching technique originally developed by Eric Mazur and colleagues in the early 1990s. Study after study has shown that peer i...
February 09, 2014

Workshops at the Data Science Centers

We are pleased to announce that we will be running workshops simultaneously at the data science centers at UC Berkeley, New York University, and the U...
January 30, 2014

Workshops at PyCon in Montreal This April

We are pleased to announce that registration is now open for our largest event ever: on April 14-15, 2014, in association with PyCon 2014 in Montreal,...
January 28, 2014

Teaching Online (Sort Of) in 2014

We have tried several times to teach Software Carpentry online, but the results have always been disappointing. We are therefore going to try somethin...
January 28, 2014

The Other One Per Cent

Over the past year, there's been a minor rage storm on the internet (and oh yeah, in print, I guess) about the widening gulf between academic haves ...
January 24, 2014

Why Not a MOOC?

We got mail yesterday asking us whether we were going to run Software Carpentry as a MOOC. The short answer is, "No." The full answer has several part...
January 19, 2014

From 0 to 1 to 10

Andromeda Yelton has written a great blog post about her experiences teaching a bootcamp for librarians in Toronto earlier this week. It includes th...
January 15, 2014

Publishing on the Web

Back in December, I asked a question on the Software Carpentry issue track: What should we teach about writing/publishing papers in a webby world? I...
January 15, 2014

Code Review, Round 2

Short version: we will launch a second pilot study of code review for scientific software in February 2014, in which experienced mentors will teach sm...
January 14, 2014

‘Best Practices’ Has Been Published

I'm very pleased to announce that our paper Best Practices for Scientific Computing has been published in PLOS Biology. It presents 24 specific thin...
January 07, 2014

We Need More of These

Michael Nygard's Release It! is one of my favorite books about the practical side of computing—I gave it five stars when it first came out, and ...
January 07, 2014

Mental Models and Vicious Circles

A few days ago, Konrad Hinsen asked this on our discussion list: Is anyone aware of teaching methods that aim at either developing or verifying th...
January 07, 2014

Back to top ↑

2013

Tools, Conversations, and Cultures

Philip Guo is best known these days for The Ph.D. Grind, but I first met him through his Online Python Tutor. He helped teach a bootcamp for librari...
December 31, 2013

Catch and Hold

I'm a big fan of Mark Guzdial's work on computing education. Last week, he tweeted this: Google is made of people who succeed in current CS teac...
December 27, 2013

Oxford, One Year On

Philip Fowler recently posted a nice study of the impact last year's Software Carpentry bootcamp at Oxford had on its participants. The key findin...
December 25, 2013

Andromeda’s Advice

We're very pleased to announce that Andromeda Yelton will be coming to Toronto in mid-January to help teach a bootcamp for librarians. Her advice ...
December 19, 2013

So How Is Instructor Training Going?

We recently wrapped up the latest round of instructor training, which makes this a good time to look at how well the program is doing. Here are stats ...
December 19, 2013

There Ought to Be a Badge

I feel like there should be a Software Carpentry badge for drawing one of these for someone for the first time. — Amy Brown on Twitter
December 10, 2013

Two to the Fifth New Instructors

We are very pleased to welcome 32 new instructors from six different countries to the Software Carpentry team: we look forward to working with them ...
December 05, 2013

Thanks from Woods Hole

We ran a bootcamp last week at Woods Hole Oceanographic Institute. It seems to have gone well: I just want to say that Will and Ross are rock stars....
November 17, 2013

Workshop at SIGCSE 2014

We are very pleased to announce that Fernando Pérez, Peter Norvig, and Greg Wilson will be running a three-hour workshop on teaching with t...
November 16, 2013

A Modest Proposal

Here's an idea: when conferences and journals send CS research papers out to academics for peer review of content, they should also send them to a cou...
November 16, 2013

Citing Us In Your CV

People volunteer to teach Software Carpentry bootcamps for many reasons. We're always grateful that they do, and would like them to get all the cred...
November 16, 2013

Creating a Forum

Every few months, someone asks why we don't have some kind of forum or bulletin board for Software Carpentry. The answer is that we've tried setting o...
November 16, 2013

Instructor Training in Three Days

Update: see this post for information on registration. We are pleased to announce that we will be running a live version of our online instructo...
November 16, 2013

Data Science Centers at UCB, UW, and NYU

Yesterday, the Gordon and Betty Moore Foundation and the Alfred P. Sloan Foundation (who are Software Carpentry's main backer) announced $37.8M ...
November 13, 2013

Women in Tech Workshop at PyData NYC

Software Carpentry has always focused on scientists at the graduate level and above, but getting people into the pipeline is even more important as gett...
November 13, 2013

Three Old Men Drinking Tea

Years ago, a friend took me to see an exhibit of Chinese paintings in Edinburgh. I liked one so much that I picked up a print (which I have long sin...
November 10, 2013

Software Carpentry’s Scope

To help people figure out what's in and what out as we're reorganizing our material, I've drafted an explicit description of our scope inspired in p...
November 02, 2013

Reorganizing

TL;DR: We're going to: split our lesson materials for absolute beginners and people with some previous experience; build some tools to mana...
November 02, 2013

November 2013 Lab Meeting

The first Mozilla Science Lab meeting is happening at 11:00 am Eastern time on Thursday, November 14; its agenda and connection details are on this Ethe...
November 02, 2013

A Simple Exercise

Every teacher has a few favorite assignments. Here's one of mine, which I gave to two undergraduate software engineering classes that I taught at th...
October 23, 2013

You Keep Using That Word

The first Workshop on Sustainable Software for Science: Practice and Experiences (WSSSPE) is going to be held in conjunction with Supercomputing 2013 ...
October 17, 2013

The State of Open Science

As part of the biannual Mozilla Summit a couple of weeks ago, John Jensen presented a report on the health of the open web. The details were fascinati...
October 17, 2013

Curriculum Design

I spoke with three different people about curriculum design last week, so this seems like a good time to summarize what I know about doing that properly...
October 14, 2013

Enrolment Figures (Fall 2013)

Our total enrolment (or enrollment, if you're American) continues to grow steadily: if we stay on the curve below, we'll have our four thousandth learner by ...
October 09, 2013

Assuming the Problem

Gizmodo ran a piece recently titled What Happens When Cities Fall Apart? about the work of David Kilcullen, an Australian military theorist who beli...
October 08, 2013

Our Biggest Bootcamp Ever at PyCon 2014

Thanks to the generous support of the Python Software Foundation, we will be running our biggest bootcamp ever in conjunction with PyCon 2014 in Mon...
October 04, 2013

October 2013 Lab Meeting

25 people attended our monthly (ish) online lab meeting yesterday, during which we announced and discussed a wide variety of topics. The detailed summ...
October 04, 2013

The Future: Today

Two papers appeared on my radar this week that give a taste of the kind of science we want everyone to be able to do in five years' time. The first, ...
September 27, 2013

Code and Data for the Social Sciences

Matthew Gentzkow and Jesse Shapiro have written an excellent guide "Code and Data in the Social Sciences". It's short (only 38 pages), very readable...
September 26, 2013

How Much Testing Is Enough?

When we teach testing, we are sometimes asked, "How much is enough?" The short answer is, "It depends." To help construct a longer answer, we'd like to fin...
September 24, 2013

PyCon 2014 Proposal

I submitted this proposal to PyCon 2014—win or lose, I hope to see you all there. Submitted by: Greg Wilson Category: ...
September 15, 2013

Still

I am pleased to announce that my YA novelette Still is now available in paperback at Lulu.com and as a Kindle e-book on Amazon.com. The story is...
September 05, 2013

Introducing Citation Files

Robin Wilson, of the University of Southampton, recently posted a note on the Software Sustainability Institute's blog about CITATION files. In br...
September 02, 2013

Teaching Librarians at Harvard

Last weekend, we ran a bootcamp at the Harvard-Smithsonian Center for Astronomy aimed primarily at librarians. It was a bit of a new venture for us,...
September 02, 2013

Open Access Button Hackathon is Sept 7-8

Millions of people a day are denied access to the research they both need and paid for because of paywalls. It doesn't have to be like this, but we need...
August 30, 2013

Jonathan Dursi Joins Compute Canada

Jonathan Dursi, a long-time supporter of Software Carpentry and one of our first instructors, has been named Interim Chief Technology Officer for ...
August 30, 2013

Why Open Access?

Mark Guzdial's group at Georgia Tech does world-class work on how to teach programming: over half of the links in the recommended reading for our in...
August 25, 2013

Instructor Training Statistics

We started running an online training course for Software Carpentry instructors last fall. It's been going pretty well: 72 people signed up...
August 23, 2013

Two Cheers for GitHub

There's been a micro-flurry of excitement in the scientific world about GitHub's recent announcement that they will now render tabular text files (i.e...
August 23, 2013

August 2013 Lab Meeting

We held another of our semi-regular online lab meetings yesterday, complete with a theme song. We ran the meeting twice to accommodate different tim...
August 23, 2013

August 2013 Lab Meeting

We will have an online lab meeting on Thursday, August 22, 2013 to discuss changes to the website, plans for the coming few months, and common quest...
August 19, 2013

Bootcamp Questionnaires

Thanks to some hard work by Jory Schossau and others, we have developed three standard questionnaires for bootcamp participants: Pre-assessment for ...
August 19, 2013

Summary of Host Survey

Earlier this summer, we asked people who had hosted Software Carpentry bootcamps to give us some retrospective feedback. Their answers are summarized ...
August 14, 2013

What We Cover in Instructor Training

The sixth round of our online training class for Software Carpentry instructors is kicking off this week with 28 participants. Our main text is Ho...
August 13, 2013

Offering a New Order

Every movement that seeks to change society faces two great tasks. The first is to discredit the old order. The second is to offer a new one. Without the...
August 12, 2013

Rebooting

After repeated hackage (and half-hearted tech support from Dreamhost, which seems to have lost all interest in its customers), I've rebooted this blog using ...
July 28, 2013

Report on the Indiana Bootcamp

Mike Hansen, Jeff Shelton, and Aleksandra Pawlik posted a summary of their recent bootcamp at Indiana University on the Software Sustainability ...
July 26, 2013

Miscellaneous Videos

People have been talking about Software Carpentry in a bunch of different venues recently. Katy Huff and Matt Davis did a tutorial at SciPy'13 that was ...
July 20, 2013

The Fourteenth Anniversary

Fourteen years ago this October, I had the good fortune to attend a one-day workshop titled Open Source/Open Science at Brookhaven National Laboratory...
July 19, 2013

Welcome Our New Instructors

We're very pleased to welcome a dozen new instructors to the Software Carpentry team: Diego Barneche John Blischak Daniel Falster Rich FitzJohn St...
July 19, 2013

Data Science Workflows

Half a dozen of us got together yesterday morning to chat about The Bad Data Handbook, what the curriculum for a Software Carpentry-style bootcamp for...
July 18, 2013

Biological Computing User Stories

Three years ago, when we rebooted Software Carpentry, we wrote some brief descriptions of our intended audience and how we thought we could help the...
July 17, 2013

Computational Competence for Biologists

On July 8 and 9, I had the pleasure of taking part in a two-day workshop at SESYNC to discuss what we ought to teach biologists about computing. It ...
July 16, 2013

WiSE Bootcamp Roundup

It's been over a week since our first bootcamp for women in science and engineering wrapped up in Boston, and feedback has been coming in pretty steadily. I...
July 05, 2013

Sloan Foundation Proposal Round 2

From our "better late than never" department: we submitted a proposal to the Sloan Foundation last August to create what we're now calling the Mozilla Scienc...
July 05, 2013

The Twelve Bar Blues of Open Science

Most musicians can play along with a twelve-bar blues once they know what the key and tempo are. Many kinds of scientific work are equally well struct...
June 19, 2013

Salk Institute Feedback

Preston Holmes recently posted a detailed analysis of his experiences helping out at our Salk Institute bootcamp. It contains a lot of insights, a...
June 17, 2013

Problems with Pandoc

People have been asking me to write the Software Carpentry instructor's guide in Markdown instead of HTML, mostly so that it will be easier for other people ...
June 13, 2013

Keynoting at SPLASH 2013

I will be giving a keynote talk at SPLASH (formerly OOPSLA) in Indianapolis on Wednesday, October 30. Hope to see you there!
June 13, 2013

UML in Practice

Marian Petre: "UML in practice" ICSE'13, 2013. http://oro.open.ac.uk/35805/. UML has been described by some as "the lingua franca of software engineering". E...
June 13, 2013

June 2013 Lab Meeting

Earlier this week, Software Carpentry had its first online lab meeting since October 2012. In attendance were: Greg Wilson ...
June 13, 2013

Heroes

All that is necessary for evil to triumph is for good men to do nothing. — Edmund Burke
June 09, 2013

Is There Only Room for One Utopia?

The title of Samuel Moyn's The Last Utopia: Human Rights in History is misleading. It isn't really a history of human rights; instead, it's an outline of how...
June 07, 2013

Running Bootcamps

It's been eighteen months since we started running two-day bootcamps. We've grown rapidly: Cumulative Number of Bootcamps Cumulative Enrolm...
June 07, 2013

First Impressions of MSR

Mike Hoye, Mozilla's Engineering Community Manager, attended the Mining Software Repositories conference for the first time this year. Here are his impressio...
June 04, 2013

The Great Licenceathon

The Software Sustainability Institute's Simon Hettrick writes: Intellectual Property (IP) is a thorny issue in academia, generally because people do...
May 30, 2013

What Does Victory Look Like?

A lot of changes are happening to science as I write this. Crowdsourcing, open reviews, citeable data, new ways to measure contributions, automa...
May 26, 2013

What Does Done Look Like?

After recent posts about where we are, our infrastructure, and our plans for the summer break, it seems like a good time to raise our sights and...
May 26, 2013

Our Infrastructure

As described in these posts from May, and October 2012 (which build on this one from April 2012), we use a complicated collection of tools...
May 25, 2013

Where We Are (More or Less)

In January 2012, John Cook posted this to his widely-read blog: In a review of linear programming solvers from 1987 to 2002, Bob Bixby says that solve...
May 24, 2013

Planning for the Break

We've had a busy nine months: 55 bootcamps since we restarted bootcamps last September, with 19 more in the next two months. We're taking a break th...
May 24, 2013

Browsercast

David Wolever (a freelance developer here in Toronto) has released the first version of BrowserCast, an IPython Notebook plugin that allows you to s...
May 24, 2013

Wrapping Up at UC Davis

Jenna Lang has posted a great wrap-up on the bootcamp at UC Davis — with Python cookies!
May 17, 2013

A Mention in Science Careers

Vijee Venkatraman has written a good article for Science Careers titled "When All Science Becomes Data Science", which mentions Software Carpentry.
May 14, 2013

Git vs. Subversion and Feedback in General

Software Carpentry's mission is to help scientists teach other scientists how to be better programmers. If we want to do that successfully, we need to be sc...
May 10, 2013

Make It Easier to (Re)use Your Data

Software Carpentry has focused on computing for most of its 14 years (primarily because that's what I'm most familiar with) but it's increasingly clear that ...
May 03, 2013

More Detailed Feeback from Melbourne

The hosts of our February bootcamp at the AMOS conference in Melbourne have collected some more detailed feedback from participants. I'm pleased that two th...
May 03, 2013

Translucent Badges

Digital badges are a hot meme right now. They let anyone, anywhere, issue credentials that are finer-grained than degree certificates or driver's licenses. ...
May 02, 2013

Merging is the Real Revolution

Many people think that Javascript and HTML5 are the future of the web. Respectfully, I think they're both red herrings: I think what makes successful open so...
May 01, 2013

Pre-Assessment Results

Of the 29 people who responded to a brief questionnaire before a recent bootcamp, we have: 18graduate students 4postdocs 4staff 1faculty member 1g...
April 30, 2013

An Update on Cumulative Enrolment

It's been a busy few months, and the next three promise to be busier still. Somewhere in there we helped our two thousandth learner, and if everything goes ...
April 29, 2013

Manchester Once Again

Mike Jackson has posted a summary of Software Carpentry's second bootcamp in Manchester this month. We're hoping to visit again before the year's end—...
April 24, 2013

Spreadsheets, Retractions, and Bias

Just in case there's any misunderstanding: I'm not suggesting that scientists should use Excel. Now, with that out of the way… Guy Deutscher's wonde...
April 19, 2013

Installation Revisited

Regular readers (and anyone who has attended a bootcamp) will know that getting learners' laptops set up is the single biggest headache we have. Titus...
April 08, 2013

Evaluation Revisited

Caitlyn Pickens (a graduate student at Michigan State who is interning with us this summer) has just posted an article about the validity of differe...
April 08, 2013

Comments on Firefox Available for Analysis

A team of Mozilla developers ran a Reddit "Ask Me Anything" on Firefox two weeks ago. Several thousand comments were submitted, and Blake Winton has now sort...
March 24, 2013

Testing Image Processing

Testing has always been part of Software Carpentry, but it's also always been one of our weak spots. We explain that testing can't possibly uncover al...
March 17, 2013

Cumulative Enrollment

One measure of how well we're doing is the number of people we've helped. Here's what the last 15 months have looked like:
March 17, 2013

Snowstorms and Blackouts in Virginia

Despite inclement weather, last week's bootcamp at the University of Virginia went well. According to Steve Crouch, 33 researchers spent two days learning so...
March 15, 2013

A New Testing Framework for MATLAB

Steve Eddins just announced a new unit testing framework for MATLAB. Based in part on lessons learned from his earlier mUnit framework, it has everything yo...
March 12, 2013

Halving Fail Rates using Peer Instruction

Leo Porter, Cynthia Bailey-Lee, and Beth Simon: "Halving Fail Rates using Peer Instruction: A Study of Four Computer Science Courses". Proc. SIGCSE 2013. Pee...
March 08, 2013

First Round at Lawrence Berkeley

We just wrapped up a two-day workshop at the Lawrence Berkeley National Laboratory, and another is due to start tomorrow. Here's what worked and what didn't...
March 05, 2013

Washington Went Well

Last week, we put on the largest Software Carpentry bootcamp ever at the University of Washington: three rooms, six instructors, ten helpers, and 93 students...
March 01, 2013

Alternative Teaching Models

Our two-day bootcamps are working well, but that doesn't mean they're the best—or only—way to teach basic computing skills to scientists. We've ...
March 01, 2013

Congratulations to Christian Muise

U of Toronto PhD student Christian Muise created an application that was selected as a winner of Google's Places API Challenge. The competition brought toget...
February 15, 2013

Wrapping Up in Melbourne

Two long but useful days at Melbourne Uni have just wound down, and five dozen meteorologists and climate scientists have given us feedback on a well-run boo...
February 15, 2013

More News from the UK

Two pieces of news from the UK: The folks at Queen Mary, University of London just ran a two-day bootcamp for students in Media and Arts Technology, and w...
February 14, 2013

UBC Went Well

Ted Hart and Ethan White just wrapped up a bootcamp at the University of British Columbia, and by all accounts it went very well: Good Bad ...
February 11, 2013

Correctness Isn’t Compelling

The final report from the ICERM workshop on Reproducibility in Computational and Experimental Mathematics is now available, and its appearance has prompted m...
February 11, 2013

The Larch Environment

G.W. French, J.R. Kennaway, and A.M. Day: "Programs as visual, interactive documents." Software – Practice and Experience (2013), DOI: 10.1002/spe.2182...
February 09, 2013

Macquarie Went Well

Last week's bootcamp at Macquarie University went well: I fumbled the introduction to Python on Friday morning (which I haven't done in a long time), but wit...
February 08, 2013

Features and Scope in Open Courseware

A couple of weeks ago, Brian Granger (one of the core developers of IPython) posted some thoughts on features and scope in open source software. In it, he e...
February 03, 2013

A Short Report from Tuebingen

Luis Figueira has posted a short summary of last week's bootcamp at the Max Planck Institute in Tuebingen, Germany. Judging by the number of people who have...
February 03, 2013

A Bunch of Bootcamps

We've had a busy month: we've run bootcamps at the Max Planck Institute in Tübingen, the Technische Universiteit München, Mozilla's office in Toron...
February 01, 2013

Releng 2013

Releng 2013 is a one day workshop (co-located with ICSE) to bring together release engineers and researchers to discuss the challenges in release engineering...
January 30, 2013

A Bootcamp at Mozilla

We ran a two-day bootcamp at Mozilla's office in Toronto last week for people from local research hospitals. It seemed to go well: only 28 of the 37 who'd r...
January 30, 2013

Half a Hundred

And then Maddie said, "Daddy, guess what? You're half a hundred years old!"
January 30, 2013

Novelty, Efficiency, and Trust

I've spent a lot of time trying to figure out what the "big picture" is for Software Carpentry. What are the best practices every scientist should master? ...
January 28, 2013

How to Become an Instructor

As we've mentioned elsewhere, our instructors are volunteers who donate their time because it's fun, because it makes the world a better place, because they ...
January 23, 2013

Record and Playback in the IPython Notebook

We decided last fall to start teaching Python using the IPython Notebook rather than a plain old command-line interpreter. It will take us a few months to c...
January 22, 2013

Why Web Literacy?

Last week, Mark Surman (director of the Mozilla Foundation) posted an article titled, "I need help explaining 'why?'" In it, he roughed out a five liner to e...
January 21, 2013

Teaching Commercially

A couple of people have contacted us recently to ask about running Software Carpentry bootcamps for companies. Our material is all Creative Commons licensed...
January 11, 2013

The Last Policeman

I finished Ben H. Winters' The Last Policeman; it's one of those "wish I had written it" books. A few passages here and there don't quite ring true, but then...
January 09, 2013

Citation, Please

Another day, another flood of defensive, ill-informed commentary on the Internet about women in technology. (I'm thinking particularly of some of the respons...
January 07, 2013

Five Things

Inspired (as always) by Geeky Mom, here are: Five things I'm thankful for this week: Tobogganing with my daughter (I got to go four times, and I got to be ...
January 04, 2013

Why We Teach

Data Sharing and Management Snafu in 3 Short Acts: you have to laugh, because otherwise you'd cry...
January 04, 2013

Advice From a Newbie No More

Adina Chuang-Howe recently wrote a great blog post titled "Advice from newbie to newbie", in which she gives some advice to her younger and not-yet-computati...
January 04, 2013

Back to top ↑

2012

Why We Need Evidence

Our previous post, "Empirical Evidence for the Value of Version Control", generated a lot of comments. Many sought to explain why version control is helpful,...
December 30, 2012

What Will Programming Look Like in 2020?

Over on Lambda the Ultimate, Sean McDirmid has asked: What will programming look like in 2020? Keep in mind that programming in 2012 mostly resembles program...
December 29, 2012

Why I Didn’t Like "The Dark Knight Rises"

Looking back on 2012, The Dark Knight Rises was probably my least favorite film. The visuals were OK, I guess, but Christian Bale somehow managed to make the...
December 26, 2012

Computer Science Curricula 2013

Following a roughly 10 year cycle, the ACM and IEEE Computer Society jointly sponsor the development of a Computing Curricula volume on Computer Science. The...
December 23, 2012

Sample Data Management Plans

Neil Chue Hong recently pointed us at DataONE's Data Management Planning page, which has two really useful things: a link to DMPTool, which will help you ...
December 21, 2012

Code of Conduct

Software Carpentry is dedicated to providing a harassment-free learning experience for everyone, regardless of gender, sexual orientation, disability, p...
December 21, 2012

IPython Funding: Hurray!

Via email: We are proud to announce that we've received funding from the Alfred P. Sloan Foundation that will support IPython development for the next two y...
December 12, 2012

ElmCity Reaches Toronto

For the past few years, Jon Udell has been working on a project called ElmCity. Its ostensible aim is to do for calendars what the RSS ecosystem has done for...
December 08, 2012

Two Solitudes Illustrated

Jorge Aranda and I submitted a short opinion piece to Communications of the ACM in February 2012 that discussed some of the reasons people in industry and ac...
December 06, 2012

Why Be an Instructor

Our instructors are all volunteers—bootcamp hosts cover their travel and accommodation costs, but they're not paid for their time. So why do they do i...
December 05, 2012

Who Can Run a Software Carpentry Workshop?

A couple of people have mailed us in the past week to ask if they can use our materials and run a workshop on their own. The short answer is "yes"; the long...
December 05, 2012

Sustainability

Software Carpentry wouldn't exist without support from the Sloan Foundation, Mozilla, and a lot of other supporters, but that support won't last forever. Ov...
December 05, 2012

Six Years Later

I'm giving a short talk next week at an ICERM workshop on Reproducibility in Computational and Experimental Mathematics, which has prompted me to look back a...
December 05, 2012

Our First Hackathon

We'd like to invite our friends to a week-long hackathon at Mozilla's office in Toronto in June to: create new teaching material give each other feedbac...
December 05, 2012

Moving Up and Moving Down

Our existing workshops/material are aimed at people who know enough to write a hundred-line script, but don't yet use version control or do any systematic te...
December 05, 2012

If Udacity is Napster, Who Will Be iTunes?

My Who Decides? post has produced some rather heated email. In answer, no, I am not defending the existing university system: I quit my faculty position at t...
November 19, 2012

Updating Our Reading List

We're planning to launch an update to this web site in the next few days, and as part of that, we're revisiting some of our content. For example, we'd like t...
November 17, 2012

Who Wants To Write a Little Code?

We have always steered away from building libraries to use in teaching—we want to show people the "real" stuff, and we can't afford to maintain things....
November 16, 2012

Matt Davis’s Great Californian Adventure

Matt Davis (who works at the Space Telescope Science Institute, and has become one of our regular instructors) taught three bootcamps in eight days back in O...
November 16, 2012

This Is What We Do

Day 1 of the workshop at the Scripps Institute: a room full of biologists learning how to do better science faster by building things the right way.
November 15, 2012

FOSDEM 2013

Via Sylwester Arabas (one of the organizers): A day-long session ("devroom") on Free/Libre and Open Source Software (FLOSS) for scientists will be held duri...
November 14, 2012

Web 4 Science

Titus Brown (a long-time supporter of, and contributor to, this project) has a series of posts on his blog about using the web for science. As he's well ahea...
November 13, 2012

Pre-Assessment

One of the recurring problems in our bootcamps is that at any point, about 1/4 of people are lost, and 1/4 are bored. The only fix we can think of is to let ...
November 13, 2012

UCOSP Has Grown

One of the last things I did before leaving the University of Toronto was start UCOSP, which gives students in CS a chance to work in cross-country teams on ...
November 07, 2012

More Tips

Philip Fowler, who recently hosted a bootcamp at Oxford, has written a 5-point guide for people who are thinking about doing it themselves—we hope you'...
November 06, 2012

Who Decides?

Sal Khan and Michael Noer recently recorded an 11-minute webisode on the history of education from 1680 to 2050. It angered Audrey Watters, and I think my ta...
November 05, 2012

How to Help at a Bootcamp

Aleksandra Pawlik has written a five-point guide to helping out with Software Carpentry bootcamps: Familiarity is not enough. You're not just there to t...
November 03, 2012

I’d Like an Argument, Please

Twice this week I've heard the claim that ignorance is strength—that not knowing what's been done before in an area is actually an advantage, because t...
November 02, 2012

Oxford Wrap-Up (with charts!)

The first Software Carpentry workshop in Oxford has wrapped up, and by all accounts was a big success. Philip Fowler, the host, has posted about running the ...
November 01, 2012

Charging and Being Charged

As noted in the minutes from our meeting on Monday, one of the many things we want to improve about our workshops is the attendance rate. While we get near-c...
November 01, 2012

Princess Darth Vader

(The yellow raincoast isn't really part of the costume—blame Hurricane Sandy for that.)
October 31, 2012

Minutes from 2012-10-29 All-Hands Meeting

We held our first online all-hands meeting yesterday (Monday, October 29), and despite Hurricane Sandy, 28 people were able to attend. Minutes from the meeti...
October 30, 2012

Why This Is Hard (Part Deux)

I pointed a grad student at the IPython tutorial and made some notes as she started to work through it. (She has used the vanilla Python interpreter before, ...
October 27, 2012

Two Self-Assessments

A recurring problem with our workshops is the diversity of learners' backgrounds. Below are the results of two pre-workshop self-assessments (on different gr...
October 26, 2012

Twenty Percent

I realized a couple of days ago that I'd never blogged about what Software Carpentry needs to accomplish in order to change the practice of science fundament...
October 23, 2012

Key Points

On the flight back from Vancouver yesterday, I finally did what I should have done eight months ago and compiled the key points from our core lesson content....
October 23, 2012

25 Questions

We've tried several times to define Software Carpentry's aims and content in terms of the questions that researchers ask (see for example our competence matr...
October 23, 2012

Getting Credit

A recurring theme in our discussion with scientists is how hard it is to get academic credit for building software, but there are some hopeful signs. As Caro...
October 22, 2012

Excel Isn’t Intrinsically Evil

Excel and other spreadsheets aren't intrinsically evil, but like any power tool, they can easily take off fingers when used carelessly. From Neil Saunders' b...
October 22, 2012

Why Teaching People to Program Is Hard

Update: it's clear from comments that I explained myself poorly in this post. We don't ever teach by starting with a big example like the one below—w...
October 21, 2012

Offline Rendering of WordPress Blog Posts?

I’d like to take a few tens of thousand WordPress blog posts and turn each into a standalone HTML page. I have the text that WordPress stores in its database...
October 16, 2012

Rebuilding Redux

The time has come to replace our creaking combination of web tools with something that will let us do more for more people while spending less time switching...
October 12, 2012

Two Views

How I think of myself when I'm giving a talk:
October 10, 2012

Convergent Evolution

Earlier this week, a Google search turned up a Software Carpentry workshop at the ICHEC in Dublin—which was surprising, because we didn't know they wer...
October 05, 2012

Wanted: An Entry-Level Provenance Library

One of the reason we keep teaching Subversion is that it allows us to show students a simple but useful trick. If you add the following to a text file: $Revi...
October 04, 2012

Best Practices for Scientific Computing

The following pre-print is now available on arXiv: Best Practices for Scientific Computing D.A. Aruliaha, C. Titus Brownb, Neil P. Chue Hongc, Matt Davisd...
October 03, 2012

UCOSP

This term, 58 students from 16 universities are working on 8 projects as part of UCOSP. I'm really pleased this has continued to thrive, and impressed once a...
October 01, 2012

The Real Hard Work

I spent a couple of thought-provoking hours at Codecademy's office in New York on Thursday, during which my host said, "It's so different from Silicon Valley...
September 30, 2012

Oslo and Columbia

Here's some feedback from participants in our Oslo workshop: Good Discovered a dishwasher Test-driven development Lots of anecdotes Power plugs and coffe...
September 30, 2012

Why This Stuff Is Hard To Teach

If we get funding to continue our work (we hope to find out in a month), one of the first things we want to do is put together an introduction to web program...
September 20, 2012

What’s In Your Stack?

As a long-delayed follow-up to a conversation with Travis Oliphant: based on our experience, researchers who are computational novices want more than numeric...
September 18, 2012

Systematic Curriculum Design

Executive summary: we'd appreciate your help organizing and motivating our material better. One of the good things about traveling is that it gives me time t...
September 16, 2012

Patterns Wanted

At some point or other, most programmers have encountered the idea of design patterns in software, and many (including myself) have been zealous about them, ...
September 12, 2012

A Few Books I’ve Enjoyed Recently

The first of Philip Reeve’s prequels to the “Hungry Cities” books for young adults is Fever Crumb; the same would also enjoy Ian McDonald’s Planesrunner. The...
September 09, 2012

How Quickly Do Workshops Fill Up?

I had to compile some data on signups anyway, so here's a graph showing cumulative registration per workshop over time (counting from the day registration op...
September 06, 2012

Not Really Disjoint

The twinned discussions in bioinformatics about openness and software quality are heating up. A recent salvo on Gas Stations Without Pumps is titled "Account...
September 04, 2012

Free As In Pretty Much Whatever You Want

A couple of different people have asked us recently whether they can use our materials in their courses. The answer is an emphatic "yes": all of our slides, ...
September 04, 2012

Final Results of Demographic Survey

192 people have now responded to the demographic survey we reported two weeks ago. Results are shown below; I'll hold off posting breakdown by discipline unt...
September 04, 2012

Lifted by the Audience

I spent Thursday and Friday recording most of the material we've been using in workshops for the past six months [1]. One thing that kept bugging me was how ...
September 02, 2012

Please Help the Hunter Family

We are very sad to report that John Hunter, the principal author of the widely-used Python plotting package Matplotlib, is losing his battle with cancer. If ...
August 29, 2012

Linking Forward From a Bibliography?

This web site's bibliography lists 116 papers related in some way to the practice of scientific computing. I'd like to know: what related papers I've missed...
August 29, 2012

A Problem With Badges

We issued the first learning badges for Software Carpentry a couple of weeks ago, and in doing so, uncovered a significant flaw in the design of existing bad...
August 29, 2012

An Interview with Titus Brown

The folks at Simply Statistics interviewed Prof. Titus Brown earlier this month; there's lots of good stuff in the post for people interested in doing comput...
August 27, 2012

PyCon 2013 Talks I Would Like To See

I don’t know if I’ll make it to PyCon 2013 or not (lots of other traveling for Software Carpentry == too much time away from family already), but here are so...
August 24, 2012

Ten Questions for Researchers

I gave the opening talk at MSR Vision 2020 in Kingston on Monday (slides), and in the wake of that, an experienced developers at Mozilla sent me a list of te...
August 22, 2012

An Updated List of Upcoming Workshops

Here's an update to our upcoming workshop list: Venue Start Date Instructor(s) DAFX Conference (York, UK) 2012-09-13 Greg Wilson University of Oslo ...
August 21, 2012

Two Solitudes (talk)

The slides from my keynote today at MSR Vision 2020 are now available on Slideshare. Long story short, I proposed that the only way to improve communication ...
August 21, 2012

Who Are You?

We asked participants in this year's workshops to tell us a bit about themselves. So far, 121 have done so, and their responses are summarized below. Age ...
August 17, 2012

Slide-Drive is Live

I had the privilege this summer of working with Jeremy Banks, a Google Summer of Code student whose project, Slide-Drive, explored what a web-native presenta...
August 16, 2012

Alpha Test of Driver’s License Exam

As we announced back in June, we're working with the Software Sustainability Institute to create a "driver's license" exam for the DiRAC supercomputing facil...
August 16, 2012

Is This Really Necessary?

I was very excited by today's announcement that the Khan Academy is going to start offering programming courses—until I read the whole post. I'm not a ...
August 15, 2012

Cover Stories

I told someone earlier today that I don’t miss academia, but I do miss teaching. Upon reflection, though, that’s not quite true. The ache I feel when I think...
August 14, 2012

We’re Going to Be Busy

We're going to be busy—and these are just the ones we have confirmed. Sep 13-14, 2012: DAFX Conference (York, UK) Sep 17-18, 2012: University of O...
August 01, 2012

Record and Playback

The biggest bottleneck Software Carpentry faces right now is a shortage of experienced instructors. To help fix that, we are going to record a complete prese...
July 30, 2012

Software Carpentry Needs You!

Software Carpentry needs you! If you found our workshops, tutorials, or online material useful, there are many ways you could help us grow: Send us a testimo...
July 28, 2012

How Robust Is Your Programming Language?

One of the biggest problems in teaching novices how to program is that most programming systems are not robust. A car can go quite a long distance on a sligh...
July 21, 2012

Eyes, Brains, and Fingers

Here’s an experiment you can do at home: for just one day, keep track of how many email messages, blog posts, tweets, and Yammer [1] updates reach your eyeba...
July 18, 2012

A Story for Kids About Email

Years and years ago, I wrote a story for kids about how email gets delivered. It’s a bit dated—it talks about modems, and the graphics are GIFs—but I hope it...
July 18, 2012

Wrapping Up in Halifax

Things went pretty well here in Halifax—thanks to the local helpers, and to Justin Ely from STScI for coming up to teach. Next stop, Scarborough! Go...
July 17, 2012

Wrapping Up in Boston

We just wrapped up a two-day workshop in Boston with learners from several universities. It seems to have gone pretty well; we look forward to coming back so...
July 10, 2012

Where We Are (June 2012 edition)

Last week, a double dozen friends and colleagues gathered physically and virtually to review what we've done and where we should go next. I'll postpone discu...
June 27, 2012

A Supercomputing Driver’s License

Software Carpentry and the Software Sustainability Institute are working together to develop a "driver's licence" for researchers who wish to use the DiRAC i...
June 27, 2012

Two Posts on Scientific Workflows

Carly Strasser recently posted two articles on informal and formal scientific workflows, both of which are likely to be interesting to readers of this blog.
June 26, 2012

Pessimism and Doom

According to recent research, an absence of optimism plays a large role in keeping people trapped in poverty: This hopelessness manifests itself in many ways...
June 26, 2012

Handling Variant Configuration Files

One of our learners came to us with a problem last week. The program she uses depends on some complex configuration files, which she'd like to store in versi...
June 26, 2012

A Busy Week (And Schwag!)

We have a busy week coming up: Monday: Start of a two-day workshop at Johns Hopkins University Online tutorial for participants in the London workshop ...
June 18, 2012

This Week’s Tutorials

We ran five and a half online tutorials this week: one each for the workshop participants from UCL, Newcastle, UBC, and Edmonton, one for students combined f...
June 15, 2012

Pretty Well Sums It Up

Speaking at a conference in the UK today, Andrew Eland (of Google) said: Think of the things scientists won't build because they're not exposed to computing ...
June 15, 2012

Tiny Transactions on Computer Science

TinyToCS seeks papers describing significant research contributions to the field of computer science. Submissions can be up to 140 characters in length, with...
June 15, 2012

The Past Is Here Too

Earlier today, a friend of mine used his iPhone to shell into a remote machine, edit a file with Vi, and commit it to version control:
June 14, 2012

Who Else Do You Know?

I’m trying to compile a list of grassroots “learn to program” organizations that are explicitly trying to broaden participation in computing beyond the curre...
June 12, 2012

PPIG 2012 Workshop

PPIG Workshop 2012, Newcastle upon Tyne, UK 5th-th-7th September.
June 11, 2012

Where the Time Goes

Here’s a typical day: Time Activity 0:15 Clear overnight mail/blogs/Twitter 0:15 Organize Software Carpentry tutorials Set up mailing lists for Edm...
June 10, 2012

We Get Mail

Hi Greg and Adina! Two days ago I filled out the Software Carpentry survey which asked me, among other things, how much time I had saved using my new Softwar...
June 08, 2012

But the Greatest of These Is…

In her EAGE keynote earlier today, Victoria Stodden talked about the central role of geophysics in the reproducible research movement. After discussing the p...
June 08, 2012

Ten Simple Rules

The "Ten Simple Rules" series being run in PLoS Computational Biology has a lot of useful gems. Written by editor-in-chief Philip Bourne and others, the enti...
June 07, 2012

Software Carpentry: The E-Book Version?

If I could send email two years into the past, I'd tell myself to spend a lot less time making videos for Software Carpentry, and a lot more time exploring i...
June 04, 2012

How to Run a Bootcamp

With so many people setting up and running Software Carpentry workshops, I thought it was time to put together a more complete how-to. If I've forgotten anyt...
May 29, 2012

No CT Without PL

In a blog post earlier today, Mark Guzdial argues that computational thinking requires learning with a programming language. Unlike many such claims and coun...
May 24, 2012

Responsible Conduct

Titus Brown, Ethan White, and I have been talking about what Responsible Conduct of Research (RCR) standards would look like in computational science. Titus ...
May 23, 2012

Alone and Misunderstood

Jeffrey Mirel and Simona Goldin's recent article in The Atlantic titled "Alone in the Classroom" initially struck a chord with me, particularly when they sai...
May 23, 2012

Citing Versions

We got mail yesterday from a workshop participant saying, "My question is how does one show in a research paper that the underlying data and the software is ...
May 22, 2012

What’s Wrong With All This?

Titus Brown doesn't like this web site. He's OK with the content (I think), but he finds it awkward to use, and while I don't feel as strongly as he does, I ...
May 20, 2012

Space at Upcoming Events

Here's how registration is going for upcoming events: University of British Columbia May 22-23 39/40 Johns Hopkins University June 18-19 7/20 Paris Ju...
May 19, 2012

Feedback from Alberta

Our two-day workshop at the University of Alberta wound up a couple of hours ago. We had quite a few no-shows this time (which was annoying, given how many ...
May 18, 2012

Fooling the Internet

A recent article in The Atlantic titled, "How the Professor Who Fooled Wikipedia Got Caught By Reddit" describes how GMU's Prof. T. Mills Kelly has had stude...
May 15, 2012

Why We Built It

If you want to know why we created The Architecture of Open Source Applications (now in two volumes), you need look no further than the descriptions of other...
May 14, 2012

Feedback from Michigan State

Our workshop at Michigan State University this week was three days long instead of two, and included two topics (Git and the IPython notebook) that we haven'...
May 12, 2012

Run My Code

RunMyCode is a web site and service intended to support reproducible research (initially in computational economics). Authors create companion web sites for ...
May 11, 2012

Fish and Bugs

The May/June 2012 issue of Washington Monthly has an article by Alison Fairbrother titled "A Fish Story". Near the top, it says, "In 2009, a routine methodol...
May 10, 2012

A Review of ‘Code Simplicity’

Max Kanat-Alexander: Code Simplicity: The Science of Software Development (Kindle edition). O'Reilly, 2012, B007NZU848. The goal of this ambitious new book f...
May 03, 2012

Stop Me If You’ve Heard This One

I used to tell this joke: An engineer says, "Theory approximates reality." A mathematician says, "Reality approximates theory." A sociologist says, "Would yo...
April 28, 2012

Slide Drive

I’m pleased to announce that Jeremy Banks has been accepted by Google Summer of Code 2012 to work on Slide Drive, a web-native presentation tool. You can fol...
April 25, 2012

In Search of Prior Arguments

A faculty member whose research involves building some fairly complex scientific software would like to make all his work open source. He is repeatedly havin...
April 17, 2012

Halfway Home

We're half-way through our current round of work, so it's time to start thinking about what we've accomplished, what we've learned, and what we'd like to do ...
April 17, 2012

GitHub for Education

In my experience, most teachers don't develop courses from scratch. Instead, they take whatever material is at hand, modify it to meet their needs, and then&...
April 17, 2012

Utah State University Wrap-Up

Our bootcamp at Utah State University finished earlier today—many thanks once again to Ethan White and his friends for hosting us. Here's what the stu...
April 16, 2012

We’re Neutral (but Not Really)

From Wikipedia: Open science is the umbrella term of the movement to make scientific research, data and dissemination accessible to all levels of an inquirin...
April 14, 2012

Lives Lived

My sister-in-law, Sarah Harrison, wrote a “Lives Lived” about my sister Sylvia which appeared in today’s Globe and Mail. I wish Sylv was here to read it…
April 11, 2012

Straw Man for Web Programming

Last week, I asked what we should teach researchers about the web. I think that I have an answer, and that the easiest way to describe it is by describing wh...
April 10, 2012

…Which Is Wrong

For every complex problem, there is a solution that is simple, neat, and wrong. — H.L. Mencken Over at The Atlantic, Philip Howard is trying to convin...
April 09, 2012

A Future Student

I don't know what we'll be teaching in 20 years, but I hope Tristan Davis will be there to learn.
April 09, 2012

Greener Grass

I've been reading Beneath Ceaseless Skies, an online SF&fantasy magazine, for about a year now. Most of the stories are pretty good, but there's a samene...
April 06, 2012

Titus Brown Finds a Theme

Titus Brown just posted "Big Data Biology — why efficiency matters", in which he explains the academic, practical, and algorithmic reasons why efficien...
April 06, 2012

Seventy Years After

On April 1, 1942, George Orwell wrote: Connolly wanted yesterday to quote a passage from Homage to Catalonia in his broadcast. I opened the book and came on ...
April 03, 2012

Maybe That’s Why

I have a lot of respect for Heather Payne (founder of Ladies Learning Code): she’s working hard to get women into technology, and has been more creative abou...
April 03, 2012

Congratulations to Max and Marcus

Marcus Lau and Maxwell Elendt, two high school students whose science project I was mentoring, picked up a silver medal at the Toronto Science Fair on the we...
April 03, 2012

A Four-Day Curriculum

In response to my weekend post about what we teach in two days, Steve Haddock sent me this link to a four-day course based on the excellent book Practical Co...
April 03, 2012

What to Teach Researchers About the Web

One reason I'm reflecting on what I've learned in the last two years is a question that is back on the top of my work pile: what should we teach researchers ...
April 01, 2012

Sending Email Back in Time

We're about to release the second volume of The Architecture of Open Source Applications, which has indirectly prompted a bit of soul-searching on my part. W...
April 01, 2012

Wrapping Up in Oakland

We've wrapped up the workshop in Oakland for folks from NERSC, Berkeley, and Stanford. More later (when I'm home and have slept), but here's the students' fe...
March 30, 2012

What We Teach in Two Days

This week's workshops at MBARI and NERSC both had more lecturing and less hands-on practical work than either I or the students would have liked, but when we...
March 30, 2012

Maintaining Momentum

For a variety of reasons (which is my way of saying "I don't know why" :-), Software Carpentry has proven really popular in the UK. We have close to 200 peop...
March 30, 2012

Wrapping Up MBARI Workshop

Steve "Jellyfish" Haddock and Greg Wilson taught a two-day workshop at MBARI this week. It seemed to go well: feedback is below. Good Bad used specifi...
March 28, 2012

Object-Oriented Programming in Fortran 2003

Damian Rouson is teaching a class in Berkeley March 26-28, 2012, and again April 10-12, on object-oriented programming in Fortran 2003. The March class is fu...
March 23, 2012

Two Questions After the Audrey Test

Once upon a time, about a quarter of a century ago, I went into a prof’s office in Edinburgh and told him that neural networks were the future, because, look...
March 22, 2012

Informed Choice and the Audrey Test

As I wrote a few days ago, I asked Audrey Watters to put together a “Joel test” to assess how much someone technical knew about education. She has now posted...
March 18, 2012

The Dark Matter of Computational Science

Scott Hanselman's recent post "Dark Matter Developers" got me thinking once again about what Software Carpentry is about. He says: [We] hypothesize that ther...
March 18, 2012

Wrapping Up the STScI Course

The online portion of our work with learners at the Space Telescope Science Institute wound up today. 6 of the 14 people who took part in the on-site worksho...
March 16, 2012

Thank You, Enthought

We are pleased to announce that Enthought has generously given us a grant to support some of the travel costs associated with our bootcamps. Along with hosti...
March 16, 2012

What I Learned From My P2PU Course

The final meeting of my P2PU course on teaching free-range learners how to program took place this morning. I enjoyed chatting with the people who showed up,...
March 16, 2012

The Audrey Test

Audrey Watters’ writings are a must-read for anyone interested in education and technology. As she’s commented many times, many of the techies who want to re...
March 15, 2012

How We’re Doing

The first online session for our Indiana University students will run tomorrow afternoon (assuming we can get web conferencing to work—why is this stil...
March 14, 2012

Ask the CompuScienceGeek?

Titus Brown recently blogged a question about how to organize the files used in a computational science pipeline: by project, by paper, separately, or someth...
March 14, 2012

An Observation

Someone asked me earlier today if it would be worth Mozilla’s while going to SIGCSE (the big annual computer science education conference in the US). I said,...
March 10, 2012

What’s the Model, Kenneth?

Over on rwxweb [1], Michelle Levesque has posted and dissected a diagram showing how various webbish skills depend on one another. It's an invaluable design ...
March 09, 2012

Our Indiana U Workshop Went Well

Our two-day bootcamp at Indiana U. on March 7 and 8 went well—while less than half of the people who registered actually showed up (more on that in a m...
March 09, 2012

I Resemble That Remark

Titus Brown's recent post "Top 12 Reasons You Know You are a Big Data Biologist" may resonate with some readers of this blog. I particularly like the idea (i...
March 07, 2012

Programs as Experimental Apparatus

Suppose you have two photographs of a patch of the night sky: and you want to know how different they are. The simplest way would be to see if any of the pi...
March 05, 2012

Help Us Write Assessment Questions

We have been asking people the questions below before the start of a bootcamp in order to get a handle on how much they already know. As part of evaluating t...
March 05, 2012

Happy People

Our workshop at the International Center for Theoretical Physics in Trieste has ended, and judging from the participants' smiles, it went well: Thanks once ...
March 05, 2012

A Week of Retroactive Accountability

I don't like tidying up the house when my wife and daughter are away. I don't mind cleaning, especially the kitchen and bathroom, but picking up toys and she...
March 03, 2012

Toronto Bootcamp February 2012: How We Did

Last week's bootcamp at the University of Toronto was not the most successful one we've ever done: quite a few registrants didn't show up, and based on feedb...
March 01, 2012

Inscight from Trieste

In the latest Inscight podcast, the inimitable Katy Huff talks to several of the participants in the bootcamp she and Tommy Guy are leading at the Internatio...
March 01, 2012

Inbound and Outbound for a Day

My contribution to the #OpenInbox meme summarizing one day’s worth of email—in my case, February 28, 2012. There were 103 inbound (⇒), and 80 outbound (⇐). ...
February 29, 2012

Worth Reading, Worth Watching

The PLoS Computational Biology article "Ten Simple Rules for Getting Help from Online Scientific Communities" has a lot of good advice. Mark Guzdial's talk ...
February 29, 2012

Reproducibility Redux

A recent editorial in Nature, and a longer article by Darrell Ince, Les Hatton, and John Graham-Cumming titled "The case for open computer programs", are jus...
February 28, 2012

Frustration (continued)

It's been a frustrating couple of days. To recap, I want to convert our material from PowerPoint to HTML5 to make it easier for people to fork and merge, to ...
February 27, 2012

Badges (Finalized)

We have finalized our first set of Software Carpentry badges—with luck, we'll list the first set of recipients later this week. for people who comp...
February 27, 2012

Fourth (or Sixth) Online Tutorial

For the past four weeks, I've been meeting online with learners from the Space Telescope Science Institute to work through some Python topics and exercises. ...
February 24, 2012

Converting PowerPoint to SVG: Help Needed

Software Carpentry has 110 PowerPoint files, each containing between 20 and 120 slides—call it 5000 slides in total. I’d like to convert them to HTML5 for us...
February 22, 2012

What Deep Thoughts Look Like

Before writing yesterday's post about assessment, I should have explained what I mean by"fundamental concepts". I'll start with Lewis Epstein's wonderful bo...
February 22, 2012

Watch Me: Trial Run

A dozen people have come forward since I asked last week for volunteers to make short screencasts showing how they program. I just sent them a sample problem...
February 22, 2012

Granules of Research

Cameron Neylon recently posted an article titled "Github for science? Shouldn't we perhaps build TCP/IP first?" His argument is that the web's a good way to ...
February 22, 2012

Why Not* Use Python

When we started Software Carpentry back in the late 1990s, we used Perl as a teaching language instead of Python. At the time, it was a no-brainer: Perl had...
February 21, 2012

Badges (Mark 1)

One of our key deliverables for the Sloan Foundation-funded work is a badging program built on top of Mozilla's Open Badges Initiative. Riffing on our new lo...
February 21, 2012

Assessment Redux

The single biggest challenge Software Carpentry faces right now is how to tell what impact it's having. This is only partly to satisfy funders—as I sai...
February 21, 2012

A Flash (well, MP4) from the Past

In July 2009, we held a one-day symposium on open science at the University of Toronto. I recently uploaded video from those talks to YouTube; the audio is a...
February 19, 2012

How They See Us, Part N

This week's Ed-Tech Podcast from Steve Hargadon and Audrey Watters discusses Software Carpentry a bit around the 23:00 mark [1]. In answer to Hargadon's poin...
February 16, 2012

Teachers Matter - Do Programmers?

Raj Chetty and John Friedman (Harvard), and Jonah Rockoff (Columbia) recently published a study showing how much long-term impact teachers have on students. ...
February 16, 2012

I Have Seen the Future…

…and its name is Bret Victor. (Jump ahead to 7:00 and watch for a couple of minutes if you need to be persuaded…)
February 15, 2012

Slide Drive

I just posted a note on the Software Carpentry site about Slide Drive, a new HTML5+audio slideshow tool from David Seifreid. Please check it out and let us k...
February 15, 2012

Watch Me: Volunteers Wanted

Back in 2007, Jon Udell observed that screencasts facilitate accidental knowledge transfer in a way that more traditional media don't. As I said yesterday, w...
February 15, 2012

And Speaking of New…

...check out Bret Victor's talk at CUSEC 2012—jump in around the 7:00 mark and watch for a couple of minutes. You'll want to go back and watch the whol...
February 15, 2012

Stack Underflow?

Circling back to an earlier post, one of the challenges free-range learners face is where to get help after their workshop or short course is over. Google is...
February 14, 2012

New Kinds of Content

Mark Guzdial, whose blog on CS education is always interesting, recently posted about using worksheets to help people learn to write programs. As he says, re...
February 14, 2012

How Many Legs Does Science Have?

Back in 2010, Moshe Vardi wrote an opinion piece titled "Science Has Only Two Legs", in which he argued that computational science is just another form of ex...
February 13, 2012

Formatting Revisited

David Seifreid has been working for the past week to combine deck.js, a Javascript-plus-CSS slideshow package, with the AudioJS audio player, so that we can ...
February 13, 2012

Pre-Workshop Questionnaire

I've been asking people to fill in the short questionnaire below before our workshops in order to give us a better idea of what they want and what they alrea...
February 12, 2012

Audrey Watters on Software Carpentry

Audrey Watters is a prolific, insightful writer on all things related to technology and education. I recently asked her to take a look at this course, and te...
February 10, 2012

We’re Going to Be Busy

Here are the bootcamps we have lined up for the next few months: International Center for Theoretical Physics, Trieste, February 18 — March 2 Universi...
February 03, 2012

First Online Tutorial

Our first online tutorial with the folks at the Space Telescope Science Institute via Skype, and I think it worked well. Our setup was: The students got tog...
February 03, 2012

Where To Host Q+A and Discussion?

People have questions and want answers, or ideas and complaints they want to share. Right now, the only ways for them to do this on our site are: Mail us. A...
February 02, 2012

On Algorithmic Thinking

“You keep using that word. I do not think it means what you think it means.” – Inigo Montoya
February 01, 2012

Old Soup in New Bowls

In a recent podcast, the always-interesting Audrey Watters talks about the tension between innovators who want to use technology to disrupt existing models o...
February 01, 2012

Re-doing the Three-Minute Pitch

It's time to revise Software Carpentry's three-minute pitch. Here's what I think I need to say; as always, comments would be welcome. Opening slide: large lo...
February 01, 2012

Reorganizing This Web Site

It's time to reorganize this web site. Here's my plan; comments would be welcome. In particular, WordPress might not be the right tool to use going forward, ...
January 31, 2012

I Hope Someone Has Already Built This

Over the next few months, I want to experiment with at least four new learning formats for Software Carpentry. The baseline is what we have now: each topic i...
January 31, 2012

Terminology

Before going further with the redesign of the Software Carpentry curriculum, I need to define a few terms and their relationships. These definitions refer to...
January 29, 2012

Learners and Their Needs

I originally wrote these descriptions as part of a post on formats for learning material. I'm finding them useful in other contexts as well, so I'm re-postin...
January 29, 2012

Well, That Was Weird

It’s amazing what you can learn when you don’t have cable TV: peaceful.com says "coming soon". joyful.com is a one-man software shop. At least he's Irish....
January 26, 2012

The Big Picture

I'm trying to be systematic about re-designing the core curriculum of Software Carpentry. So far, I've identified 11 common questions: Q01: How can I writ...
January 25, 2012

21st Century Textbooks

Apple’s announcement, blah blah blah—I think Audrey Watters’ “Apple and the Digital Textbook Counter-revolution” sums it up best. So what should a “textbook”...
January 24, 2012

Test-Driven Public Speaking

Once again, Cameron Neylon explains things much better than I ever could: "The impact factor of a journal is a better predictor of the chances of a paper bei...
January 24, 2012

Take Out Agile, and Add…What?

Based on the feedback we've received so far (both as comments and by email), it looks like we should take development methodologies (i.e., agile development)...
January 24, 2012

Badging

One of the things we need to do in the next six months along with running workshops and updating our online content is to create some sort of badging to reco...
January 24, 2012

A Better Solution to the Final Problem

I enjoyed the first three episodes of BBC's Sherlock. I was disappointed by how episode 4 (the first of the newest trilogy) resolved episode 3's hangover, bu...
January 23, 2012

Welcome to Gravenhurst

OK, so on the one hand we have online education growing by leaps and zounds, until anyone who really wants to do a quality university degree can do so from t...
January 23, 2012

Revising the Curriculum

I've been thinking some more about what the foundation and core of Software Carpentry actually are (and not just because Jon Pipitone keeps pestering me to d...
January 23, 2012

We Have Nothing To Give Them

I have sometimes dreamt that when the Day of Judgment dawns and great conquerors and lawyers and statesmen come to receive their rewards&mdas...
January 21, 2012

The First Bootcamp of 2012

We just wrapped up the first bootcamp of 2012 at the Space Telescope Science Institute. 14 scientists with a wide variety of computational backgrounds spent ...
January 20, 2012

By Any Means Necessary

I was passionate about politics when I was in my twenties, mostly because I was desperate for something to be passionate about. (I had friends who felt as st...
January 20, 2012

Our First Challenges

The P2PU course I’m leading on teaching programming to free-range learners [1] officially kicked off this week. The first two challenges are up. First, comp...
January 17, 2012

Why Is This Hard?

I've been teaching scientists to program since 1998 (or 1986, if you want to start with my first lunch-and-learn for grad students in physics at the Universi...
January 15, 2012

So, Greg, What Are You Up To These Days?

I’m glad you asked: Today was my last day at Side Effects; thanks to a grant from the Sloan Foundation, I start work on Software Carpentry again on Monday....
January 14, 2012

Ode to Joy on a Punching Bag

The Internet of Things is already here: it’s just strangely distributed. (I’d probably exercise more if I had one of these, and yeah, a gym full of them wou...
January 12, 2012

Settings Our Sights a Little Bit Lower

A couple of days ago, I posted replies to some of the comments that people had made on my posts about Software Carpentry's future. To recap, I want SC to: o...
January 04, 2012

Back to top ↑

2011

The Fire Last Time

Back in November, Justin Reich wrote a post titled "Will Free Benefit the Rich?" (re-posted as "Open Educational Resources Expand Educational Inequalities")....
December 31, 2011

Some Responses to Some Comments

Several people have written some useful comments on my recent "where are we going?" posts. It's exactly the kind of feedback I was after, so here are my answ...
December 31, 2011

Rethinking Software Carpentry

I’ve spent some time in the last two weeks thinking about what I’ve learned from Software Carpentry, and how to move it forward. I think a lot of the ideas a...
December 30, 2011

Fork, Merge, and Share

As George Pòlya said, sometimes the best way to solve a problem is to solve a more general one. In that spirit, this post was originally going to be a...
December 30, 2011

What Success Looks Like Five Years Out

Having talked about what I've learned and how well our teaching measures up, I'd like to explore what success would actually look like for Software Carpentry...
December 24, 2011

What I’ve Learned So Far

I worked on Software Carpentry full-time for a year starting in May 2010. In that time I created over 140 PowerPoint decks, about 12 hours of video, and taug...
December 20, 2011

It Just Keeps On Hurting

I received email a few days ago from someone who had just found this site (reproduced here with permission): I am working on getting myself set up to do scie...
December 20, 2011

Na Shledanou

He made the world a better place, and he never took himself too seriously. Really, can any of us hope for a better epitaph?
December 19, 2011

Looking for Grassroots Teaching Groups

I’m looking for grassroots organizations that are trying to teach webcraft and programming to free-range (non-classroom) learners of all ages. So far, I know...
December 18, 2011

PowerPoint + Visio, but in Javascript?

I’ve been complaining for a couple of years now about not being able to use HTML + Javascript as a replacement for PowerPoint. Yes, it’s easy to put images a...
December 16, 2011

And Then… A Preview

A free preview of And Then…, the children’s book Ellen Hsiang and I created, is now online. We hope you enjoy it (and there’s still time to order a printed c...
December 02, 2011

Direct Reports and Self-Directed Learning

Imagine you’ve just been hired for a creative, thinking-intensive job, and then you discover that your boss has 19 other people reporting to her as well. How...
December 01, 2011

Where’s My Shell?

My first programming language was PL/1. (Look it up if you need to, kid.) My second was Pascal, and then in the summer of 1982 I was introduced to two more: ...
November 30, 2011

Good News and Bad News

The good news is, the Khan Academy has finally added some lectures on programming. The bad news is, the lectures build toward Fibonacci sequences and sorting...
November 30, 2011

The Greatest Story Never Told

A good TV drama needs heroes and villains, romance, momentum, crackling dialog, and the occasional chase scene (gunplay optional). Which makes me wonder: why...
November 30, 2011

Rewind

I have an idea for a game, but no time to implement it, so I'm going to throw it out in the hope that some interwebby young'un with time on her/his hands wil...
November 29, 2011

Three Short Thoughts

A BBC article title "Coding — the New Latin" resonated: Latin was the language of learned discourse in the formative years of modern science, but not ...
November 29, 2011

Accessible to All?

Back in the late 1990s, I volunteered for a while with the CNIB helping a young woman finish off her high school diploma. (She was already in college, but th...
November 18, 2011

Show Me the Data

I got mail from a colleague at a prominent US university yesterday saying (in part, and elided to protect the guilty): ...the graduate student representative...
November 18, 2011

Quantifying Installation Costs

A few months ago, I tried to quantify the cost of poor software skills. A recent post from Adam Klein gives is a good excuse to try to do something similar f...
November 18, 2011

Two Steps Forward, Two Steps Back?

The November/December 2011 issue of IEEE Software has a good article by Markus Völter titled, “From Programming to Modeling—and Back Again”. In it, the autho...
November 14, 2011

Here’s What I’ve Learned So Far

Heather Payne is smart, hard-working, and not afraid to dive into things she doesn’t know. Starting from nothing more than a tweet six months ago, she and he...
November 14, 2011

Surviving the Tsunami

The October 2011 issue of ACM Queue features an article by Bruce Berriman and Steven Groom titled "How Will Astronomy Archives Survive the Data Tsunami?" The...
November 14, 2011

Clearing Up Code

The November/December 2011 issue of IEEE Software has a good article by the Climate Code Foundation's Nick Barnes and David Jones titled "Clear Climate Code:...
November 14, 2011

The Best vs. the Good

Cameron Neylon recently posted another thought-provoking piece, this one titled, "Building the perfect data repository...or the one that might get used". In ...
November 08, 2011

The 1970s Called…

By popular demand [1], I am growing a ‘stache for Movember. If you’d like to donate to the cause, you can do so here. Thanks.
November 02, 2011

Well That Certainly Got Some Attention

We recently posted a note on the Never Work In Theory blog about a paper presented at PLATEAU 2011 which reported that novice Perl users were unable to write...
November 01, 2011

D is for Digital

Brian Kernighan’s new book D is for Digital has arrived. As the subtitle says, it is, “What a well-informed person ought to know about computers and communi...
October 31, 2011

Looking for a Writing Space in Toronto

Years ago, a musician I knew had a studio near King and Bathurst. He wasn’t an early riser, so we made a deal: two or three mornings a week, I went in around...
October 24, 2011

Demand Fair Play for Fauja Singh

I just sent the following to adjudication@guinnessworldrecords.com; please add your voice. Damn birthers are everywhere these days…
October 24, 2011

Research Without Walls

I just signed the “Research Without Walls” pledge: effective today,I will assist in the peer review process (as a reviewer, board/committee member, chair, ed...
October 22, 2011

Three Empirical Studies From ESEC/FSE’11

As our previous post said, a lot of interesting work was presented at the joint ECSE/FSE conference in September. Three of my favorites reporting empirical s...
October 22, 2011

Three Results, Many Definitions

The joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering took place Septemb...
October 22, 2011

What I Like Doing

I was talking with a friend Wednesday evening, grumbling a bit about how short life is and how many things I’ll never get to. He asked me, “Well, what do you...
October 21, 2011

At the Risk of Repeating Myself…

An article that Jorge Aranda and I wrote for American Scientist about empirical studies of software engineering is now up on the web. We hope it’s a good int...
October 19, 2011

The Science Code Manifesto’s Five C’s

The Science Code Manifesto comprises five core principles: Code: All source code written specifically to process data for a published paper must be availabl...
October 14, 2011

Running Partners

I spoke last week with a woman in her mid-twenties who is working at her first start-up, and would like one day to start a company of her own. I asked her wh...
October 11, 2011

Hiring

Are you a talented programmer in the Toronto-Guelph-Kitchener area, interested in joining a startup run by one of the smartest guys I know that’s launching a...
October 07, 2011

Insufficient Purity Considered Harmful

Joseph Hellerstein, a professor in the Computer Science department at UC Berkeley, posted an article on his blog a couple of weeks ago titled, “Is Teaching M...
October 06, 2011

D Is For Digital

Brian Kernighan, whose books on C, Unix, and programming design shaped the thinking of an entire generation of software developers, has a new book out called...
October 05, 2011

Revamping This Site

We have been using WordPress as a content management system (CMS) for Software Carpentry since the launch of Version 4 in July 2010, and while nothing in par...
October 05, 2011

A Buddhist For Three Weeks

I was a Buddhist for three weeks back in the fall of 1985. I had just moved to Edinburgh, ostensibly to do a Master’s degree in artificial intelligence, but ...
September 27, 2011

And Then…

Ellen Hsiang and I are pleased to announce that And Then…, our children’s book about life, the universe, and climate change, is now available for purchase fr...
September 22, 2011

Slightly Narcisissistic

So here’s me, blogging about where my Twitter followers are from. Yes, you may tell me to get a life…
September 22, 2011

Plus Ca Change…

Once again, Compute Canada has sent out a document for "review" without leaving time for people to provide meaningful input. And once again, it's all about ...
September 22, 2011

I’m Not Normally Lost for Words

I mentioned last week that I'm trying to put together a lecture on packaging and installation. It's proving harder than I expected: I'm not normally lost for...
September 20, 2011

Past and Future

Two articles I read over the weekend neatly encapsulate the past and future of software engineering research (at least, the kind of SE research that I’m inte...
September 19, 2011

The Simplest Web That Could Possibly Work

A new web tool called If This Then That generated a flurry of interest this week (see for example Scott Hanselman's blog post). Simply put, IFTTT lets you co...
September 17, 2011

Extensible Programming: A New Hope

Back in 2004, I wrote an article for ACM Queue titled “Extensible Programming for the 21st Century”. In it, I argued that it was time for programming languag...
September 16, 2011

Progress Of A Sort

As I mentioned a few months ago, I'm going to turn Software Carpentry into a book. Here's the present status: Chapter Word Count Introduction 768 Spr...
September 13, 2011

Lovecraft and the Tea Party

The sciences, each straining in its own direction, have hitherto harmed us little; but some day the piecing together of dissociated knowledge will open up su...
September 09, 2011

What Happens When You Install Something?

The most frustrating part of this course is always getting things set up on students' machines. (Yes, we could give them all a Linux VM with everything insta...
September 08, 2011

Don’t Touch My Code!

Christian Bird, Nachiappan Nagappan, Brendan Murphy, Harald Gall, and Premkumar Devanbu: "Don't Touch My Code! Examining the Effects of Ownership on Software...
September 05, 2011

Where is the Puck Going to Be?

Looking at the schedule for Science Online London 2011 makes me feel that Software Carpentry is showing people how to solve yesterday's computational problem...
September 05, 2011

Teaching Security to Scientists

Thanks to everyone for their suggestions regarding what we should teach about computer security if we only have one hour (the usual constraint for topics in ...
September 02, 2011

AOSA Volume 2 Roster

Volume 2 is going to be another great book: Apache Derby: Tiago Espinha Diaspora: Sarah Mei Distributed Systems: Kate Matsudaira Erlang/OTP: Elise Huard...
August 25, 2011

And We’ll Change The World

“…love is better than anger. Hope is better than fear. Optimism is better than despair. So let us be loving, hopeful and optimistic. And we’ll change the wo...
August 24, 2011

Code Coverage in Lernanta

Percentage of statements covered by tests as a function of module size. Yes, I know, statement coverage isn’t a good way to assess the quality of testing, bu...
August 22, 2011

First Draft

I have posted a much longer version of my story Still, which ran in On Spec last summer. It’s intended for young adult readers, but feedback from readers of ...
August 21, 2011

Indivica is Hiring

Indivica is looking for developers and support engineers to help extend and deploy OSCAR, an open source electronic medical record system used in small and m...
August 21, 2011

Today Was a Good Day

Sadie and I went out to Table 17 for our anniversary last night while Dee babysat Madeleine. The food was delicious, and afterward, we walked home along Quee...
August 21, 2011

Spelling, Fairness, and JavaScript

My daughter has been sounding out words for a while now, and in the last couple of weeks has gone from c-a-t to “B-os-ton” (as in “Boston Pizza”). A couple ...
August 18, 2011

Three Empirical Evaluations of UML

Like a lot of people (particularly those with engineering backgrounds), I was very excited when UML first appeared in the mid-1990s. "At last," I thought, "P...
August 17, 2011

Introducing Programming a Different Way

Our quick introduction to Python is the module I'm least happy with, so I've been thinking about how to re-design it. I've included a new outline below; comm...
August 08, 2011

Muriel (Jo) Campbell: 1930-2011

My Aunt Jo passed away last night at the age of 81. She’d been ill this past winter with pneumonia, but it was finally her heart that failed. I’m sorry my ...
August 06, 2011

Team!

It’s just a week ‘til the first Ladies Learning Code workshop in Toronto, and the list of instructors is pretty impressive. Thanks in advance to: Pearl Ch...
July 29, 2011

Cheese!

Home-made and delicious.
July 29, 2011

My OSCON’11 Hall of Fame

Seven years ago, Michelle Levesque and I wrote in “Open Source, Cold Shoulder”: Proponents of free, libre and open source software (FLOSS) often describe the...
July 24, 2011

Software Carpentry in HPCWire

HPCWire has run an interview with me about Software Carpentry (a follow-up to one they did several years ago). Regular readers will have seen the main point...
July 22, 2011

The Case of Abinit

The latest issue of Computing in Science & Engineering has a good article by Yann Pouillon, Jean-Michel Beuken, Thierry Deutsch, Marc Torrent, and Xavier...
July 20, 2011

How Much Do You Need?

Michigan State's Titus Brown has posted a good discussion of what kind of computing hardware you need to do bioinformatics, and why. Long story short, it's a...
July 20, 2011

And Speaking of Titus Brown…

Michigan State's Titus Brown recently ran his course on analyzing next-generation sequencing data for the second time. Judging from his report, it was just ...
July 20, 2011

Wait, Not That Bit!

We all do it. We start fixing something over here, in this file, then notice something unrelated ten lines above in a different method that should be cleane...
July 20, 2011

Debugging in the (Very) Large

Kinshuman Kinshumann, Kirk Glerum, Steve Greenberg, Gabriel Aul, Vince Orgovan, Greg Nichols, David Grant, Gretchen Loihle, and Galen Hunt: Debugging in the ...
July 18, 2011

Learning Lernanta: August 6

Following up on Wednesday’s post, it looks like Saturday, August 6, is a better day for a Lernanta code-in than July 23. Four people have said they’re inter...
July 15, 2011

The Finger Is Not The Test

When Buddhists want to remind themselves that scripture is a guide, not a goal, they say, “The finger pointing at the moon is not the moon.” I think we need ...
July 15, 2011

Learning Lernanta

Lernanta is the web application that powers p2pu.org, the peer-to-peer university project backed by Mozilla. On Saturday, July 23, Zuzel Vera Pacheco (its le...
July 13, 2011

Grown-Up Languages

A few days ago, after browsing the Coffeescript docs and examples, I tweeted, “I will take your new language seriously when you have a symbolic debugger for...
July 12, 2011

Stanford Course Went Well

Prof. Risa Wechsler, along with Alex Ji and Zahan Malkani, recently ran a short course at Stanford based in part on Software Carpentry called Physics 91S1: P...
July 10, 2011

Cross-Country Student Projects This Fall

Karen Reid has posted some news about this fall’s cross-country undergrad capstone open source projects (now you see why we call it “UCOSP”). Google has onc...
July 09, 2011

Home Again

It’s good to be home… We enjoyed our time in San Francisco, and I think the workshop at CEF’11 went well, but the real point of the trip was to visit my pare...
July 09, 2011

Reproducible Computational Geophysics

A summary of a recent workshop on Open Software Tools for Reproducible Computational Geophysics is now online. Lots of interesting stuff, and once again, th...
July 06, 2011

Mentioned in Nature Methods

A recent article in Nature Methods by Jeffrey Perkel titled "Coding your way out of a problem" makes mention of Software Carpentry. Elsewhere, Mike Croucher...
July 01, 2011

Let’s Go to the Whiteboard

Mauro Cherubini, Gina Venolia, Rob DeLine, and Andrew J. Ko: "Let's Go to the Whiteboard: How and Why Software Developers Use Drawings". CHI 2007. Software d...
June 30, 2011

It Will Never Work in Theory

Inspired in part by Lambda the Ultimate, which reports on what’s new in programming language research, Jorge Aranda and I have started a new blog called “It ...
June 29, 2011

Architecture Stats

In case you were wondering, The Architecture of Open Source Applications is now averaging about 4200 page views a day. (The stats are corrupted a bit by all...
June 26, 2011

Doing the Math

Let's do some math. Suppose that working through the Software Carpentry course takes the average scientist five full-time weeks. It doesn't matter whether th...
June 20, 2011

Health Informatics Resources

Via William Hopper, a list of online healthcare informatics resources that might be of interest to some readers. If you have others, I'm sure he'd enjoy hea...
June 18, 2011

Mostly Pleased, But…

We have started recruiting for the second volume of The Architecture of Open Source Applications, and while I’m mostly pleased with how it’s going, there’s o...
June 15, 2011

A New Look

I'm fond of the Software Carpentry logo, but the blue-to-white color fade is difficult to print on coffee mugs, and impossible to embroider on shirts. Thank...
June 14, 2011

It Shouldn’t Still Hurt This Much

Silly me: I want to use RapidSVN on Windows Vista. Which means I need to install WinMerge so that I can view and merge diffs. So I do that, then try to diff ...
June 13, 2011

"Daddy, What’s Wrong?"

That was my daughter’s reaction when I came downstairs in a suit on Friday morning :-). But it was all in a good cause: Zuzel Vera Pacheco and Mike Conley, ...
June 12, 2011

Now Available on Kindle

Thanks to heroic effort from Ian McDowell and Amy Brown, The Architecture of Open Source Applications is now available for the Kindle at Amazon.com for $9.99...
June 11, 2011

Hermes FTW

A lot of work got done on a lot of great projects at last weekend’s Random Hacks of Kindness; one of the most exciting was the Hermes Message Carrier, an ad ...
June 10, 2011

Summary of ICSE Panel

Jorge Aranda has posted a good summary of the panel session at at ICSE on “What Industry Wants From Research”. We hope to have more news soon…
June 09, 2011

Blueprints Are Not Architecture

As I wrote a couple of week ago, one of the reasons I started The Architecture of Open Source Applications project was to fill a gap I stumbled over while te...
June 07, 2011

Thanks, Google!

We are very pleased to announce that the Open Source Programs Office at Google has agreed to provide support so that Amy Brown can continue to work part-time...
June 04, 2011

Refactoring Yahoo! Pipes

I’ve been griping on Twitter about the fact that the official copies of most IEEE and ACM papers are hidden behind paywalls, which is a great way to ensure t...
June 03, 2011

T Plus 10 Days

So how is The Architecture of Open Source Applications doing?
June 02, 2011

Tagging (Again)

I have two logical entities in my database—call them Place and Thing—and I would like to be able to add tags to instances of both kinds. I’d like those tag ...
June 01, 2011

Blue Pencil for Hire

Amy Brown, my co-editor on The Architecture of Open Source Applications, is available for freelance work. High quality, reasonable rates, knows her way aroun...
June 01, 2011

Workshop at CEF’11

I will be giving a one-day workshop on software skills for computational economists at the 17th International Conference on Computing in Economics and Financ...
June 01, 2011

85K

The Architecture of Open Source Applications site has had over 85,000 visitors in the eight days since we launched. Nobody has asked about using it as a text...
May 31, 2011

My New Job

In all the excitement, I forgot to mention that I started a new job three weeks ago: I’m now working for Side Effects Software, makers of a world-class visua...
May 29, 2011

Coming Up Next (We Hope)

The Architecture of Open Source Applications was always meant to be the start of something, not the end. We’d really like to collect more descriptions of com...
May 29, 2011

You Doesn’t Exist

The title of this post is not grammatically incorrect, and therein lies a story. I've had more than a dozen emails since The Architecture of Open So...
May 28, 2011

What’s There Instead

"The real grand challenge for software engineering research is relevance." I’m not particularly observant at the best of times—it’s one of the reasons I don’...
May 28, 2011

How We Got Here, and Where We’re Going

I got my first programming job in the summer of 1982, rewriting an RSA encryption library in C for Prof. Selim Akl at Queen’s University. One of the older s...
May 26, 2011

Beta Book

We have our first copy of the book! And it’s beautiful: Well, except for a few of the diagrams, and a couple of typos, and, well, we’re going to call this ...
May 19, 2011

Catalog Models Like Views and Controllers

The Model-View-Controller (MVC) pattern is the bedrock of most modern applications: models are what’s stored, views are what’s presented, and controllers det...
May 18, 2011

Greg’s New Gig

I enjoyed working on Software Carpentry last year, but money for a second year failed to materialize, and after seven years doing other things, it felt like ...
May 16, 2011

More Interested in the Asides

So how did the term go, you ask? Here's what traffic on this site looked like: The three spikes in March where we had up to ten times our usual 250-a-day v...
May 14, 2011

End of an Era

The drproject.org domain is up for renewal—but we’re not going to. Learned a lot from the project, and I think students did too, but in retrospect, I should ...
May 13, 2011

AOSA Is At The Printer’s

The Architecture of Open Source Applications is now at the printer’s—we’re going to give the first copy a final going-over, then make it available for purcha...
May 06, 2011

Competence

When I first saw Starling Software’s Programmer Competency Matrix, I was struck by the parallels between its four levels and the first four of the five that ...
April 26, 2011

Sunday

Today, my friends Jorge and Val welcomed their first child, Aurora Aranda-Cortés, into the world. And today, for the first time in nine years, my sister and ...
April 25, 2011

In Praise of Street Fighting

Sanjoy Mahajan's Street-Fighting Mathematics is subtitled "The Art of Educated Guessing and Opportunistic Problem Solving". As the author says in the introd...
April 22, 2011

Holding Up a Mirror

Cameron Neylon always has interesting things to say. In a recent talk, he commented on my tendency to idealize laboratory practice when contrasting it with t...
April 18, 2011

Prototyping

The numbers might not make sense, but I'm still curious about whether Software Carpentry would make sense as a book. To find out, I spent five hours convert...
April 11, 2011

By The Numbers

So what next for Software Carpentry? One possibility is to turn the scripts for the episodes, the examples, and the diagrams in the slides into a book. Let's...
April 09, 2011

Table of Contents

If all goes well, The Architecture of Open Source Applications will be available for purchase by the beginning of May. As a teaser, there’s a table of conten...
April 08, 2011

It’s Complicated

Two people asked me “how are things?” this morning just a few seconds apart. My answer is, “I need a job, my sister has two months (maybe three), and we’re ...
April 06, 2011

PyCamp Toronto June 27-30 2011

The University of Toronto Department of Physics brings PyCamp to Toronto on Monday, June 27 through Thursday, June 30, 2011. Register today at http://trizpu...
April 05, 2011

An Ounce vs. A Pound

Run for the Cure, Ride for the Cure, Dance for the Cure—they have saved a lot of lives, and I have nothing but respect for all the people who have organized ...
April 03, 2011

Harder Than It Should Be

Someone once said, "Chemistry is basically anything chemists will give each other awards for doing." Or something like that—Google doesn't find matche...
March 31, 2011

And I’m on a Horse

Patrick Mackenzie (whom I've never met) gave a good lightning talk at the Business of Software that sums up a lot of what we haven't done for Software Carpen...
March 26, 2011

You’ll Need a Large Screen

I've been working on a graph showing the connections between the questions this course tries to address, our answers to them, the knowledge and skills neede...
March 22, 2011

I’d Settle for 0.1%

In a recent article about computational thinking, Carnegie-Mellon's Jeannette Wing says: ...every scientific directorate and office at the National Science ...
March 22, 2011

Videos of Autumn School Lectures

I'm pleased to announce that video recordings of the Software Carpentry lectures I gave in London last fall are now online at http://soundsoftware.ac.uk/autu...
March 21, 2011

The Kind of Job I Want

All right: what kind of job do I want? It’s a fair question, and since I’ve often asked students what they would work on if someone offered to pay their sal...
March 20, 2011

On a Personal Note…

Since money hasn't materialized for another year of full-time work on this course, I'm now looking for a job. My CV is up to date, and my interview shoes ar...
March 18, 2011

Questions and Answers

A first cut of a question-and-answer matrix for this course is now up for viewing. It doesn't include everything, and the answers aren't particularly helpfu...
March 17, 2011

More Changes

It’s trivial by comparison, but since money hasn’t materialized for another year of full-time work on Software Carpentry, I’m now looking for a job. My CV i...
March 16, 2011

A Season of Changes

The snow is melting here in Toronto. It was warm enough yesterday for me to ride my bike to work, and to walk my daughter home from daycare. But other chang...
March 15, 2011

Twenty Questions (Minus Two)

Following up on last week's musings about reorganizing the course, we've drawn up eighteen questions that we think cover the reasons people come to this cour...
March 15, 2011

Dying Breeds

When I was teaching at Los Alamos National Laboratory in the late 1990s, a team of archivists was going around recording old-timers so that their tacit knowl...
March 12, 2011

What To Demand

Peter Norvig (formerly of NASA, now at Google) recently gave a talk titled "What to Demand From a Scientific Computing Language". It's a good talk (and not ...
March 12, 2011

Musing About Reorganization

I'm increasingly unhappy with the organization of this course. On the off chance that funding materializes and we're able to undertake a major redesign, I'd...
March 11, 2011

Who’s Cribbing Who?

Another entry in the “why didn’t I think of that?” category is Churnalism.com; as David Eaves explains, it compares “news” articles to a database of press re...
March 09, 2011

Usability of Programming Languages

Alan Blackwell’s course at Cambridge on the usability of programming languages has as its text a selection of chapters from a 1990 book on the psychology pro...
March 09, 2011

University of Toronto Venture Competition

http://uoftventurecompetition.wordpress.com/ is aimed at Computer Science students who want to try commercializing an idea this summer—give it a whirl!
March 09, 2011

High Tech That Looks Low Tech

These videos about climate change are great: they look low tech, with hand-drawn diagrams and low-fi narration, but I imagine a lot more work went into their...
March 09, 2011

Literate Programming

Last week's post about the tuple space programming model was so popular that I thought readers might enjoy a discussion of another beautiful idea that failed...
March 07, 2011

We Got a Mention in Comm. ACM

The March 2010 issue of Communications of the ACM has an article on grid computing that mentions Software Carpentry and Titus Brown's course at Michigan Stat...
February 25, 2011

An Easy Place to Start: Systems Programming

As a follow-up to recent posts on how to contribute, what better looks like, and Elango Cheran's secure shell episode, here's a specific request: we would li...
February 24, 2011

What Better Looks Like

Paradise is exactly like where you are right now... only much, much better. — Laurie Anderson It's hard to make things better if you don't know what "b...
February 22, 2011

Sweaters

I’ve only owned one store-bought sweater in my life; all the rest have been made for me, mostly by my mum. Her arthritis won’t let her knit any more, but I t...
February 20, 2011

Giving Ourselves Permission

There’s a line from Alan Furst’s 1930s-era spy novel Dark Star that has stuck with me: “We need people who can do good, and not get caught.” It came to mind ...
February 18, 2011

Scientific Computing Podcast

inSCIght is a podcast that focuses on scientific computing in all of its various forms. Every week we have four panelists engage head-to-head on poignant and...
February 18, 2011

Reddit on Scientific Programming

Nature's article on scientific computing has attracted 75 comments on Reddit. Some interesting ideas being kicked around; please go ahead and add your own.
February 17, 2011

I Want Their Software

This blog post about the Khan Academy might gush a bit, but the embedded video is a must-watch for anyone who cares about education. I really want their soft...
February 16, 2011

How to Contribute

Following up on yesterday's post, I have written a short guide explaining how you can help Software Carpentry improve and grow. Reporting bugs, suggesting c...
February 16, 2011

Top Ten Why Nots

We've had quite a few firsts and successes in the past ten months, but our biggest failure continues to be the lack of contributions from users and educators...
February 15, 2011

If I Was 19…

…and trying to figure what’s going to be cool when I graduate, so I could learn about it now, I’d be messing with this kind of stuff: a WebGL plugin to help ...
February 11, 2011

Ground Up, in No Particular Order

I’ve said for years that extensible programming systems wouldn’t be designed per se; they’d emerge from the ground up as a younger generation left lines of A...
February 11, 2011

DemoCamp 28 on Feb 22

DemoCamp Toronto # 28 is happening February 22, 2011 at Ryerson University. Event Details: http://wp.me/srS6B-dct28 Buy a Ticket: http://guestli.st/45021 ...
February 09, 2011

Let’s Talk

Today is Let's Talk Day, so let's talk. I'll go first: starting when I was 19, I had bouts of depression every 12-18 months for a little over 20 years. Some ...
February 09, 2011

What Computational Science Means to Me

My latest attempt to define what "computational thinking" actually means is now on the web in draft form—comments would be very welcome. In brief, the ...
February 08, 2011

StreetKnit on Canada AM

StreetKnit, a charity that collects knitted goods for the homeless, will be on Canada AM this coming Monday (January 31). I’m looking forward to Maddie seein...
January 28, 2011

Bootcamp

A couple of weeks ago, I went to the University of Wisconsin — Madison to speak at a three-day software skills bootcamp run by The Hacker Within, a gra...
January 27, 2011

Thinking Like the Web

Jon Udell’s 1999 book Practical Internet Groupware was a revelation for me: it was the first coherent explanation I’d ever read of how the disparate collecti...
January 26, 2011

The Case Against Peer Review

Cameron Neylon recently made the case against peer review once again; the dialog near his posting's end is too accurate to be funny. In this light, calls fo...
January 26, 2011

Software Carpentry Sprint in July

Well this was a nice birthday present: the Python Software Foundation announced today that they will provide some support for a Software Carpentry sprint in ...
January 26, 2011

A Week of Public Accountability

I’m three weeks into 2011, and two weeks behind on everything. Where does the time go? I'm supposed to be working full-time on Software Carpentry, but betw...
January 23, 2011

Scientists Aren’t Stupid: Software Is

Last night, Mike Bayer (@zzzeek) tweeted: Why are "scientists", who are so dramatically smarter than me, such dumdums when it comes to basic programming skil...
January 21, 2011

AOSA Update

The Architecture of Open Source Applications is in its final stretch (I hope). We’ve got most or all of what we need from: Asterisk: Russell Bryant Audaci...
January 20, 2011

MIT Rethinking OpenCourseWare

MIT's OpenCourseWare initiative was (and probably still is) the highest-profile "open and online" initiative in higher education. According to this article,...
January 20, 2011

How to Cite Software Carpentry

If you are citing Software Carpentry in papers or technical reports, the web site and the 2006 article in Computing in Science & Engineering are probably...
January 20, 2011

Demographics (part two)

Here are summaries (slightly edited) of what people taking the course do. There's quite a range... Stem cell biology, high-throughput screening, high-conte...
January 17, 2011

Demographics (part one)

As near as we can tell, here's where this term's students are from. It's quite a mix... BEACON Center for the Study of Evolution in Action, Michigan State U...
January 16, 2011

The Hacker Within

I got back to Toronto late last night from visiting The Hacker Within, a grassroots student organization at the University of Wisconsin — Madison that ...
January 14, 2011

Our Funding Pitch

A couple of people have recently asked, "How do you go about asking for money?" Applying for grants from NSERC, the NSF, and other agencies is something they...
January 14, 2011

Jon Udell in Toronto Jan 18 2011

Rethinking the Community Calendar: A Case Study in Learning and Teaching Fourth R Principles Jon Udell, Senior Technical Evangelist, Microsoft Tuesday, Janua...
January 13, 2011

NoSQL Lectures

Via Nat Torkington, a bunch of recorded lectures on NoSQL databases, all by men.
January 11, 2011

McConnell Responds to Bossavit

Laurent Bossavit recently posted a critique of Steve McConnell’s chapter in Making Software on productivity differences between programmers (French original ...
January 10, 2011

Funding (A Plea for Contacts)

I've been working full-time on Software Carpentry since the beginning of May 2010. As I said at the end of November, progress has been steady, but we're only...
January 09, 2011

What I Learned From Software Carpentry

Anna Maidens, who works for the UK Met Office in Exeter and took part in our October 2010 Software Carpentry course there, did a presentation a few weeks ago...
January 06, 2011

Cognitive Dissonance

Cognitive dissonance (n): voting for someone because they’re going to clean up the city’s finances, then supporting them when they decide to spend $344 milli...
January 05, 2011

We Are the Frogs

We all know it’s not true, but it’s still a useful story: if you put a frog in hot water, it will jump out, but if you put it in cool water and slowly boil i...
January 05, 2011

Back to top ↑

2010

In the Home Stretch

A quick update on The Architecture of Open Source Applications — we have chapters in one state or another, or firm promises, for: Asterisk Audacity Bash ...
December 30, 2010

Instead of PowerPoint

After cursing PowerPoint for eight solid months while building screencasts for Software Carpentry, I think I have figured out what I want instead. Here’s a ...
December 29, 2010

More Musings on the Value of a PhD

Yet another good post from Mark Guzdial pointed me at an article in The Economist about the value (or otherwise) of a PhD. Key stat (bold emphasis mine): A s...
December 29, 2010

Tagging and Debugging

Thanks to a cold, I had time today to catch up on some long-delayed reading. Among the highlights were two pieces of work that I wish we had been able to inc...
December 29, 2010

Falk and Dierking’s 95% Solution

The most interesting thing I read over the holiday was Falk and Dierking’s article “The 95 Percent Solution” in the Nov-Dec 2010 issue of American Scientist....
December 28, 2010

You’re Never Too Old for Space Camp

I can’t remember how I stumbled across BuyThisSatellite.org, but I’m glad I did. I’ve been a science fiction fan for (literally) as long as I can remember, a...
December 27, 2010

It’s a Shame People Don’t Get Credit

It’s a shame people only get meaningful academic credit for creating new knowledge (regardless of its importance), and not for explaining existing knowledge ...
December 27, 2010

Open Research Computation

By now, many of you have (hopefully) seen the announcement of Open Research Computation, a new journal devoted to "...peer reviewed articles that describe th...
December 27, 2010

Elimination

I'm working up another essay on software design, and would like to ask readers of this blog how they handle something that comes up when simulating interacti...
December 27, 2010

Local Subversion Repositories

A colleague in the UK who is going to teach Software Carpentry asked about setting up repositories. In particular, he doesn't have a server where he can crea...
December 26, 2010

Extended Examples

We'd like to add more extended examples to this course, both because they're fun and because they're a good way to show how our topics relate to one another....
December 23, 2010

So How’d I Do?

Back on November 9, I laid out my goals for the remainder of the year. Let’s see how I did: Time with family: yes. Help Mike and Zuzel finish their theses...
December 22, 2010

I Still Read

You wouldn’t know it from this blog, but I actually do still read books. In particular, I just finished Terrence Ryan’s Driving Technical Change: Why People ...
December 20, 2010

Executable Papers

Elsevier is sponsoring an "Executable Paper Grand Challenge". If you have more than just ideas about the future of scholarly publication in computational sc...
December 20, 2010

Building a Recommendation Engine with NumPy

Tommy Guy's explanation of how to build a recommendation engine in NumPy, based on an example from Toby Segaran's excellent book Programming Collective Intel...
December 15, 2010

Presents for the Holidays

Some of the best presents I have ever received have been recommendations: "Oh, you'd like this author," or, "You really should listen to this album." So, in...
December 14, 2010

Blinkered, Not Graceful

I wasn’t particularly hopeful when I first heard about Grace, a new programming language being developed for teaching purposes. Having followed their blog fo...
December 13, 2010

Performance and Parallelism

Some topics for a lecture on parallel programming: how to measure/compare performance (raw speed, weak scaling, strong scaling, Amdahl's Law, response time ...
December 10, 2010

Where Are My Keys?

I was looking through some Python code a few days ago, and noticed that its author was using this: if something in dict.keys(): dict[something] += 1 inst...
December 09, 2010

How Do You Manage a Terabyte?

This question has come up a couple of times, and I'd welcome feedback from readers. Suppose you have a large, but not enormous, amount of scientific data to ...
December 08, 2010

Pins, Balls, and Arbitrary Decisions

We'd like to include more extended examples like invasion percolation in this course, but they're surprisingly hard to write. One that seems simple at first...
December 06, 2010

Location Change for RHoK Toronto

Attention all RHoK Toronto participants: new location is UoT OISE Bldg 252 Bloor St West - Rooms 4410, 4414, 4418, 4420, 4422, 4426
December 03, 2010

Dr. Tae is Full of Crap

This video from Dr. Tae (whose first name is surprisingly difficult to find) is a half-hour grumble about the state of higher education. The key moment, thou...
December 02, 2010

Chapters Are Coming In…

Chapters are coming in for The Architecture of Open Source Applications. By coincidence, Tim Bray recently posted a nice, compact description of the architec...
December 02, 2010

"Making Software" Webinar on December 16

Smart Bear Software is hosting a free webinar on December 16 to discuss Making Software with some of its contributors. Please help spread the word!
December 02, 2010

Red-R

From a reader, a link to Red-R, a visual programming environment for R. The six-minute screencast on the documentation page shows what it's capable of. I don...
December 02, 2010

Programmer Competency Matrix

There's no scientific research behind this tabulation of what programmers ought to know, and some of the categorizations are unactionably vague, but it's sti...
December 02, 2010

Prerequisites (or, When to Say No)

How much should Software Carpentry assume students know before they start? Or to put a sharper point on it, how much should this course require students to k...
December 02, 2010

Peer to Peer

One of the things we think didn't work well in this term's online run of the course was peer-to-peer discussion among students. Such discussion is one sign ...
December 02, 2010

Cast Your Votes

The solstitial holiday is approaching fast, but with a bit of luck, we should be able to get one more lecture up on the web before it arrives. Topics we coul...
December 02, 2010

End of an Era

From http://basieproject.org: We have decided to wind down the Basie project and put our effort into Pinax, a collection of reusable Django components design...
November 30, 2010

We’re Number Six!

O’Reilly recently ran a “Free to Choose” promotion on e-books. According to this post, Making Software was the sixth most popular book on the list:
November 30, 2010

Winter 2011 Online Course Now Full

As of this morning, 102 people have signed up for our Winter 2011 offering—it will be the largest run of the course ever. Registration has now closed, ...
November 29, 2010

Michael Feathers on "Making Software"

Michael Feathers (author of Working Effectively with Legacy Code) has posted a 5-star review of Making Software at Amazon.com. He says: I'm going to go on r...
November 22, 2010

Mark Guzdial is Speaking in Toronto

Mark Guzdial, who has been doing top-notch research on computing education for many years, is speaking at the University of Toronto on Tuesday November 23 at...
November 21, 2010

"Making Software" Screencast

A screencast about Making Software is now up on Amazon. I had to talk pretty fast to fit their four-minute limit, but I think I hit the high points.
November 17, 2010

Ratios and Rework

It's been six months and a bit since we started working on Version 4 of this course, so I'd like to share two things we've learned about creating online tuto...
November 16, 2010

More Good Science

We’re starting to get feedback on Making Software, most of it positive (but some of it grumpy: “how dare your evidence contradict my cherished belief!”). Her...
November 12, 2010

On My Way Home

I’m on my way home after two and a half weeks on the road. I have missed Sadie and Maddie more each day—Skype video calls are a lot better than just phoning,...
November 09, 2010

Done In London

We wrapped up this week's class in London today: I think a lot of the students felt that they'd been in the wind tunnel most of the week, but the feedback wa...
November 05, 2010

University Economics

An interesting post from Carleton’s Prof. Nick Rowe about the economics of prof/student ratios (and other things). His exclusive use of male pronouns grates ...
October 31, 2010

I Wish I’d Thought Of This

Professors Leiserson and Amarasinghe teach a course called “Performance Engineering of Software Systems” at MIT. According to this article, they bring in ex...
October 31, 2010

Would You Prefer…

Here are three instructional videos that I enjoyed watching: The Crisis of Credit Visualized Math is Not Linear Changing Education Paradigms What they have...
October 30, 2010

Need Something to Debug

Following up on the previous post about the way Paul Dubois organizes good practices as "defense in depth", we would really like to include a lecture on debu...
October 30, 2010

Dubois on Maintaining Correctness

Something else I didn't get to at the Met Office last week: Paul F. Dubois: "Maintaining Correctness in Scientific Programs". Computing in Science & Engi...
October 30, 2010

An Uncertain Thing

I am pleased to announce that Volume 1 of my father’s book An Uncertain Thing: A History of Childhood in the Western World is now available, and that Volumes...
October 28, 2010

Feedback at UKMO

I've just finished teaching a four-day version of the course at the UK Met Office in Exeter. I think it went reasonably well, even if we did version control ...
October 28, 2010

ComputerWorld Canada Educator of the Year

I am pleased to announce that ComputerWorld Canada has named me the 2010 IT Educator of the Year for “…recognizing the application of innovative techniques a...
October 27, 2010

Making Sense

New catchphrase (with apologies to Theodosius Dobzhansky): Nothing in software engineering makes sense except in the light of human psychology.
October 21, 2010

Unfortunately Rather Dry

The Great Beyond has a post today about Canadian scientists creating a web site to get their side of the story across in the face of repeated attempts by our...
October 20, 2010

Everything Old Is New Again

I enjoyed reading this “literate” version of the backbone.js source (I put “literate” in quotes because—oh, never mind, it doesn’t matter for the purposes of...
October 20, 2010

Give The Patrons What They Want

Interesting article: I’d never heard of patron-driven acquisition before, but the basic idea is one that other services could borrow: [L]ibraries will load a...
October 20, 2010

Peter Norvig on Python

Peter Norvig, the author of one of the standard textbooks on AI, and now at Google, has this to say about Python:
October 19, 2010

They’re All Small Devices Now

I noticed a book on the shelves at Scimatic last week called Small Memory Software: Patterns for systems with limited memory, by Noble and Weir. It took me ...
October 18, 2010

Ratings Revised

We asked, you answered: here are the latest results from our survey of what topics you'd most like us to cover, with links to the ones that have been posted....
October 17, 2010

Nature Article on Scientific Programming

Nature has just published an article by Zeeya Merali titled "Computational science: ...Error" that looks at what's wrong with scientific computing today. Sof...
October 14, 2010

Five Rules for Computational Scientists

Stepping back from the details for a moment, here are five rules every computational scientist should (try to) follow: 1. Version Control Put every primary a...
October 14, 2010

Dexy

From Ana Nelson, a neat new reproducible research tool called Dexy that takes the pipe-and-filter model to new heights (or extremes, depending on your point ...
October 14, 2010

Pretty Pictures

Matt @ Mozilla’s post shows what people in the School of Webcraft course draw when asked to show how the Internet works. Some of these are very cool.
October 08, 2010

"Making Software" Covers

<img title=”“Making Software” (front cover)” src=”http://third-bit.com/files/2010/10/msfront.jpg” alt=”“Making Software” (front cover)” width=”525” height...
October 08, 2010

How Long Is This MP4?

We have made over 50 videos for Software Carpentry so far, and as part of reorganizing the site, we want to list their lengths beside their names. If they we...
October 05, 2010

UCOSP: That’s Me in the Middle

Andrew Louis has posted a great summary of the Fall 2010 UCOSP code sprint, which took place this past weekend here in Toronto. Over 50 students and mentors...
October 04, 2010

Total Donations

Beautiful Code has raised a total of US$97,933.47 for Amnesty International so far.
October 04, 2010

Aaaand We’re Off!

Our first all-online offering of the course starts today: over 40 graduate students and researchers are taking part. We're going to use email, Skype, DimDim,...
October 04, 2010

Tracking Utility and Impact

Mark Guzdial recently posted some interesting (and for us, slightly depressing) statistics about MIT Open Courseware. Long story short, it looks like that fl...
September 30, 2010

Knitters Needed!

If you’re a knitter in the Greater Toronto Area, StreetKnit needs your help for Nuit Blanche this coming weekend.
September 27, 2010

Software Carpentry at UCSF

Via a comment from Scooter Morris: the University of California San Francisco is offering a "short course" variant of Software Carpentry under the course cod...
September 23, 2010

Response Has Been Overwhelming

I'm very pleased to announce that the Fall 2010 offering of this course to Ontario graduate students is now full: we'll be sending acceptance notices to appl...
September 22, 2010

Your Favorite Running Examples?

I've been fond of invasion percolation since I first encountered it: the problem is simple to state, but its implementation brings up quite a variety of usef...
September 20, 2010

The Stupid, It Still Burns

Top three “non-fiction” books on Amazon.com right now: Matt Ridley's The Rational Optimist: the non-executive chairman (oh, how careful he is to emphasize ...
September 18, 2010

Survey: Help Needed

Dr. Roscoe Bartlett (Sandia National Laboratory), Dr. Jeffrey Carver (University of Alabama), and Dr. Lorin Hochstein (University of Southern California) are...
September 16, 2010

Testing Scientific Software

Yesterday, Michael Feathers tweeted that, "The hardest bit of TDD [test-driven development] for ppl in scientific computation is that they often don't know ...
September 15, 2010

It Shouldn’t Hurt This Much

One of my students says good things about Spyder, a Python environment with MATLAB-like features. OK, I'd like to give it a try. On Mac OS X. Ah---it nee...
September 12, 2010

And For My Next Trick…

One of the things people have voted right up to the top of our poll is reproducible research. The phrase means different things to different people, but part...
September 09, 2010

Games I’ll Never Make

If you were never a board game geek, this post isn't for you. Move on, move on, nothing to read here...
September 05, 2010

The Evils of Email

We’ve all seen studies reporting on the dark side of email. Well, PsyBlog has now done us all a quote favor endquote by summarizing its ten greatest evils. U...
September 04, 2010

"…more frequently begets confidence…"

Ignorance more frequently begets confidence than does knowledge. --Charles Darwin As illustration, here’s a list of ten things non-technical users probabl...
September 04, 2010

In Praise of PowerPoint (sort of)

If all goes well, I’ll post the first eight episodes of the Software Carpentry lecture on the Unix shell later today. That will make this the most productiv...
September 03, 2010

Congratulations (and Thanks) to Allison Tew

As Mark Guzdial recently reported, Allison Tew has successfully defended her PhD thesis at Georgia Tech. For her thesis, she constructed and validated a lang...
August 26, 2010

Another Update on What You Want

Responses have slowed, so here are the final scores for the topics we're including (or thinking about including) in this course. It looks like the Unix shell...
August 26, 2010

What I Install

I just set up a new 64-bit Windows 7 machine at work; here’s what I installed (in order): Putty Firefox Chatzilla Firebug Bookmarks third-bit webmai...
August 25, 2010

Seven Non-Myths

Another good post from Mark Guzdial, this one reporting on a CS education conference he’s attending. Among the talks was one summarizing seven non-myths abou...
August 16, 2010

43% Independent

Cecilia d’Oliveira and colleagues recently wrote an essay in Science about MIT’s OpenCourseWare initiative, ten years after its inception. Among the stats: O...
August 16, 2010

Students and Code Review

Mike Conley has posted some early results from his study of student code reviews. One of the most interesting is that students who have reviewed their peers...
August 16, 2010

"Still" in On Spec

The Summer 2010 issue of On Spec has published my short story “Still”. I hope those who read it enjoy it…
August 16, 2010

Interview with Cameron Neylon

Today's interview is with Cameron Neylon, a noted advocate of open science. Tell us a bit about your organization and its goals. I work for the UK Science an...
August 12, 2010

Congratulations to Jorge Aranda

Jorge Aranda successfully defended his PhD thesis this morning. It’s the culmination of several years of thought-provoking work; I look forward to more great...
August 06, 2010

It Only Looks Like Magic

A couple of days ago, I asked a question about generating tests for Nose. Jacob Kaplan-Moss (of Django fame) provided a elegant answer that I can understand ...
August 05, 2010

Python in CS1 is Growing Fast

From Mark Guzdial’s ever-informative blog: I just got a report...on the state of the Python CS1 market. The market size is estimated to be about 20,300 st...
August 05, 2010

UCOSP Goes to OSCON

UCOSP is “Undergraduate Capstone Open Source Projects”, a program whereby undergrad (and grad) students from universities all across Canada can work together...
August 05, 2010

David Scannell on Elastic Build

David Scannell, an ex-student of mine who is now at GridCentric, has posted an interesting article on using elastic clouds for continuous integration. Lots o...
August 05, 2010

Jeff Balogh at DjangoCon

Jeff Balogh, a former GSoC student of mine now with Mozilla, will be speaking at DjangoCon about “Switching addons.mozilla.org from CakePHP to Django”. Pleas...
August 05, 2010

How Do Researchers Use Blogs?

Sara Kjellberg has an interesting (scholarly) article on how researchers use blogs: nothing shocking, but I was intrigued by the cross-discipline commonaliti...
August 05, 2010

15 to Follow

Twitter addicts looking for interesting people to follow should check out this page, which describes 15 well-known female techies who tweet. I’d be very inte...
August 05, 2010

Two From Jon Udell

I’m a big fan of Jon Udell’s work; here are two recent examples to convince you that you should be too: His "Architectures of Context" presentation. The s...
August 05, 2010

Our New Home

Apologies if there was any trouble reaching this site yesterday—I’ve switched hosting from Site5 to Dreamhost. Everything should be back to normal now; if yo...
August 05, 2010

I’m Still Sort of a Professor

While I’m no longer employed by the University of Toronto, I’m still involved with several student projects. Several of them have had good news to report thi...
August 04, 2010

Open Source, Open Science in 1999

A long time ago, in a galaxy far, far away... Actually, it was 1999, and the venue was Brookhaven National Laboratory in New York—it just feels like a ...
August 03, 2010

A Question About Nose

I'm putting together an episode of the testing lecture to introduce unit testing frameworks. In the past, I've used unittest, but colleagues have had good ex...
August 03, 2010

Interview with Sergey Fomel

Sergey Fomel is a professor at the University of Texas at Austin, and the leader of the Madagascar project. Tell us a bit about your organization and its goa...
August 02, 2010

Interview with Davor Cubranic

Today's interview is with Dr. Davor Cubranic, a statistician who lives and works in Vancouver, B.C. Davor recently ran a workshop for faculty and grad studen...
July 31, 2010

It’s Less Funny When It’s Your Life

A couple of days ago, Steve Yegge posted a sort-of funny piece to his blog about Wikileaks leaking the source code of 5000 open source Java projects by makin...
July 30, 2010

Survey Update

Here's an update on responses to the survey I posted a couple of weeks ago. 172 people have responded at this point; it's encouraging that priorities are rel...
July 29, 2010

Mark Guzdial on Software Carpentry

Mark Guzdial, a leading researcher in computing education, blogged a few days ago about the Texas Advanced Computing Center's training program for computatio...
July 28, 2010

Interview with David Wallace

CivSource has posted an interview with David Wallace, the City of Toronto’s CIO, about open data. I’m really pleased to see things are still moving ahead — w...
July 24, 2010

An Idea Whose Time Is Long Overdue

When I blogged about App Inventor for Android a couple of days ago, I focused on the fact that it’s closed source. What I didn’t say, but should have, is tha...
July 22, 2010

Apparently We’re Less Creative

Apparently we’re becoming less creative. Well, Americans are, anyway, according to research reported in Newsweek (and repeated elsewhere): Kyung Hee Kim at t...
July 22, 2010

Popular, Fast, or Usable: Pick One

One of the core skills in any software developer's toolbox is automating repetitive tasks. We've been teaching this in Software Carpentry with Make for 13 ye...
July 21, 2010

Interview with The Hackers Within

Today's interview is with Nicholas Preston, Katy Huff, and Milad Fatenejad of the The Hacker Within at the University of Wisconsin-Madison. Tell us a bit abo...
July 20, 2010

Interview with STSci’s Perry Greenfield

Today's interview is with Dr. Perry Greenfield of the Space Telescope Science Institute. Tell us a bit about your organization and its goals. We run the Hubb...
July 20, 2010

A Note on Tools

After a bit of experimenting, I've decided to use SmartSVN as a GUI client for Subversion in the version control lectures, rather than RapidSVN or the comman...
July 20, 2010

Closed Feels Weirder Every Day

By now, most readers of this blog will have heard about Google’s App Inventor for Android, a building-blocks programming system based on MIT’s OpenBlocks tha...
July 20, 2010

BP Buying Up Scientists

Via ClimateProgress: Scientists from Louisiana State University, Mississippi State University and Texas A&M have "signed contracts with BP to work on ...
July 19, 2010

The Strengths of the Small

Jorge Aranda, who recently completed his PhD in Computer Science at the University of Toronto, and who contributed a chapter to Making Software, recently wro...
July 18, 2010

City of Toronto Releases New Data Sets

Longtime readers will recall that I ran an open government/open data course at the University of Toronto last fall. I wasn’t able to stay as involved as I wo...
July 18, 2010

Jon’s Notes on G20

Jon Pipitone, who was once a student of mine and is now a friend, volunteered with the Canadian Civil Liberties Association as an observer during G20 in Toro...
July 18, 2010

An Interview with Hans Petter Langtangen

Our latest interview is with Hans Petter Langtangen, author of two books for scientists about Python (and a lot more). Tell us a bit about your organization ...
July 18, 2010

A Gentle Introduction

Via several routes, I've been pointed at MIT Open CourseWare's "A Gentle Introduction to Programming Using Python", as taught by Sarina Canelake in January 2...
July 18, 2010

An Interesting Comment on Academic Life

Beryl Lieff Benderly: “The Real Science Gap”. The teaser says, “It’s not insufficient schooling or a shortage of scientists. It’s a lack of job opportunitie...
July 16, 2010

Toronto PyCamp August 20 - Sept 3, 2010

From the announcement: The University of Toronto Department of Physics hosts Toronto PyCamp 2010. For beginners, this ultra-low-cost Python Boot Camp makes ...
July 16, 2010

This Week in Software Carpentry

Another week, another bunch of posts on t’other site — including a short survey to help us prioritize future lectures, and a plea for help from anyone with g...
July 16, 2010

Survey Results

Here are the results of the survey that we announced a couple of days ago. I'm a bit surprised that so many computer scientists responded, and equally surpri...
July 15, 2010

HPC and Programmability

Via Andrew Lumsdaine, a pointer to an interesting article in Communications of the ACM by Eugene Loh titled "The Ideal HPC Programming Language". A few key q...
July 10, 2010

Three Weeks of Software Carpentry

Apologies for falling behind on these updates: An interview with Microsoft's David Rich The third episode of the regular expressions lecture The fourth e...
July 08, 2010

Interview: SciNet’s Daniel Gruner

Today's interview is with Dr. Daniel Gruner of SciNet. Tell us a bit about your organization and its goals. SciNet is a High Performance Computing (HPC) cons...
July 08, 2010

It’s Gone to Production

The collection of essays on evidence-based software engineering that Andy Oram and I edited has gone to production. The final title is <a href=”<a href...
July 07, 2010

Using Science to Design This Course

One of the many reasons I left the University of Toronto to work full-time revising this course was to explore two areas I've been curious about for years: e...
July 07, 2010

That’s, Uh, Pretty Ambitious

The title of this post is taken from the reaction of the first person I showed this course schedule to. If we're really going to teach Software Carpentry in ...
July 06, 2010

Hubs, Spokes, and Gonzo Programming Skills

In the aftermath of his (very successful) course on next-generation sequencing, Titus Brown has posted some thoughts on how to tie that material to Software ...
July 06, 2010

Toronto Live Interviews

A new event series is starting up: Toronto Live Interviews. The first is on Tuesday, July 20, 6:30pm - 8:00pm, at the Centre for Social Innovation, Room 120...
July 05, 2010

The Violas of Programming

Orchestral musicians make jokes about violas and viola players. "What's a string quartet? A great violin player, a mediocre violin player, a bad violin playe...
June 29, 2010

Rich, Famous, and Popular

Would you like to be rich, famous, and popular? Do you have mad computer vision skillz, and/or a Level 29 Jedi Ninja rating in embedded devices? You do? E...
June 28, 2010

Conflict Minerals and Blood Tech

Great post from Joey deVilla about the hundreds of millions of dollars that flow each year from high tech companies to the ugliest warlords in the world. Don...
June 27, 2010

SIAM News Article About Software Carpentry

The June 2010 issue of SIAM News (published by the Society for Industrial and Applied Mathematics) has an article I wrote about Software Carpentry called "Ge...
June 24, 2010

Eric Lander on Genomics

This lecture by MIT's Eric Lander is a great overview of where genomics is, how we got here, and where we might be going. "Biology as an information science"...
June 24, 2010

Another Example of small-p Patterns

A couple of weeks ago, I asked whether people would find an exploration of ways to count things useful. The consensus was "yes", so I've started drawing up n...
June 24, 2010

And the Winner Is…

Zuzel Vera Pacheco is studying how developers visualize SQL queries for her Master’s thesis project. She ran her last subject a few days ago, and yesterday d...
June 24, 2010

Chas Has Code!

The Google Summer of Code student I’m working with, Chas Leichner, has a working prototype of a two-pane folding editor for IDLE (the Tkinter-based IDE that ...
June 24, 2010

Another Quote from Mark Guzdial

From “Proving and Improving Teaching Programming Languages”: SIGPLAN Education Board has produced a report "Why undergraduates should learn the principles ...
June 24, 2010

A Quote from Marian Petre

From Marian Petre’s recent paper “Mental imagery and software visualization in high-performance software development teams”: ...even in debugging and compreh...
June 24, 2010

The Jolts Are Back

The Jolt Awards for best software (and book) are back: this page on the Doctor Dobb’s Journal site has the schedule and categories. It’s a shame that neithe...
June 22, 2010

Cross-Country Undergrad Projects This Fall

In 2009-2010, almost 90 students from over a dozen universities across the country earned a course credit by working in teams on a variety of open source pro...
June 22, 2010

Interview with Microsoft’s David Rich

The latest in our series of interviews with Software Carpentry sponsors is with Microsoft's David Rich. Tell us a bit about your organization and its goals. ...
June 21, 2010

A Damn Good Book

I’m partway through Bill Karwin’s new book SQL Antipatterns [1] and all I can say is, “Damn, this is good.” Important material, crisp writing, well-chosen ex...
June 20, 2010

More Software Carpentry Updates

For those who aren’t following along: Testing invasion percolation (June 7) Making invasion percolation faster (June 8 ) Reorganizing content (June 9) I...
June 19, 2010

People You Don’t Want On Your Team

Study after study has shown that the biggest causes of software project failure are over-optimistic scheduling and unstable requirements. I think the only r...
June 18, 2010

For World Cup Fans (and Everyone Else)

Mike Knell has posted a funny piece titled "If Sports Got Reported Like Science" [accessed via Internet Archive]. Perhaps I should have put quotes around "fu...
June 18, 2010

George Orwell is Blogging

How did I miss this? George Orwell's diary entries are being reposted on this blog in step with the original events. Very cool, particularly now that the Fre...
June 17, 2010

Is Live Coding Worth It?

I put together an introductory lecture on regular expressions yesterday, but I'm not happy with the results, and I'd like your feedback to help me make it be...
June 16, 2010

A Voice from the Back of the Room

Mark Guzdial recently posted another thought-provoking piece, this one about how teachers are biased toward assessing a class's progress by their interaction...
June 16, 2010

The Cowichan Problems

Back in the 1990s, as the first wave of euphoria about parallel computing was topping out, I had a crazy idea: why don't we actually try to measure, or at le...
June 12, 2010

Thought for the Day

We talked of the education of children; and I asked him what he thought was the best way to teach them first. Johnson: "Sir, it is no matter what you teach...
June 11, 2010

Interview: SHARCNET’s Hugh Couchman

The first of our two sponsor interviews today is with SHARCNET's Prof. Hugh Couchman. Tell us a bit about your organization and its goals. SHARCNET provides ...
June 11, 2010

Counting Things

I re-read Robins et al's "Learning and Teaching Programming: A Review and Discussion" [1] and Eccles and Stacey's "Understanding the Parallel Programming" [2...
June 11, 2010

The Big Picture (version 3)

Version 3 of the concept map describing what we mean by "computational thinking" incorporates feedback from several people—thanks for sending it. Pleas...
June 10, 2010

Interview: Jim Graham of Scimatic

Over the next few weeks, I'll be interviewing the people whose sponsorship has made this course possible. First up is Scimatic's Jim Graham. Tell us a bit a...
June 10, 2010

A Concept Map for Software Carpentry

One of the many things that impressed me about Michael Nygard’s Release It! and Robert Hanmer’s Patterns for Fault Tolerant Software was their use of concept...
June 07, 2010

The Big Picture (version 2)

Thanks to everyone who gave us feedback on the first version of a concept map for Software Carpentry. The second version is shown below, along with a list of...
June 07, 2010

Open Source at Seneca: W00t!

Seneca College (in Toronto) has just been awarded $2.3 million over five years for open source technology research. This is great news—congratulations to eve...
June 04, 2010

Learn a (Human) Language In Your Browser

Andrew Trusty (a grad student at U of T) has just finished his Master’s degree, and as part of that he built a tool called ALOE that helps people learn a for...
June 04, 2010

Nine Episodes

The reason this blog has been quiet lately is that I’ve been focusing on getting some Software Carpentry lectures online. I’m pleased to say that the first n...
June 04, 2010

Concept Map

While re-designing the Software Carpentry course, I have realized that we rely over and over again on some underyling concepts that are hard to capture as le...
June 04, 2010

Who Reports On The Other 97 Per Cent?

The BBC has posted a nice graphic of the latest Top 500 list of supercomputers around the world. It's pretty impressive, particularly if you're a Linux fan (...
June 01, 2010

Jonathan Edwards’ "Mea Culpa"

I don’t agree with everything he says, but I do agree with this: ...what really matters in programming...is not...solving puzzles and being the brightest ki...
May 29, 2010

Say Hello to Chas

My Google Summer of Code student, Chas Leichner, started his project this week. His aim is to build a “record, annotate, and replay” extension for IDLE, so t...
May 29, 2010

Jim Graham on Reproducibility

In response to Titus Brown's not-really-joking spoof of how most scientists manage their data, Scimatic's Jim Graham has asked, "What is reproducibility, any...
May 29, 2010

Badges and Stars

The Open Notebook Science folks have developed a set of badges to help people label their work, ranging from "All Content — Immediate Release" to "Sele...
May 27, 2010

I’m Not a Lawyer…

Google recently announced a Prediction API: he Prediction API enables access to Google's machine learning algorithms to analyze your historic data and predi...
May 27, 2010

Some Deliberately Bad Code

The announcement is a couple of weeks old now (I’m still juggling things as I transition from U of T to Software Carpentry), but Google has released some del...
May 27, 2010

Word Is Spreading

From StreetKnit: The National Post has done a story on our world record attempt. Have you told your two friends? Join us on June 12---and bring everyone yo...
May 23, 2010

The Practice of Software Development

I had a conversation yesterday with a couple of friends about different kinds of startups, the kinds of people who start companies, the “lifestyle company” m...
May 22, 2010

Evaluating Methods and Protocols

From their home page: ScienceCheck.org is the only site dedicated specifically to sharing objective evaluations of published experimental methods/protocols, ...
May 19, 2010

Software Carpentry Progress

It’s been a busy week over at Software Carpentry: Screencasts With Point-Form Notes Mini-Screencasts Exercises (with a screencast) A Word (or Three) Fro...
May 19, 2010

We’ll Know We’ve Succeeded If…

We will know the students taking this course have learned something if: They understand why Titus Brown's Data Management Plan post is both funny and sad. T...
May 18, 2010

Day 11: Slides

Today's screencast experiment [link no longer active] is narration over PowerPoint slides: it isn't animation per se, but we'd like your feedback on whether ...
May 17, 2010

Why Most Scientists Don’t Like Computers

Psychology is fascinating: so much of what we think we know about people turns out not to be true, while so many everyday oddities turn out to have rational ...
May 14, 2010

Day 10: Closed Captioning

Our latest screencast, on NULL values in SQL, is now online. [Original link no longer active; more recent screencast on NULL values.] Unlike its predecessors...
May 14, 2010

Day 9: Programming

Our first screencast showing a bit of Python programming is now up for comments. [Link no longer active, more recent link to screencast on dictionaries.] It...
May 13, 2010

Glad We Could Help

I got email yesterday from Sylvain Thénault, one of the PyLint developers: I would like to thank you and the team for your contribution to the pylint project...
May 12, 2010

It’s Complicated

Mark Guzdial recently posted a short, thought-provoking look at women in CS in Qatar. As he says, it’s complicated…
May 11, 2010

Not Entirely Helpful

As a follow-up to the previous post, we’d like to evaluate the usability of our screencasts systematically. We know we’re not the first (or ten-thousandth) p...
May 10, 2010

How Do You Like Your Screencasts?

Over on the Software Carpentry blog, I’ve posted links to three trial screencasts. We’d be grateful for your comments: do you like the format? Is the video q...
May 10, 2010

Why We’re Self-Hosting

A couple of people have asked why we're planning to host and serve the content we're developing instead of using a combination of YouTube and Google Code, or...
May 10, 2010

Day 6: Screencast With Point-Form Notes

Jason Montojo and I put together an introductory screencast about spreadsheets today. Unlike our previous screencasts, this one is accompanied by point-form ...
May 10, 2010

Microsoft

We are very pleased to announce that Microsoft Corporation has come on board as a sponsor of this project. Many thank to David Rich for making this happen!
May 09, 2010

Day 5: A Different Kind of Screencast

I spent most of today creating another screencast, this one explaining what "and", "or", and "not" mean to programmers and how they work. There are no live e...
May 07, 2010

Articles of Faith

In a discussion with Karen Reid yesterday about what should be in U of T’s second-year CS hardware course, I learned something about my own beliefs that I ha...
May 06, 2010

Is It a Web App?

“Want to know if your ‘HTML application’ is part of the web? Link me into it. Not just link me to it; link me into it. Not just to the black-box frontpage....
May 06, 2010

What Kinds of Docs Do You Use?

What kind of documentation do you use when you’re programming? How useful do you find it? If have three minutes to fill in a very short survey on the topic (...
May 05, 2010

Day 2: More Sticky Notes

Day 2. I feel I should say something like, "We traversed the lower ridge, and are camped in a small valley overlooked by the main peak—I can hear walla...
May 04, 2010

Day 1: Shuffling Sticky Notes Around

Day 1 of Software Carpentry Version 4: Jason, Jon, and I spent the afternoon shuffling sticky notes around on a whiteboard, trying to map out key concepts fo...
May 04, 2010

Do You Speak Database? Then We Need You!

Zuzel Vera Pacheco, one of my current graduate students, got ethics approval today for her research study. From her blog post: Want to win a $100 Best Buy gi...
May 03, 2010

Thanks For All the Pitches, Too

The first thing my former students friends gave me at my going-away party last week was an envelope full of random phrases. I was apparently supposed to ente...
May 03, 2010

Setting Up a New Windows Machine

Setting up a new machine is never fun, but it's always interesting to compare what different people have in their toolkits. Here's what I have installed so f...
May 03, 2010

T Minus One

Tomorrow (May 3, 2010) will be my first day of full-time work on Version 4 of this course (where "full-time" means "except for getting my daughter a new pass...
May 02, 2010

Missing Mesh

After wavering for a few weeks, I’ve decided not to attend this year’s Mesh conference. I’m really pleased that 11 of the 34 headline speakers are women (tha...
May 02, 2010

GSoC 2010

This year’s Google Summer of Code students and projects have been posted—congratulations to them all. The list unfortunately doesn’t specify which open sourc...
April 26, 2010

…And Thanks For All The Fish

A month ago, I gave myself a mixed performance review for my time at U of T. Turns out a few people think I deserve better: enough to scare the bejesus out o...
April 25, 2010

Measure and Manage

I don’t know who Kurt Grandis is, but I’d like to buy him a beer. From his post: Almost two years ago I was in a rather unlikely situation in that I was run...
April 22, 2010

Trends in Computing May 19-20 in Toronto

The Department of Computer Science at the University of Toronto is running a two-day symposium on “Trends in Computing” May 19-20, 2010. It’s free, but you m...
April 22, 2010

New Home for Software Carpentry Blog

The Software Carpentry blog has moved to https://software-carpentry.org/blog/ — please remove the old softwarecarpentry.wordpress.com entry from your blog re...
April 22, 2010

Congratulations to Jason and Jon

Congratulations to Jason Montojo and Jon Pipitone, who have just completed their Master’s degrees in Computer Science at the University of Toronto. Jon was o...
April 22, 2010

Ill-Informed Commentary Considered Harmful

The April 2010 issue of Communications of the ACM has an article by Keith Wright titled “Capstone programming Courses Considered Harmful”. Dr. Wright teaches...
April 21, 2010

File Sharing for Scientists

A scientist I recently met in Toronto had a problem: how to share large files with colleagues. Each file is a couple of hundred megabytes; dozens are produce...
April 16, 2010

Scimatic Sponsorship

We're very pleased to announce that Scimatic Software, a Toronto based company that specializes in the development of software for the scientific community,...
April 15, 2010

Recovering From Functional Programming

James Hague has an interesting series of posts about functional programming, the latest of which, “Functional Programming Doesn’t Work (and what to do about ...
April 13, 2010

The Chilling Effect of the GPL

Distributed version control systems have finally passed my two-year test [1], so while I was at PyCon in February, I asked a few questions about what it woul...
April 12, 2010

On the Failure of Inquiry-Based Teaching

The full title of Kirschner, Sweller, and Clark’s paper is “Why Minimal Guidance During Instruction Does Not Work: An Analysis of the Failure of Constructivi...
April 12, 2010

Professors Can Teach Open Source

Over at opensource.com, Red Hat’s Greg DeKoenigsberg has a post about a new collaboratively-authored textbook on open source software aimed squarely at under...
April 12, 2010

Perpetuating Imbalance?

On March 24, a post appeared on the Code Anthem blog titled “Don’t Judge a Developer by Open Source”. Since it starts by saying that the authors are big fans...
April 12, 2010

Teaching Open Source

Over at opensource.com, Red Hat's Greg DeKoenigsberg has a post about a new collaboratively-authored textbook on open source software aimed squarely at under...
April 12, 2010

More on Instructional Design

Like many programmers, I've learned most of what I know by poking around and breaking things. Quite naturally, that has led me to believe that this is the be...
April 12, 2010

Measuring Science

Julia Lane, the director of the Science of Science & Innovation Policy program at the National Science Foundation, wrote an article for Nature a couple ...
April 11, 2010

Another Software Carpentry Update

From the last week and a half: Other online courses that Software Carpentry could imitate. Feedback on the recently-completed course, with a discussion of...
April 11, 2010

PSF Membership

I am pleased to announce that I am now a member of the Python Software Foundation. I’m flattered to have been nominated, and grateful to everyone who didn’t ...
April 09, 2010

Platforms

After Thursday's post-mortem on the latest offering of Software Carpentry at the Universitiy of Toronto, I had a chance to talk further with Jon Pipitone, wh...
April 08, 2010

How Do You See Maps?

Back in the 1990s, I did a bit of volunteer work with the Canadian National Institute for the Blind, and one of the things I learned was that computers often...
April 07, 2010

Communication Matters Most

Tania Samsonova has posted an interesting article discussing the importance of communication skills to job success for junior developers. Drawing on the work...
April 06, 2010

Feedback and Boundaries

Thanks to the initiative of Dominique Vuvan (who took Software Carpentry last summer), we ran a semi-formal version of the course from last November through ...
April 04, 2010

Simon Singh Wins (and So Does Science)

Simon Singh, the science journalist who was sued for libel by the British Chiropractic Association, has won the right to rely on the defense of "fair comment...
April 01, 2010

Models To Imitate

My father once told me that a week of hard work can sometimes save you an hour of thought. In that spirit, I've been looking for asynchronous online courses ...
April 01, 2010

Happy Birthday, Madeleine

<img”maddie-sadie-baking” src=”http://third-bit.com/files/2010/03/maddie-sadie-baking.png” alt=”Sadie and Maddie baking cupcakes” width=”544” height=”408”...
March 31, 2010

Why Do Students Cheat?

According to Young-Jin Lee at the University of Kansas, the main driver for college-level cheating is procrastination: ...repetitive copiers—students w...
March 30, 2010

DemoCamp 26

DemoCamp Toronto #26 was last night; I was going to blog my impressions, but Ian Chan’s post is better than what I would write, so, um, please go read it ins...
March 30, 2010

Formats

As I said in last week's announcement, and mentioned again in a later post, one of the main goals of this rewrite is to make it possible for students to do t...
March 30, 2010

What’s Not on the Reading List

I mentioned yesterday that I maintain a list of books that haven't been written yet. Partly it's an exercise in sympathetic magic—if the reviews exist,...
March 29, 2010

Apple Makes The Government Look Good

Maddie’s third birthday party was today. After she went to bed, we uploaded all our pictures from our Canon into iPhoto on our MacBook, then selected the one...
March 28, 2010

Recommended Reading

I'm slightly obsessed with reading lists. (I even maintain a list of books that haven't been written yet, in the hope that it will inspire people to turn som...
March 28, 2010

Another Online Government Fail

I needed a long-form birth certificate to renew my daughter’s passport, so I went onto the Ontario government website, filled in the form, ticked the box say...
March 27, 2010

Online Delivery

As the announcement of Version 4 said, Software Carpentry is being redesigned so that it can be delivered in several ways. I want to support: traditional cl...
March 26, 2010

Instructional Design

As well as deciding on the format of the course, I have to re-shape its content. In contrast to e-learning, there seems to be a lot of solid material availab...
March 26, 2010

Productively Lost

From Greg DeKoenigsburg: We are delighted to announce the release of version 0.8 of our textbook, "Practical Open Source Software Exploration: How to be Prod...
March 26, 2010

Software Carpentry Version 4 is a Go!

I am very excited to announce that I am going to work full-time on revising the Software Carpentry course from May 2010 to May 2011. Please see the full ann...
March 25, 2010

Ada Lovelace Day

Today (March 24) is Ada Lovelace Day, and in her honor, we’ve been asked to blog about women in computing who have inspired us. My list is pretty long —curre...
March 24, 2010

Did I Pass?

It’s that time again: students in my CSC302 software engineering class are doing peer assessments next week, and soon after that I’ll have to assign grades t...
March 22, 2010

Robin Milner: 1934-2010

We are sorry to announce that Robin Milner died on Saturday 20th March, in Cambridge, just three days after the funeral of his wife, Lucy.
March 22, 2010

GSoC 2010 Organizations Announced

The list of organizations taking part in this year’s Google Summer of Code has been announced. We’re holding an information session about the program 4-5 pm ...
March 18, 2010

What Do You See?

One of my favorite software engineering research papers is Cherubini, Venolia, DeLine, and Ko’s “Let’s go to the whiteboard: how and why software developers ...
March 18, 2010

Testing With Random Data

Guillaume Simard and François Fournier are writing Selenium tests for Basie (our Django-based replacement for Trac). Over on the Basie blog, they explain why...
March 18, 2010

Wise Daughters and Winter’s End

It might feel like winter is over, but a lot of people still need your help. Over on Streetknit, there’s word of another knitup called Wise Daughters, which ...
March 18, 2010

YUI 3 Gallery Contest

YUI 3 Gallery Contest 2010 Submit a YUI BSD-licensed gallery module by March 22, 2010 Entries will be judged on usefulness, uniqueness, code quality and d...
March 17, 2010

Adaptation in Action

Neat: the British Museum is appointing Liam Wyatt its “Wikipedian in residence”. I think this is a great example of an institution distinguishing between con...
March 17, 2010

Natural Language Wins (Kind Of)

Jordi Cabot reports the results of a very unscientific competition to find the best modeling notation for requirements engineering: To make a long story shor...
March 17, 2010

A Broad Definition

Janice Cuny, Lawrence Snyder, and Jeannette Wing co-authored a paper for SIGCSE 2010 titled “Computational Thinking: A Definition”. I can’t find a copy that...
March 15, 2010

Currently Juggling

I keep telling my students not to over-commit themselves. It’s a shame I don’t take my own advice :-). Here’s what I’ve currently got on the go:
March 15, 2010

Master of Science in Applied Computing

I am pleased to announce that in September 2010, the Department of Computer Science at the University of Toronto is launching a new graduate program: a Maste...
March 15, 2010

What’s Wrong With This Plan?

My grad student Mike Conley decided several months ago to look at code review for his master’s thesis. After exploring a few ideas (including badges and achi...
March 14, 2010

Something That Won’t Be On The Final Exam

The final exam for my CSC302 software engineering course was due this week, and I thought I had come up with a good–and fair—question to put on it. Four out ...
March 13, 2010

SIGCSE 2010 Wrap-Up

I wanted to go to SIGCSE (the computer science education conference) this year, but breaking my self-imposed no-fly rule once made me feel guilty enough. Lot...
March 13, 2010

Bottom-Up, Top-Down, and Back to the Future

I just (finally) watched the demo video for Andrew Bragdon’s CodeBubbles. You’ve probably already seen it, but if you haven’t, check it out: it rocks. Like K...
March 13, 2010

An Army of Interns

Here’s an interesting complement to both the GSoC model (students work full-time for 12 weeks on a project) and the UCOSP model (students work on a project a...
March 13, 2010

Choosing The Change We Want To Be

Brief article from The Economist about how some technological innovations help empower women, while others do harm. Not much depth, but worth reading. I wond...
March 11, 2010

Stephen Walli on Book Publishing

Interesting post about the future of book publishing: it’s brighter than you think, but quite different from today. And yes, I remember Sam’s too…
March 11, 2010

Is That All There Is?

I prefer Peggy Lee’s version of the song to Bette Midler’s; I wonder if Mark Guzdial thought of either when he wrote this post a couple of days ago: Surely, ...
March 11, 2010

Don’t Ask, Don’t Tell — Really

Good post from Stuart Shieber from last summer: A strange social contract has arisen in the scholarly publishing field, a kind of "don't ask, don't tell" app...
March 11, 2010

March 24 is Ada Lovelace Day

March 24 is Ada Lovelace Day—please take a moment to blog or tweet about women in technology or science whom you admire.
March 11, 2010

Code Review Walkthrough

Mike Conley and I had lunch yesterday with SmartBear’s Gregg Sporar to talk about code review. (We ate at E Pan on Spadina Avenue, which isn’t particularly r...
March 11, 2010

Thacker FTW!

Charles Thacker has won the 2009 Turing Award for his work on the Alto, the first modern personal computer. Congratulations!
March 09, 2010

Offer, Then Ask

Ever since I started teaching at U of T, I’ve tried to help students I know find interesting jobs with local companies. I enjoy doing it, but there’s a downs...
March 08, 2010

This Is How I Want My Daughter To Think

Ned Gulley’s latest post, “What We Mean When We Say Magic”, starts with this quote: "The larger the island of knowledge, the longer the shoreline of wonder."...
March 04, 2010

The Tool I Want

I want to make the next version of the Software Carpentry material more dynamic. I’m planning to use screencasts to show people how to use a debugger and oth...
March 04, 2010

More on Computational Thinking

Over at the ACM blogs, Judy Robertson just asked, “How do you assess computational thinking?” She’s more polite than I have been: she says, “It seems we’re s...
March 03, 2010

Canpages Contest

Canpages has launched an API contest today that gives students a chance to show what they can do with 1.3 million Canadian business listings, photos, videos,...
March 03, 2010

What We’ve Learned

My talk at PyCon 2010 was titled “What We’ve Learned From Building Basie (and lots of other software using student labor over the course of eight years)”. T...
March 02, 2010

Universe of Stone

After my PyCon lightning talk about software architecture, I got a couple of inquiries along the lines of, “So what kind of description are you actually look...
March 01, 2010

Women in Startups

Sarah Tavel has a good data-backed post about the general dearth of women in startups, and how the gender balance in a startup changes if the CEO is female. ...
February 28, 2010

Humanitarian Free & Open Source Symposium

The second annual HFOSS is taking place March 10 in Milwaukee (along with SIGCSE 2010). F&OS communities helped save a lot of lives after the Haiti disas...
February 28, 2010

Panton Principles

Via Cameron Neylon: the Panton Principles are guidelines for open data in science. In full: Science is based on building on, reusing and openly criticising t...
February 28, 2010

Summer of Code 2010

Google Summer of Code 2010 is now up and running. Mentoring organizations can apply March 8-12, and students can apply March 29-April 9 (but should start wor...
February 24, 2010

Times Nine in a Year

A talk I’d really like to see: Moving the Needle: How the San Francisco Ruby Community got to 18%
February 24, 2010

I Will Buy You Dinner…

…if you will translate the examples from Freeman and Pryce’s excellent book Growing Object-Oriented Software Guided by Tests from Java into Python. There are...
February 24, 2010

Kafka and American Airlines

We were an hour and a half late getting into Toronto on Sunday after PyCon: the de-icers on the first plane out of Chicago weren’t working, so they had to pu...
February 24, 2010

Twitter Makes Rhinos Of Us All

In Last Chance to See (the best book he ever wrote), Douglas Adams wondered what the world "looks" like to rhinos. Their nasal membranes are larger than thei...
February 24, 2010

BEACON Funded!

Congratulations to Titus Brown and others on the NSF's announcement that it will fund the BEACON (Bio/computational Evolution in Action Consortium) Science a...
February 22, 2010

PyCon 2010

It’s a sunny Sunday morning in Atlanta, and I’m on my way home. I came down Thursday to: Raise money for Software Carpentry. Get people excited about Basi...
February 21, 2010

At PyCon

I’m at PyCon today — well, actually, Georgia Tech in the morning, then PyCon again at 2:00 or so. Look forward to meeting everyone!
February 19, 2010

Rory Tulk on Software Testing

Rory Tulk finished his M.Sc. with me a couple of weeks ago, and has posted a summary of his thesis on his blog. It was a solid piece of research; I’m pleased...
February 17, 2010

Basie 0.6 Has Been Released

We are pleased to announce the release of Version 0.6 of Basie, a lightweight software project portal built on Django and jQuery. Basie is designed to replac...
February 16, 2010

Two Views

Darrell Ince (who, as far as I know, hasn't worked directly with climate scientists or their software) wrote about ClimateGate for The Guardian. In response,...
February 12, 2010

Not All Review Is Broken

Cameron Neylon’s recent post about peer review is pretty damning. It’s interesting to compare his description of peer review’s faults with what peer review i...
February 09, 2010

Scimatic and GridCentric Have News

Jamie and Jim at Scimatic have released Samples, a tool for managing experimental results, and have blogged about what it’s good for. Meanwhile, the GridCent...
February 09, 2010

TestDrive

Mike Conley has built a little script to… “fetch a review request [from ReviewBoard], grab the latest diff (yes, found an easy way past the lack of API there...
February 09, 2010

Signs of the Times

My daughter has a floor-mat jigsaw puzzle of the Solar System. It only has eight planets—no Pluto. I feel… dated.
February 09, 2010

I Apologize For Standing You Up…

If I’m supposed to meet you today, but don’t show up, I apologize: Google Calendar is “temporarily unavailable”. There was no warning that I saw; disturbing ...
February 05, 2010

Dumber Is Productiver

I do almost all of my work now in a command-line shell, including reading email and composing text of all kinds. And I mean it when I say “a” shell—I almost ...
February 03, 2010

GSoC 2010

Google Summer of Code 2010 is on for 2010! They will begin accepting applications from would-be mentoring organizations on March 8th, with applications closi...
February 03, 2010

Pre-Commit Continuous Integration

Mike Conley (one of my grad students) is converging on a thesis topic: pre-commit continuous integration. If you have thoughts, he’d enjoy hearing them.
February 02, 2010

Engineering Thinking

I’m a big fan of David Mackay’s Sustainable Energy—Without the Hot Air, not least because it’s a command performance by a master of back-of-the-envelope calc...
February 02, 2010

Upcoming Talks

I’m speaking at Guelph University on Monday, February 8, and at McMaster University on Wednesday, February 10. Both talks will be based on my DevDays/CUSEC t...
February 02, 2010

Half Measures

Lots of people were chatting last week about Sikuli, the “programming with screenshots” project from MIT. Even if I didn’t agree with Adam Goucher’s comments...
February 01, 2010

VeloCity Entrepreneur Bootcamp

The University of Waterloo’s VeloCity program is launching a new program for this spring term (May-July 2010) that will give three great teams of postseconda...
February 01, 2010

Two Steps Up, One Step Back

This term’s UCOSP projects all seem to be going well so far: most teams are writing and committing code, and several teams have adopted code review as a stan...
February 01, 2010

I Don’t Care Until I Can Check

Over in the Agile Usability group, Larry Constantine writes: ...Capers Jones has been sharing with me some hard data summaries on a variety of development me...
January 31, 2010

Cameron Neylon Says Nice Things

Cameron Neylon has some nice things to say about the Software Carpentry course; here’s hoping at least one of his readers likes it enough to help fund the ne...
January 29, 2010

About Time

Andrew Wakefield, the British doctor who started the whole “vaccines cause autism” scare, is finally being held accountable for his dishonest and deliberatel...
January 28, 2010

A Student-Run DemoCamp at U of T

Via Reginald Tan and others, news of a student-oriented DemoCamp event at the University of Toronto. Hope to see lots of students demoing; hope to see lots o...
January 25, 2010

CUSEC 2010

If it’s Monday, I must be catching up… I spoke at CUSEC 2010 last week to about 250 students and others about evidence-based software engineering. The talk i...
January 25, 2010

It Seems That Everyone Cares

Ars Technica isn't primarily a science site, but even they are now worried about reproducibility in computational science. I think it no longer matters how ...
January 24, 2010

CUSEC

My talk at CUSEC starts in 15 minutes; to calm my nerves, I’m catching up on my blog :-). Here are where students are from: Carleton 30 Concordia 66 &...
January 22, 2010

More on Mining

Several people have recently linked to Diederik van Liere’s talk “Learning from 10 yrs of Bugzilla data”. If you’re interested in that kind of thing, there’s...
January 21, 2010

Two More Thumbs Up

I blogged last week about Sahoo et al’s paper on automated bug diagnosis and Gutiart et al’s survey of performance management techniques for web apps. This w...
January 20, 2010

We Can Only Interview the Survivors

Harvard Business Review reports work done by Prof. Rebecca Henderson at MIT showing that most successful companies are actually just lucky. Keep it in mind t...
January 20, 2010

Punctuate! Punctuate! Punctuate!

I’m reading yet another proposal for a specialized markup language (this one for scientific results, so that they can be shared and searched semantically), a...
January 20, 2010

Big Science == Big Skills Gap

Over on Nature News, Eric Hand's article "'Big science' spurs collaborative trend" is subtitled, "Complicated projects mean that science is becoming more glo...
January 20, 2010

How Are The Mighty Fallen

I was OK when Safari started selling photography books. I was even OK when they started selling “secret to business success” books. But this? sigh
January 19, 2010

Was Designed To, But Didn’t

Michael Clarke has written a thoughtful post exploring why the web hasn't disrupted scientific publishing, even though it was designed to do exactly that.
January 18, 2010

Unreadable Through Bloglines

Bloglines apparently doesn’t like this feed: Bloglines has encountered an error trying to fetch the latest version of this feed. Bloglines handles errors aut...
January 18, 2010

We’re Apparently Still Not a Science

This happens all the time, and irks me more with each passing year: PostRank has several categorized lists of “best blogs”, as judged by popularity, influenc...
January 15, 2010

We Made A Thing!

I miss doing things like this. On the other hand, I got to paint watercolors with (and sometimes on) my daughter last night.
January 13, 2010

Whatcha Gonna Do When They Come For You?

First it was pharma companies withholding "unhelpful" data, then it was ClimateGate, and now there's this: One of the founders of the controversial 'Baby Ein...
January 13, 2010

Podcast with Jon Udell

Jon Udell recently interviewed me about Software Carpentry and related topics—the podcast is now on his web site.
January 13, 2010

Interviewed by Jon Udell

Jon Udell recently interviewed me about the Software Carpentry course and other things—the podcast is now available on the web.
January 12, 2010

Vote!

Will the next Barbie be an architect, a computer engineer, an environmentalist, a news anchor, or a surgeon? Your vote could make the difference (and yeah, i...
January 12, 2010

Quiet Time

Two grad students in our department bought white lab coats over Christmas. When they wear them, it means that they’re “doing science”, and are not to be inte...
January 12, 2010

Google and China

“We have decided we are no longer willing to continue censoring our results on Google.cn, and so over the next few weeks we will be discussing with the Chine...
January 12, 2010

Two Thumbs Up, One Thumb Down

Three recent papers: Sahoo, Criswell, and Adve: "Towards Automated Bug Diagnosis: An Empirical Study of Reported Software Bugs in Server Applications". Lo...
January 11, 2010

More Public Embarrassment About Workflows

Thanks to everyone for the comments on my recent post about web workflows and public embarrassment. I have two of my own to add: I've looked at tools like ...
January 10, 2010