Steve Jobs: “computer science is a liberal art, it’s something everyone should know how to use, at least, and harness in their life”

“Quotes from Steve Jobs Lost Interview”:

“Learning to program teaches you how to think. Computer science is a liberal art.”

NPR.org: “Steve Jobs: ‘Computer Science Is A Liberal Art'”:

“In my perspective … science and computer science is a liberal art, it’s something everyone should know how to use, at least, and harness in their life. It’s not something that should be relegated to 5 percent of the population over in the corner. It’s something that everybody should be exposed to and everyone should have mastery of to some extent, and that’s how we viewed computation and these computation devices”

Related:

“Steve Jobs Lost Interview”

YouTube: WGBH: “Steve Jobs 1990 Lost Interview Part 1”:

Reddit.com: “Want: a non-technical description of CS”

Introducing Programming in College with Scratch

I’ve mentioned Scratch as a way to introduce children to programming, but it works just as well, maybe even more so, as a way of introducing teenagers and adults to programming! Don’t take it from me though, take it from Harvard’s CS50, by David J. Malan (who is fantastic in these lectures btw), which has adopted Scratch (it moves on to C and other languages and tools), to help students make some connections early on.

YouTube: “CS50 / Week 0: Friday”:

Harvard: CS50.tv

Academic Earth: “Introduction to Computer Science I”

Scratch: “Starting with Scratch (literally) in CS 1”

“A guided walk through of CS50”

Some thoughts on Project-Based computer science education

Recently I had the pleasure of assisting someone who lives at Connelly House, managed by Project HOME, in bringing his music to YouTube. He was a 50ish year old man, suffering from disability, with no internet or real computing experience to go by, but he had a project. In the journey to produce that single video for YouTube, he learned some basic concepts around navigating the web, managing an email account, and using search, that empowered him not only to produce a single video, but to go on and produce over 30. Now, one experience does not a conclusive study make, but I came away from the this convinced that it is a technique I’d love to try with K-12 students, building an interactive story or video game, and along the way, having a goal for them to learn the basics of computational thinking, problem solving, and basic programming. The software to do this is free and with cloud-based storage (Dropbox) regular access to a basic machine in the home, the technology you need is already here.

This is not an original idea (I don’t believe in original ideas by the way), and there are many who have brought this up as a successful path to introduce programming in the past. Here go some great links to ponder:

Knowing and Doing: Eugene Wallingford: “Problems are the Thing”

Philip Greenspun: “Improving Undergraduate Computer Science Education”

Edutopia: “Project-Based Learning”

“Invent Your Own Computer Games with Python”

Programming, along with Reading, Writing, and Arithmetic – start NOW

Matt Ruzicka wonders what could have happened if his school was visited by someone who shared how programming has less to do with something he could learn in college, and more to do with what he was actually doing in class in his post “School, Math, and Code”. (via “Life and Code”)

More than a few of us from CIM are active in our communities, including my former manager Aaron Held, who received this note from a thankful student who needs more support from others.

Knowledge of programming, not the use of specific kinds of software (word processors for example), is a necessary part of literacy today.

Related:

MIT Scratch

Invent Your Own Computer Games with Python

Google: Exploring Computational Thinking

Program or Be Programmed

Computer Programming for Everybody

Knowing and Doing: “Programming for Everyone — Really?”

MediaShift: Aran Levasseur: “Learning in a Digital Age: Teaching a Different Kind of Literacy”

Change By Us Philly in Beta: civic media & software

“Change by Us Philly” recently launched in beta, part of the “Change By Us” effort started by “CEOs for Cities”, “Local Projects” and “Code for America” and is funded by The Knight Foundation and The Rockerfeller Foundation. It describes itself (and lives up to it!) as “an online marketplace for community projects that allows you to share ideas for making the city better, and to turn those ideas into projects that have real impact. From tools to network and manage events to helping you connect with local resources, the site supports a number of ways to get involved.” Check out the ideas posted, get involved in making one happen, or share your own.

For more on getting involved with the site, check out OAPCivicFusion on Google Groups.

Programming, Math, and Computational Thinking: on education

Actually, this post will feature a few reads and resources for you that are part of a theme – the need to change K-12 education to face the realities of today and tomorrow, instead of preparing them for a world that has already turned. To do so will require children to gain a working understanding of the use of, and creation of, software. This is as important today as reading, writing and mathematics and it helps provide invaluable tools to build on, and strengthen, those foundational parts of children’s education.

Google Edu serves a terrific resource for educators and students that brings together many of these concepts – “Exploring Computational Thinking”. The lesson plan includes Python exercises that help illustrate computational thinking while strengthening math skills.

Why this is important

Over 10 years ago Lawrence Lessig exclaimed, “The Code Is the Law”, and in a series of articles, presentations, and an influential book spread the idea among the digerati, but interestingly enough, those outside of technology didn’t adopt the idea as a truism.

Douglas Rushkoff recently released his most recent book, “Programed or be Programmed” that took the concept further and declared a course of action for future educators.

Kevin Slavin: Kevin Slavin: How algorithms shape our world:

YouTube: “TED: Conrad Wolfram: Teaching kids real math with computers”:

Impermanence and Software Design: on systems

When you’re building software, it is probably best to look at things half-Buddhist. Kent Beck writes about building software that won’t be around longer than him in a recent Facebook note:

…nothing I am doing now with software will remain in a hundred years. Indeed, there was a time not long ago when the only software I had ever written that was still running was JUnit. Thousands of programs started, and my work was in danger of becoming extinct.

I could try to achieve timelessness in my designs and encourage others to do the same, but in the end nothing I program will outlive me. It would be easy to despair over this, to go into my shell and settle for “good enough”. To do so would be to ignore both the immediate impact of my work, used by hundreds of millions of people today (one of the great things about working at Facebook), and the second order effects of my work on the lives and attitudes of others. No, my programs won’t be here in a century, but my work still matters.

Related:

Michael Mehaffy and Nikos Salingaros: “The Pattern Technology of Christopher Alexander”: “We have to remember that software engineers, by nature of their work, have a big problem. Their job is not to solve problems for computers, but for human beings; the computers are only tools in that process.”

Case Statement: “Articulate Coding” – his first post – a good one – keep it up!

InfoQ: Kent Beck: “Responsive Design” 1hr Presentation. Worth it!

On People, Process, and Passion and Persistence

My boss back at Bell Atlantic, who became my friend and mentor, Pat Trongo, had the following quote from Peter Senge’s “The Fifth Discipline” on his cube wall in big bold letters.

I found it inspirational back then. But now I am blessed to see evidence of this pattern in life daily – Great teams committed to a purpose accomplish great things.

The committed person brings an energy, passion,
and excitement that cannot be generated if you
are only compliant, even genuinely compliant.

The committed person doesn’t play by the rules
of the game. He is responsible for the game.

If the rules of the game stand in the way of
achieving the vision, he will find ways to change
the rules.

A group of people truly committed to a common
vision is an awesome force.

They can accomplish the seemingly impossible.

I am as blown away by this as I am with the OccupyPhilly protest teamwork I saw today, as I am with my co-workers who are one of the greatest teams I’ve seen in my career.

Great teams are everything. They don’t just ‘happen’ and require investments in trust, empathy, accountability, honesty, and crazy foolishness to grow. And when you see them you can’t help but be in awe.

On Making and Working Towards Big Things: on innovation

Wondering why we’re living in an age of ever increasing decreased expectations? You are not alone. Author Neal Stephenson wrote a thought provoking must read for World Policy Institute titled, “Innovation Starvation”:

The imperative to develop new technologies and implement them on a heroic scale no longer seems like the childish preoccupation of a few nerds with slide rules. It’s the only way for the human race to escape from its current predicaments. Too bad we’ve forgotten how to do it.