Programming For the Rest Of Us

Democratizing Programming


We believe that in an information age with available data exploding around us, citizens must have the tools to program and analyse their world.

But conventional programming models and languages are too inaccessible. There are political and social reasons why citizen access to the data world is critical.

The Elevator Pitch (click to expand a pitch)

  1. Prior to 1979, if a manager wanted to include calculated information derived from the company's computer systems in a report they would have to request and negotiate with the IT department and it could take weeks! Then VisiCalc was released and everything changed. MBAs and others who could manipulate spreadsheets became king, and what-if and scenarios became a mainstay of corporate decision-making.

    Today, classical spreadsheets are becoming less useful as data becomes too large and too dynamic to usefully capture in spreadsheets.

    And only a small fraction of the population can use anything near the full power of a spreadsheet!

  2. You're driving home one night and you hit a pothole. Glancing in the rearview mirror you notice that the streetlight is burnt out there. Then you notice another light out and hit another pothole. You wonder if there's some kind of correlation.

    Today: you might contact a city newspaper and try to convince them it was an interesting story, so that they could hire a programmer to access the data and produce some kind of report... but more likely you flake out in front of the TV and forget about it.

    With Kit: you write a little program to access the public data at the power company and the city and display the information in a map. Sure enough you see a correlation, but also notice the worst situation is in the poorer parts of town, so you pull in income-by-electoral-disctrict data and sure enough, that's correlated too. Now you have real information that you can share with a news outlet or ask a politician to do something to fix!

   - We need a new paradigm.


We are using the idea of stories to drive our creativity and our decision-making for this project. A story consists of a name, a persona, and a series of tasks which that person wants to achieve. Personas are a way to bring emotion and motivation to the understanding of the story. The tasks describe things that a user like the person might want to achieve.

Feel welcome to read the stories, and contribute stories of your own!

Programming Environment

We are creating a programming environment that will be available on the Web and with apps for touch devices. This is the place to find more information about this.

Other Projects

We're not the only ones thinking that programming has to be democratized! This is the place to find out about other takes on this problem.

The Course

If you're a student at Ryerson University, you can take the course CPS650 - Computational Thinking in Our World in Winter 2015 which explores many of the same principles.