During week 4, I took a good look at my multiple motivations for taking part in CCOW. They were:
1) I want to master SCRATCH so that I can better teach it to my students, and so that I know more of it’s potential uses (particularly in the elementary grades that I teach).
2) I want to learn how to code again… not just as a subject to teach but as a creative outlet for myself.
3) I want to read more about and reflect upon Constructivist principles in my teaching and learning.
Given these 3 objectives here is a first try at framing a project idea:
I want to learn to code. I would make the leap from Scratch to Python, which is a more multi-purpose language. I could use it to code for the web or to make apps for my handy android phone. So… I will try to use a ‘How to code in python’ manual as a guide to create a game in scratch:
1) I want to build upon my experience using Scratch to teach myself how to Code in Python.
2) I want to document my personal experience and explore how I can help my students make the transition from SCRATCH to real-world programming.
I found some great online resources for teaching yourself scratch (mostly geared at children). The ones I used most were
I played with a variety of python IDEs (Integrated development environments) before settling upon pyscripter for windows as one that works for me.
I typed, debugged, debugged, debugged, modified, and debug several python programs from the above ebooks and tutorials.
I want to continue monkeying with python so that I can gain enough proficiency that next time I say, “Someone ought to create an app, program or plugin to do…”, I might attempt to be that someone.
I am considering starting a lunchtime programming club at my elementary school as an extension to the lessons in SCRATCH I have taught as one of the schools Library&Technology teachers.
Thank you to the Creative Computing Online Workshop team for providing such a wonderful opportunity for professional development.
In the above video from a variety of celebrities make a case for why programming should be taught to all children. It is worthwhile to watch the full 10 minute video at Code.org. Code.org also offers links to a variety of learn to program resources, including Scratch.
During this project to transition from Scratch to learning to program in Python, Madeline Bishop has twice made comments on my post suggesting that my journey moving from scratch to python would help students wishing to pursue career. She asked:
Do you have any idea of how many kids transition from Scratch into another language? How many go on to have IT career?
My first reactions were– I don’t know and I don’t really care. But this comes off as blunt and doesn’t fully explain my thoughts on teaching myself how to program, or teaching children how to program.
To explain, I have to tell a little bit about myself- I am a singer- songwriter, I play guitar and bass, I am a podcaster, blogger and have dabbled with creating websites since the early web. I dabble with photography and video. I was an early volunteer for Librivox.org recording public domain audiobooks. I am a fan and proponent of open source software and make liberal use of public domain and creative commons media. And I am a slow but persistent home handyman– I told my wife I am restoring our house on the 21 year plan (7 years in and it is starting to look quite nice).
As a regional children’s entertainer and folk songwriter, I have long become accustomed to well meaning questions of “So when can you quit your day job?” The answer is “Never”. But I derive immense pleasure from writing and sharing my music with others. When I get the odd paying gig, it helps subsidize my gear buying habit. But I derive far more value from all my creative endeavors than just monetary value. I think one of the greatest values is that I approach the world as a creator– rather than a consumer: of music, of media.
So learning to code for me is another creative outlet. For me it is a liberal art… not just a means to a career path. I found an article that develops this idea better than I can explain it: Why Everyone Should Learn to Program by Dan Haggard. In it, he explains how teaching himself to program in python has enabled him to do his work as a university administrator more efficiently. Let me share just a brief snippet that gets to the heart of his argument: (emphasis is all mine)
Given the relative ease in learning the basics of programming in scripting languages like Python, the time has come to challenge the assumption that programming is a specialisation. If you need an analogy: is learning to read and write in a spoken language like English – a specialisation? No, it’s a fundamental tool needed to navigate your contemporary existence. It’s easy enough to learn that you devote some of your early years to the task – and then it stays with you for life. You could go on to specialise in language use. Maybe you’ll go on to become a writer. But you don’t need to specialise for your language skills to provide you with an incredible level of life-improvement. Well – so to with programming.
What’s more – I now feel cured of an affliction I never realised I had. If I had to name this affliction, I’d call it –defaultism. Always did I just default to the way of things as it was handed to me. Now I look at every aspect of my life with a hacker’s eye. How can I free myself of this task? – is the question now at the forefront of my mind at all times. There is no need to throw out every interface with which we are presented. If it fits our needs and desires then fine. But how often do you subvert your own desires and needs because of the constraints imposed by the limitations of the interfaces with which you have been bequeathed?
I also found a nice contrasting view by Jeff Attwood at Coding Horror entitled: Please Don’t Learn to Code. Atwood’s key arguments centre around the idea that skilled programmers do not just produce lines of code. The are problem solvers who through years of experience develop certain ways of approaching and solving problems. He writes:
Look, I love programming. I also believe programming is important … in the right context, for some people. But so are a lot of skills. I would no more urge everyone to learn programming than I would urge everyone to learn plumbing. That’d be ridiculous, right?
In the final paragraphs of his article, Atwood seems to come closer to what I have been getting at:
The general populace (and its political leadership) could probably benefit most of all from a basic understanding of how computers, and the Internet, work. Being able to get around on the Internet is becoming a basic life skill, and we should be worried about fixing that first and most of all, before we start jumping all the way into code.
Please don’t advocate learning to code just for the sake of learning how to code. Or worse, because of the fat paychecks. Instead, I humbly suggest that we spend our time learning how to …
- Research voraciously, and understand how the things around us work at a basic level.
- Communicate effectively with other human beings.
These are skills that extend far beyond mere coding and will help you in every aspect of your life.
Both articles suggest that knowing how computers and programming work are a life-skill rather than just a career-path. They teach us a certain approach to problem solving and how to think.
Back to the initial question of how does my Scratch help kids transition to an IT career. I still don’t know. But I have found out through my readings and learning a bit about Python, that Python is a great first or second programming language that allows someone lots of opportunity to explore a variety of styles of programming and almost limitless applications: whether it be making games, applications for the web, mobile apps, or complex scientific mathematics. So yes, I guess it could be a first step to exploring an IT career, or the first step to becoming a creator rather than consumer. I find the latter idea much more compelling.