Tag Archives: Week 4

Coder’s Log Terradate 26.06.2013

pythonI got some great feedback about my post this morning that for my CCOW project what I wanted to do is leave the SCRATCH sandbox and learn to code in Python.

Eric Schilling responded on Google Plus:

Have you checked out Blockly from Google? It’s a web-based, graphical programming editor, similar to Scratch except it will provide the code in a number of different programing languages (phyton, xml, etc.).
http://blockly-demo.appspot.com/static/apps/code/en.htmlAlso, I found Code Academy was a wonderful resource to learn new programming languages.

I checked out both resources and they are quite useful.  Blocky seems to be a little more clunky than scratch, and it is also a sandbox type learning environment.  But it may be very useful transition for figuring out how things work in python by snapping somewhat familiar blocks together and viewing the python code that it outputs.
The codeacademy resource looks good, but I went looking for some other free kid friendly “How to code in python books” so that I could recommend some resources for children ready to make the move from Scratch.
Here on the blog, Claude commented:
Your blog is always very interesting Sean! Ok, now I have maybe too straightforward question for you : why don’t you set your objective to simply learn python and make a game with it? I know the course is supposed to be based on scratch, but it sounds like you’re twisting your multiple objectives to fit the course. And I think that when you teach with scratch, at some point you want introduce student too “fuller” languages, and I hear python is the natural second step. So it would be very coherent to prepare like the next step learning Python, wouldn’t it?
Thank you Claude.  You helped clarify to me about my project.  Rather than try to convert python code to scratch or vice versa, I will just document my own transition from the closed sandbox of scratch to the larger playground afforded by python.
So tonight I explored a number of beginner Python resources including:
Al Sweigart has 3 comprehensive free books geared at teaching nonprogrammers and children how to program python through games.

I settled on using the Python Book for Beginners by Jody S. Ginther  because it offers  a very simple short (58 page) primer to downloading and beginning to program with Python.    The first thing I did after I downloaded the book, is followed its instructions to Download Python for Windows and install it.  Don’t worry if you use Mac or Linux, there are flavours of Python for most operating systems.

Then I just started working through the book and following the code examples to make my first programs.  My first impressions of python are that through my use of Scratch and programming in BASIC 30 years ago, I know the basic principals of programming.  I will just have to start to learn the commands, syntax and peculiarities of python.  I like how the IDLE python editor uses color commands to differentiate between different types of commands.  It also automatically indents certain commands to make it easy to see which commands belong with which blocks of code.

My other first impression is that I realize now that the training wheels are definitely off.  Scratch offers a kind of mixed sandbox with it’s integrated graphics and audio editors, background support and focus on making multimedia programs easily.  There is a ton of programming and arranging you can do in scratch without ever snapping together a code block  (Ie setting up a picture or scene with a variety of text, paintings, and sprites).     Not so in python (or other object oriented languages).  If you don’t explicitly tell the computer to do something in the code– it will not happen.

Last thought before bedtime.  Today’s refined project objective for my CCOW project:  Document my transition from using Scratch to learning python on this blog.   Try to keep in my mind tips and resources that would help students make this transition.

Week 4- Workshop Project: Defining and Planning

cube of RubikHere it is.  We are midweek through the crazybusy last week of school, so I have not been able to do much with CCOW except for watching the office hours while packing up my little office/classroom for the summer.

I have been dreading the project part of the workshop because I had too many ideas and many of them were larger than I think I could tackle in 3 weeks.  One of them is worth mentioning just to get a link in here.  There is a good start to an Introduction to Scratch handbook on Wikibooks that is incomplete.  I considered seeing if a group of people would be interested in joining wikibooks to work on completing this scratch book.   It could turn into a project which is waaay larger than the scope of this workshop. It would involve collaborating with another online community and learning it’s culture and way of doing things.  And I think, to a certain degree it would be re-inventing the wheel because the Scratch wiki  contains all the information such a book would have and more, and it is actively maintained.  Also during my too brief explorations of the Resources section of ScratchED, I think that there are plenty of other easily accessible Scratch primers and activities, so this one is not needed.

That got me thinking about Objectives, aka learning goals, aka purpose, aka What are we supposed to do, aka what do I what to do.  My objectives and goals for participating in this online workshop are individual, as are those of each of the other participants in the workshop.  And the facilitators each of reasons (objectives) for participating in CCOW.  Not only that, but each person in the process may have multiple (sometimes conflicting) goals.   For instance, I know that the lead facilitator of CCOW, Karen Brennan, stated that she wanted to try to organize a MOOC using a new google platform that allows one to design and host online courses.  That sounds like a fine personal professional learning goal for her, and we all are benefitting from the fruits of her work on that goal.

But what are my learning goals for participating in this workshop?  I had to reflect on that a bit because in my teaching I often start doing the planning and teaching before I fully realize my objectives.  (I think this is a reality in any kind of teaching and learning environment).

  • I signed up because I have been teaching Scratch to elementary students  (and to other teachers) for about 3 years but I always feel that I never have the time to play with it myself– to really get under the hood and relearn to code.

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).

This spring my nephew got a rubiks cube.  When I was 13, I could solve a cube in under a minute, but I had completely forgotten how.  This spring I bought a couple of cubes and relearned how to do it.  I love problem solving puzzles (like sudoku) and I forgot how much I enjoyed the sheer muscle and brain stimulation of trying to solve a cube as quickly as possible.

The rubiks cube was left behind in a time in my childhood when I was also fascinated with the early personal computers (TI-99, apple II, and commodore 64 primarily).  From the time I was 13 to about 16 I programmed all sorts of things in BASIC, PASCAL, and a bit of assembly language.  I haven’t really programmed since, except for learning the basics of HTML and CSS, and the tiniest bit of Javascript.  I forgot how much I enjoyed programming.  Also as a podcaster, blogger, songwriter, creative-type 21st century internet denizen, I have come to realize that if you want to be more than just a consumer of media, you need to have a basic understanding of how to code.

2) I want to learn how to code again… not  just as a subject to teach but as a creative outlet for myself.  While I have been thinking about CCOW and doing the work of the workshop, I have also been investigating other ways to learn programming.  I have downloaded a bunch of `Teach Yourself Python` resources and I have signed up for the Android App Inventor site (which is based on scratch).

3)  I want to read more about and reflect upon Constructivist principles in my teaching and learning.  I have been enjoying some of the underlying philosophy behind SCRATCH and CCOW… alot.  I know that SCRATCH is based on a constructivist approach,  and I know that the facilitators have intentionally structured the course based on constructivist principles.  But I want to learn more about the basic philosophies, core principles, key writings and proponents, of the constructivist school of 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.

In this way I will become familiar with some of the basic structure and syntax of python.  I want to use my growing knowledge of SCRATCH to make myself a rosetta stone to understand other programming languages– (like python).

 I need to dig into some online and downloaded resources, but I think I will try to use a tutorial on how to code a game such as reversi using Python.  If this looks too challenging to adapt to scratch I will choose a simpler game. 


My writing/thinking time is just about up for today,   When I revisit this post I want to flesh out my idea to get more specific about which python/scratch resources I would need and narrow down what game I want to make.  I also want to start to answer the Key Questions for Week 4- Workshop Project: Defining and Planning.


    1. Workshop project problem/exploration/question statement
      What is the problem you’re trying to address? Maybe it’s not a problem, but rather an area of inquiry to explore. What is the exploration or question that motivates your project? Can you express this in no more than 3 sentences?
    2. Workshop project format
      How are you thinking about responding to your problem/exploration/question? What will you be making or doing for your project?
    3. Workshop project needs
      What do you need in order to successfully make progress on your project? Do you have access to the resources that you need? What do you still need to figure out? Is it a big Scratch project, a series of mini-activities that explore advanced concepts, a proposal for a learning experience, new resources for young learners, or something else entirely?
    4. Workshop project plan
      What are the steps for getting your project done? What is a timeline for getting it done?
    5. Workshop project keywords
      What are five keywords or tags that describe your project?