Summer 2014 PyCamps are scheduled

Summer 2014 PyCamp schedules have just been announced!  I attended PyCamp last year and loved every moment of it.  Being self-taught, it helped fill in a ton of gaps I had and introduced me to so much new stuff to explore.  These are not meant for absolute beginners, but you don’t need to be an expert to get a lot out of it.  You should be fine if you’ve gone through a basic book, Codecademy, or PythonLearn.

Here’s the blurb of the PyOhio PyCamp:

PyOhio PyCamp 2014 is an ultra-low-cost, five-day, Python boot camp taking place July 21-25 in a high tech classroom on the campus of The Ohio State University. PyCamp has taught the fundamentals of Python programming to thousands. You can get up to speed on the most modern programming language at PyCamp. Sign up today at

These camps are usually held the week leading up to a larger conference, such as PyOhio.  Be sure to stay for the conferences if you can.  Depending on the colleges and universities you have nearby, these may be your only opportunity for a truly affordable Python class.  Tuition for the one leading up to PyOhio is $300, which is much less than a community college or university’s tuition cost.  The money raised by these camps is also used to cover the cost of the host conference.

This year they have some limited scholarships available:

An anonymous donor has stepped forward for PyOhio PyCamp 2014 and offered four scholarships. The scholarships are specified for “women and minorities under-represented in computer science.” Two additional criteria apply: applicants must not already be working in IT nor may they be already enrolled in a “formal” (i.e., secondary or university classroom) programming course or major (MOOCs are OK). The scholarships cover $150 of the eligible tuition. Therefore, an early bird tuition becomes $150. Or an early bird tuition with an OSU email address becomes just $100. These scholarships are first-come, first-served. If you qualify, please send an email, subject line “PyOhio PyCamp 2014 Scholarship,” with how you meet with criteria and why you need PyCamp to


In defense of documentation and /r/learnpython

I feel like any discussion of reddit as a source of anything requires a “defense of” perspective.  There is a traditional and justified fear of going to the internet for help, but I have been pleasantly surprised at the /r/learnpython community.  Perhaps it is because the entire purpose of this group is for newbies to ask newbie questions that participants of the community are so kind.  Having /r/python as a separate group is also helpful.

Any student new to a domain needs to find a learning community.  This may be a friend who knows the topic, classmates, or internet forums.  Given the small number of Python communities out there in physical space, having virtual communities is often the only recourse.

Why do I find that /r/learnpython is a pretty awesome group?  Mostly, everyone is really nice.  We all need supportive and nice communities and tutors. Being afraid to ask a question prevents growth.  This is not to say that you shouldn’t try to resolve things on your own.  I have often answered my own questions while trying to write them up for other people.  I never really used these resources to ask questions, because it is very rare for me to ask a question that hasn’t already been asked somewhere else.

The other important factors:

  • a solid list of resources, if not obviously organized
  • huge range of research domains represented
  • fast and kind answers

A big issue I hear reported from students, particularly from the humanities and social science crowds, is a lack of comfort when using documentation.  Their discomfort is usually communicated as something like “Looking at documentation means I don’t really understand it.”  My theory behind this is that the kind of training that we get in our coursework is just different from math/CS.  The idea of the ‘cheat sheet’ isn’t really present in our normal studies.  We read original materials, discuss them, write about them, and come away with a mastery of concepts rather than a memorization of syntax.  I would argue that items like and Python in Your Pocket are viewed by some as if they were Cliffs Notes.  This doesn’t map perfectly, but it gets my point across.  I hypothesize that the non-STEM students view referencing documentation as implying that they don’t understand the material.  I wonder if language students feel differently from this because of the need to reference dictionaries.

This is an interesting distinction between these two groups.  In programming you learn semantic concepts and study language specific syntax.  On the other side of the coin, humanities and social science students use human language our or syntax and deeply study the semantics of various theoretical domains.  Referencing syntax for this later group amounts to reviewing style guides for citation and dictionaries, but is viewed as functionally different from the semantics they are learning.  They have such a focus on semantics that syntax is often not formally distinguished.  On the other hand, to programming, semantics and syntax are (usually) taught at the same time and are intertwined.  Referencing documentation for syntax is similar to referencing how to spell a word or how to use commas.  This isn’t “cheating” because it isn’t giving you the answer and doesn’t imply weakness in understanding.

I try to focus on making these distinctions when working with students reporting this hesitation:  it is completely normal to reference documentation all the time when writing programs.  It is not giving away the answer, but just telling you how to spell your answer correctly.  You still have to come up with the answer.  There could also be an argument that looking at documentation is not only normal, but ideal.  Particularly when using syntactical forms outside your normal toolbox, or when the teaching process is focusing on the semantic forms rather than memorizing syntax.

As explained to me by my web design professor when announcing that all our exams were open book and open internet:  we are never alone when coding.  When writing a program in a professional environment you will have your books and coworkers available.  Communication, discussion, etc. are vital to the process and professional growth.  Our society introduction specialization for a reason:  there are benefits to people having deep a understanding of one particular domain, but specialization requires that we all work together.

To new students of Python or any other programming language:

  • embrace documentation
  • collect helpful documentation for your domain together
  • don’t be afraid to make annotations or notes in your reference books
  • looking at documentation doesn’t mean you don’t know what you’re doing
  • we very often answer our own questions when trying to formulate them
  • find a community and talk to your learning peers

Programming for Everybody

I was very pleased to see that Dr. Chuck has started up a new Coursera class, Programming for Everybody.

A few things caught my eye immediately:

  • There are six sessions listed that run regularly through next year.
  • The activities are data centered.
  • Material is based on Python for Informatics, which I know and highly regard.

As some of you may know from reading my list of resources, I haven’t been too happy with the “beginner-ness” of some of the Python courses offered by Coursera.  For example, many presume that students can easily catch on to and develop mathematical algorithms for programs with minimal instruction.  Additionally, the skills taught in those classes do not always directly map to the needs of researchers needing Python for data processing and analysis.  Learning how to program by creating interactive games is awesome, if you want to make interactive items, but not always the most useful exposure if all  you need to do is manipulate text.

One of my first exposures to Python was through Python for Informatics, so I am excited to see the perspective of this class as a foundational boot camp and gentle introduction.  This course seems to be designed similarly to the way Py-CU designed the Introduction to Programming workshop, and that worked out well.  Our perspective was to give students enough introduction so that they could dive right into a book or other resource and not feel so overwhelmed.  We found that this worked out well and students left inspired and ready to tackle new things.

I look forward to seeing these types of classes and resources evolve over time, and I am particularly excited they are being designed to run on a regular basis.

Presenting at PyCon!

PyCon 2014 is coming up quickly!  I am so excited to be presenting a poster and have been working madly to finish it up.

Link to the program entry for my poster

My poster focuses on students who are attempting to learn programming and/or Python from outside a standard computer science educational track.  These students include (but not limited to) those who cannot access college courses due to financial or time issues, undergraduates out of credit hours to begin a new major or minor, and graduate students unable to add CS coursework into their program.

Students in this situation are facing complications beyond basic access. They may not have the traditional prerequisite math and physics, lack basic computing skills, and materials that don’t speak to their learning needs.  These other issues do not take away from their desire and need to learn.

In this poster, I have attempted to summarize the situation, listed a set of Python community goals, described the outreach work of Py-CU, and highlighted some of the best resources for students in this situation.  The goal of this poster is to encourage members of the Python community to give back, explain the unique situation these students are in, and provide readers with learning resources they can direct students to.  This has been a wonderful topic to explore, and is framing additional work that I’m hoping to complete over the summer.  I’ll post a copy of my poster once I’ve finalized it.

The talk list for PyCon is amazing and I’m looking forward to being able to report on some new resources people are presenting about.  Going to PyCon?  Check out the posters on Sunday!