This December, the University of Ottawa is holding some events to get children (7-10) interested in Engineering and Computer Science. I got the email and was inspired, because this is something I do.
My full CV is on my LinkedIn, but suffice to say the past 3 summers I’ve been teaching programming to kids. 2007 in St Paul (Minnesota), 2008 in St Paul and Seattle, and this past summer in Shanghai. I’ve also worked on the Java curriculum that was taught across the US (and that I taught in Shanghai). I’ve done this rather than take better paid jobs, or internships, and I’m not 100% sure why. But here’s why I think I do it…
Programming is seen as boring, 1’s and 0’s. It’s not as exciting as making a website, or a video game. But – talented programmers are how the applications we use to make websites and video games are made in the first place. When we use an application, we’re limited by what the application designer thought we would want. But when we code, we’re limited by the speed of our computer, the size of the memory… and our own imagination. Bear in mind, the first two limitations get less limiting by the 18 months (says Moore’s law).
I find that really inspiring. And, if I take that mindset and look at the things I do, day to day, hardware designers and programmers have changed everything. Here’s some of what I’m interested in: usability, search engines, social networking, programming as art… OK, computers have been about for a while, but if I were 10 years older? I never would have made it in Computer Science. It would have been too much about the hardware, for me. There’s a long story as to how I wound up in CS, but the short story is – it was kind of an accident. But there was enough there that I liked to keep me at it, and I doubt that would have been the case 10 years earlier. And now – I love it. I love to code, I love what I do. Seriously, I’ll talk about it to anyone who’ll listen. I’m excited to explain it to people who aren’t techies, because I’m excited that we’re finally getting there – where the stuff programmers create in their darkened basements is something real people use, and could even understand if we would just take the time to explain it to them without using obscure acronyms and unexplained concepts. I’m excited by the fact we don’t need to live in darkened basements anymore, too.
So, my theory in teaching is – learning to code, the constructs, thinking logically… can be pretty dull. But what we can create is really exciting. So I focus less on constructs, more on possibility. I talk about Open Source, and the browser wars, extreme programming, and I create stuff. And I make sure that every child I teach has the option to go home with something graphical. This year, we used processing and it was awesome. We made fractals, block breaker, snake (like the game on the Nokia phones), tetris, and a game the student called “dodgeball” (I’ll put these all up when I get my website done). And this was on top of the “frameworks” I’d created in the curriculum – hangman, noughts and crosses, blackjack, and Pacman, which were done using Swing. Frameworks mean the GUI was done for the student, and they fill in the Logic.
So, back to the presentation. I’ve uploaded the slides here, so please take a look (and let me know what you think – first draft). It’s supposed to last an hour to an hour and a half.
My Presentation centers around 3 Themes: Art, Life, and Programming.
Theme 1: ART
Art is no longer just paintings, or sculptures, or even photographs. Technology has given us new mediums to create with, and new means to distribute. Code is like a paintbrush, and the internet is the worlds biggest art gallery.
- The Twitter “Fail Whale” – an example of how a popular web service can make an image iconic. The “Fail Whale” now has it’s own range of memorabilia – have a look here.
- We Tell Stories – a digital literature project. 6 authors, 6 stories, each given a new form using the internet. You can follow the story of 21 steps through Google Maps, but my personal favorite is Fairy Tales where you can control how the story goes.
- One and Other – an installation, or “living monument”. For 100 days, one person every hour spends their time at the top of the plinth doing whatever they want. Broadcast over the internet, it’s attracted millions of page views and hits from around the world.
- New Yorker cover in May drawn using the iPhone application Brushes.
- PostSecret – a community mail art project. People send in post cards of their secrets, which are then posted on a blog each week. A mix of old and new technology. Running since 2005, the 5th book is shortly to be released and thousands of secrets have been posted online.
- Pixel City – a YouTube video of the creation of an entirely computer generated city.
- I Want You To Want Me – an interactive installation at the Museum of Modern Art, New York created by Sep Kamvar and Jonathan Harris. It pulls data from dating sites, and displays it in different ways. Visually stunning, and profound it “explores the search for love and self in the world of online dating”.
These tools are recent.
Fractal – Art, or Math? Or both?
Theme 2: LIFE
Inventions that have changed humanity: the printing press, electricity, the combustion engine, fire…
Computers and the Internet are another such invention, and we’re living through the period of change. Who knows what 2010 was like? Parents upbringing would be unrecognizable to the way we live now.
In the West, people aged 30 and under are the first generation to grow up with the internet being “normal”, and everywhere. This gives us a significant advantage in the 21st century. However, less than 24 people in every 100 worldwide have access to the internet, which was only invented in 1989. Much information – medical records are a good example, is not yet digital.
Blogging is a new medium, the Blogger service was launched in 1999, and bought by Google in 2003. Services like this made it possible for not techies to “blog” (previously, blogs were just websites which required more knowledge to create). The concept of sharing your every day life in public, as it happened was new. Now, Blogging is also used as a way to communicate with your customers – important announcements are made on the company blog (Google is a great example of this).
Blogging may have been the start of the concept of “ambient intimacy”, where people stay connected by following each others lives on the internet, rather than through active communication. It’s also something that newspapers see as a threat to their business model.
Newspapers: Prediction, the paper version will be obsolete, and soon. Why? Because the way we live is changing, because their business model has been undermined by services like CraigsList. Because the world will be different in 5 years than it is now, and a lot different from how it was 10 years ago.
What’s Next? Google Wave, the Apple tablet computer, table computing, house-cleaning robots… and other things we haven’t imagined yet.
Theme 3: PROGRAMMING
People used to program using 1’s and 0’s. A card with holes punched into it, that you’d insert into a computer (when it was your turn) and wait for the result to come out the other end. We’ve come a long way since then, and can code visually using things like Alice (upcoming 3.0 release uses The Sims) and the Warcraft World editor. Often, though, we use something in between such as C#, Haskell, or Java.
Remember the fractal? It’s Java – created using Processing.
- Technology has changed our lives considerably relatively recently
- New and impressive “hardware”
- Creative and innovating programming
- More to come!
- Technologists – hardware designers, programmers – are at the center of what we will achieve next
- Look around – changes are happening rapidly
- In 15 years, you could be talking about what’s happened in your lifetime
- Be inspired! Human innovation is INCREDIBLE!
- Push boundaries! Be limited only by your imagination.