Moving at the Speed of Creativity by Wesley Fryer

Python for Fun Introductory Programming by Michelle Hutton

These are my notes from Michelle Hutton’s NECC 2008 session “Python for Fun Introductory Programming” on July 2, 2008. The official description was:

Learn a modern, creative, classroom-tested approach to introducing programming with Python. Hook reluctant and inexperienced students from middle school through college.

Computer science teachers are facing a problem of decreasing enrollment, especially where computer science is an elective and seen as hard and not creative. Traditional approaches do not seem to engage students who want to create the next World of Warcraft or Sims, not learn about data types. Old methods have grown less effective as computers have grown more sophisticated – students want to do projects their peers will find neat. As teachers we face a challenge – introductory students do not have the prior knowledge to quickly learn enough to program things that “look cool” and tools which support rapid development often lack the ability to support the logic of true programming.

Python is one solution to the problem of keeping students engaged while providing valuable skills and concepts they can use to understand computer science. It is gaining popularity in both education and in industry. It has a learning curve appropriate for introductory courses (low floor) and opportunity to do very creative, complex tasks (high ceiling).

This presentation will present the approach used at The Girls’ Middle School for introducing programming using Python. Similar to the Media Computation approach out of Georgia Tech, graphics are introduced extremely early and used to motivate students to learn important underlying concepts such as conditionals and loops. The presentation will include examples of student work, assignments, and ideas for how to add or abstract details and differentiate instruction based on students’ ability and experience.

MY THOUGHTS ARE IN ALL CAPS. I arrived in this session at the halfway point, so I missed a lot of content. Still, this is compelling stuff and I am interested in learning more about Python. (No handouts are available on the NECC webpage for this session yet, but I think Michelle is going to add resources / handouts after this session. Michelle’s email is mhutton [at] girlsms [dot] org.

If kids are motivated and interested, they will work VERY hard on it even if the process and content is very difficult

Just in time teaching

I know a lot of teachers who feel like they need to know all the answers before they stand up in front of the class
– kids feel stupid when they don’t know what to do
– so being up in front of the kids and not knowing all the answers is a VERY good thing, it is reassuring, to know we don’t know all the answers now but we can figure it out

Enlarging the sandbox as we go along
– square root
– random
– graphics

I want kids to go to graphics as quickly as I can


John Zelly has written a great book completely in line with my philosophy “Python Programming”
– he gives the graphics module away

first we did “the pretty picture” assignment
– you can tell I work with girls
– it has geometric shapes (they learned those before this project)
– initially I told them their product couldn’t be abstract art
– it has to have four objects / elements
– some kids made some very basic things


one student submitted two assignments because she took the abstract art
– students had a GREAT time with this project, the fact that it was open ended really

I didn’t want them to just throw four objects on the screen and not know what they were doing, I wanted them to be deliberate and know/understand what they were doing

For games, we did Hangman
– it was very difficult
– started with graphic stuff
– it seemed counterintuitive to build the interface first and then the program, but this made them REALLY want the program to work after they built the interface
– this was complex and long, but really fun to build

Fun is better than knowing it all
– engaging not scary
– skip as many details as possible (without hand-waving – saying “we’ll talk about that later”)
– everything I asked them to do they could do almost immediately
– details get filled in as needed (e.g. intro chem, physics, math)
– some things must be explained clearly (conditionals, lists, functions, etc.)
— I didn’t pull out a day for some of these things, so my students had a weaker understanding of some of those things
— figure out the things that you really have to STOP and explain clearly

computer scientists spend lots of time talking about abstraction, but
– I went back to how we teach chemistry because that was my background

many details can be filled in later for students

Other computer languages used in the program
– Java
– I didn’t feel like Java was serving the students well, there was too much overhead in terms of kids typing things they did not understand
– we switched to Perl for five years
– we have been very happy with Python!

Technorati Tags:
, , , , , , ,

If you enjoyed this post and found it useful, subscribe to Wes’ free newsletter. Check out Wes’ video tutorial library, “Playing with Media.” Information about more ways to learn with Dr. Wesley Fryer are available on

On this day..



, ,