This site is an archive; learn more about 8 years of OpenHatch.

Intermediate Python Workshop wrap-up

by jesstess August 17th, 2012

A woman in a dinosaur hoodie practicing Python

On Saturday, July 28th, the Boston Python user group ran its first Intermediate Python Workshop. The goals of this workshop were twofold:

  1. Develop and playtest a bunch of novel projects with which intermediate Python programmers can practice their skills. This material would be available online under a permissive license for the whole Python community to reuse and remix.
  2. Provide an opportunity for Boston Python Workshop alums and other beginner-to-intermediate programmers to practice together at their own pace with the support of experienced mentors.

A table practices writing Python programs from scratch

This was the pitch for our 1-day event, which filled our 60 person capacity almost immediately and generated a 40 person waitlist:

Intermediate Python Workshop

Level up your Python through your choice of a dozen fun and practical projects.

We’ll provide the projects and friendly helpers; you bring a laptop and enthusiasm. You’ll rotate through the projects that interest you at your own pace, and we’ll have breaks for demos of awesome Python libraries and applications.

The Projects

Our material is all online. Please visit our wiki for a detailed event description and the full list of projects.

We’ll have 4 styles of projects for you at this event:

  • Practice writing Python programs from scratch.
  • Learn a Python library through a bitesized project.
  • Work through an online tutorial.
  • Learn intermediate CS concepts through an in-person interactive lecture.

Projects include:

  • Building a web application with Django
  • Interacting with a database in Python
  • Data analysis and plotting with Matplotlib
  • Using the Twitter API
  • Regular expressions and cheating at Words with Friends
  • Building a graphical game with Pygame

Prerequisites

This event is perfect for you if:

  1. You know Python language basics, including dictionaries, lists, for loops, and writing functions
  2. You are comfortable with looking up Python information when you need it (example: if you needed to learn about generating random numbers in Python, you’d be comfortable with Googling for and reading through the relevant documentation)

and at least one of the following is true:

  1. You want to practice writing programs in Python from scratch
  2. You want to learn about and practice more advanced Python/CS concepts, like classes and object-oriented programming
  3. You want to learn about and practice using useful Python libraries, for example to talk to a database, make graphs, or create graphical games

If you are not sure if this event is appropriate for you, please check out the projects and get in touch with us!

Event schedule

  • 10:30am – 12:00pm: Projects
  • 12:00pm – 12:45pm: Lunch: meet fellow Pythonistas over pizza (sponsored by the Python Software Foundation!)
  • 12:45pm – 1:00pm: Demos
  • 1:00pm – 2:30pm: Projects
  • 2:30pm – 2:45pm: Demos
  • 2:45pm – 4:15pm: Projects
  • 4:15pm – 4:30pm: Wrap-up

Talking through one of the intermediate projects

Content

All of our project content is online and ready for reuse under a
Creative Commons Attribution 3.0 Unported license. Some of the projects additionally have source code on GitHub.

For this event, we created projects of several styles:

1. Write it from scratch

A common frustration we hear from learners at this level is that they can following along with tutorials, but when it comes to solving a problem from scratch and staring at a blank text editor, they don’t know where to start.

To help people get over this learning curve hump, we wrote projects that give you practice solving problems in Python from scratch. These projects guide you through breaking down the problem into steps and help you check your work along the way:

  • Scrabble challenge: implement a scrabble solver that will tell you the best Scrabble words given a particular Scrabble rack (Great for cheating at Words with Friends!)
  • Flash card challenge: implement a flash card quizzer from scratch.

2. Self-directed projects

We wrote the scaffolding for several projects to get you to the fun parts of practical Python applications quickly:

  • Twitter: Use the Twitter API to write the basic parts of a Twitter client. See what your friends are tweeting, get trending topics, search tweets, and more.
  • ColorWall: Program graphical effects for a pixel matrix.
  • Databases and Jeopardy: learn how to get data from a database in Python while writing parts of a Jeopardy game, using real Jeopardy data!
  • Plotting data with matplotlib: learn how to plot data with the matplotlib plotting library.
  • Write a game with Pygame: Build a Snakes! clone using the Pygame graphical game development library.

3. Online tutorials

We’ve added some extra context, resources, and questions to check your understanding as you go through existing online tutorials:

4. In-person tutorials

Boston Python Workshop veteran Anna Callahan stepped up to lead a group through a 1.5 hour exploration of Python classes and objects:

  • Object-oriented Python: Create a mini-banking system with users and accounts while learning the ins and outs of classes and objects in Python.

Adam demos a Python program for manipulating NASA images

Feedback

Attendees filled out a short exit survey before leaving. Questions included how they’ve been learning and practicing Python, what they hope to do next with Python, and other topics they’d like to see turned into projects in this format.

There were a couple of recurring themes in the feedback:

  • Knowing that you could get help in real time, in person, made learning more enjoyable and less intimidating.
  • Attendees appreciated the ability to work at their own pace on their own interests.
  • Attendees felt focused and motivated by being surrounded by people of a similar skill level who were also committed to spending the day practicing Python.

Some quotes:

Thank you all so much for holding these workshops, more than anything I’ve tried they really motivate me to actually work on learning something new on my own time. Thank you thank you thank you!!

You guys are awesome and make learning Python much less intimidating.

More projects

We asked attendees to list more topics they’d like to see at events like this. The responses included:

  • scientific computing in Python
  • web scraping
  • GUIs
  • writing tests
  • packaging
  • version control
  • open source contribution
  • more practice writing programs from scratch

Background material

Attendees came to this event with a wide range of backgrounds. The projects assumed general fluency in the Python ecosystem and a willingness to read up on anything you needed to learn along the way, which from the feedback and our observations during the event seems to have worked for most people. We did get requests for cheatsheets on concepts like:

  • installing Python packages
  • command line navigation

which are a great idea and something we’ll definitely implement for the next workshop.

If you’d like to help us develop material for future workshops, please get in touch!

Resources for beginner and intermediate programmers

We asked attendees to describe the material they’ve been using to learn and practice Python. The range of responses was impressive and introduced me to some resources I hadn’t heard about before. Responses included:

Attendees swapping stories

Thank you to all of the volunteers who playtested the content and helped at the event. A big thank you to the Python Software Foundation for providing the pizza that kept these eager minds going! Boston Python is excited to run more Intermediate Python events and to continue experimenting with new content and event formats.

2 comments

  1. Wow!
    I could feel the enthusiasm through your words and pics. It is commendable to see people’s enthusiasm for programming, especially Python, one of my favorite subjects.

    Learn Python the Hard Way by Zed Shaw is a must read book.

    Good luck!!
    Amanda

  2. […] of running diversity and outreach initiatives within the Python community. From organizing numerous Boston Python Workshops to mentoring at GNOME Outreach for Women, Jessica is an advocate for creating inclusive open source […]

Write a comment