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
I want kids to go to graphics as quickly as I can
PYTHON IS BUILT IN ON MAC OS X (FROM PAUL CLARK – RUN THE TERMINAL IN OS X AND TYPE “PYTHON”)
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
ALSO FROM PAUL CLARK – LOTS OF PYTHON TUTORIALS ON YOUTUBE!
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
– 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!
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 wesfryer.com/after.
On this day..
- Learn About e-Publishing at October 24-25, 2014 OKC Writing Conference - 2014
- "My gut told me to say yes" - 2013
- What do we do for third tier schools? - 2010
- Zed's Ethiopian food and Alexander: 1.5 Years Later - 2009
- The Magic of Digital: Collaborative Interaction in Teacher Professional Development - 2008
- The Transformational Power of Social Media Technology in Learning: Inspiring Stories from the Classroom and Beyond! (Idit Caperton) - 2008
- Where in the World is... GeoRSS for the Classroom - 2008
- Grassroots Creativity: Helping Everyone Become a Creative Thinker by Dr. Mitchel Resnick (MIT Media Lab) - 2008
- links for 2008-07-02 - 2008
- Reconsidering the Bering land bridge theory - 2007