The Java Ecosystem (for the Sinatra or web.py lover)

Shaneal Manek’s posted a piece on Java that is another one for the bookmarks (and one to experiment with if you aren’t familiar), that introduces some Sinatra or web.py capabilities to the Java crowd: The Modern Java Ecosystem (for the Sinatra or web.py lover).

Here goes his example project on Github.

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”

Virtualenv, Fabric, and Pip: a coding post

Alex Clemesha wrote a blog post back in 2009 that points to 3 elements of the Python ecosystem that I’ve made part of my toolbox that if you haven’t read, is worth a read: “Tools of the Modern Python Hacker: Virtualenv, Fabric and Pip”. I’m pretty sure that without these 3 (and Jenkins/Hudson), recent projects of mine would have been far more complicated to accomplish with teams that have been variable in size from day to day. They reduce complexity, and like Maven on the Java side, I wouldn’t want to do a project in Python without them now.

Beginner’s Eyes: on storytelling and growth

John D. Cook, in a short, poetic post, describes how experts end up where they started, as beginners, and why, in his blog post “Coming full circle”. A few folks in his comments thread make the connection with Zen’s concept of “Shoshin”, the Beginner’s Mind, and it does, but I hear echoes of another journey just as strongly.

YouTube: “The Hero’s Journey / Monomyth”

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”: