Motivation: Teaching a basic intro level programming workshop

Feb 26, 2014 • Neem Serra

Summary:

When I first was introduced to programming, I had heard all of these buzzwords and I couldn’t keep track of them all.  To be honest, I still have trouble keeping track of all of them.  In social settings, I’m often in a crowd of programmers who are doing the same thing as I am, but the buzzwords make it sound like they’re doing something a million times harder.

Background:

I taught an intro to programming in Python class in association with Girl Develop It at the Strangeloop Conference in 2013.  The class was attended by a wide variety of people — nontechnical people at technical companies, programmer’s significant others, biologists who wanted a simple introduction to programming, etc.

Plan for lesson:

There were two main motivators in my class.  One was that the environment was super supportive.  People felt at ease to interrupt me and ask questions.  People leaned over and helped their neighbor.  I had assistants who could troubleshoot for people who were getting left behind.  There was someone at the class who already knew how to program and was mocking their neighbor for struggling with simple concepts—that person was asked to stop being negative or leave.

The other main motivator was that each section was broken up into three parts.  The first part was introducing the topic with slides.  The second part was a hands on demo where I talked through my thought process and students saw me coding in real time.  This was particularly nice because no “magic” code could be added without me going through it’s purpose.  The third part was having students implement something from start to finish for each section.  This allowed students to have a hands on experience and really understand what they were doing (instead of potentially fooling themselves into thinking that they followed everything presented in the slides).I had been a in class like this before, and my favorite part was seeing the instructor *not* perfectly write all of the code.  He would write something, see it fail, and then trouble shoot it.  I learned the most from his way of thinking through a problem than seeing it executed perfectly on the first try.  For me, this is the best skill I can learn from an instructor because we don’t always code the right thing perfectly on the first try.