pages tagged tags/searchbloghttp://blog.spang.cc/tags/search/blogikiwiki2014-04-10T18:00:36Za tuturial about searchhttp://blog.spang.cc/posts/a_tuturial_about_search/2014-04-10T18:00:36Z2014-04-10T03:46:01Z
<p>Today I gave a tutorial at <a href="https://us.pycon.org/2014/">PyCon
2014</a> entitled <em>Search 101: An Introduction
to Information Retrieval</em>.</p>
<p>It was an experiment of sorts: the first workshop I've run primarily by
myself, my first tutorial at PyCon, my first paid teaching gig. It was
an opportunity to take some of the lessons I learned from teaching the
<a href="http://bostonpythonworkshop.com/">Boston Python Workshop</a> and apply
them to a new situation.</p>
<p>The material itself is a distillation of many hours of frustration with
the documentation for various open source search engine libraries,
frustration that they didn't tell me where to start or about the big
picture, they just jumped straight into the details.</p>
<p>Here's what worked:</p>
<ul>
<li><a href="http://ipython.org/notebook.html">IPython Notebook</a>. Oh em gee. I
started writing the class's handout using IPython Notebook because it
was a simple way to easily embed syntax-highlighted code into a
markdown document that was viewable in a browser. Not only was it a
super quick and fun way to <em>write</em> the handout, but many students used
the interactive execution features to play around with the example
code.</li>
<li>Not having a paper handout. Saved trees, printing hassle, and no one
seemed to mind.</li>
<li>Putting <em>everything</em> in a git repo... git is sufficiently ubiquitous
these days that students didn't really have trouble getting a copy,
and appreciated having everything in one place, with simple setup
instructions. I brought a clone of the repo on a USB stick as a backup
plan.</li>
</ul>
<p>Here's what caused problems:</p>
<ul>
<li>Mostly, the IPython dependency <code>pyzmq</code>, which requires compilation. I
don't know what the current landscape is for Python distribution, but
installing these libraries through <code>pip</code> is still a pain. I've heard
rumour that more ubiquitous <a href="http://pythonwheels.com/">wheels</a> may
solve this in the future.</li>
<li>Some people aren't used to using <code>virtualenv</code> everywhere. Even seeing
that, I still think it's worth the confusion to put it forth as the
recommended setup method.</li>
</ul>
<p>Intermediate students are a different crowd than beginners. There was
less of an air of discovery in the room, though I organized the class
around open-ended tasks. Since the material allowed for folks to take it
in the direction of their interest, I found it a bit difficult to gauge
whether people were following or not. Overall though, everyone was
attentive and studious. I had fun.</p>
<p>Ruben and Stuart, the PyCon tutorial organizers, had logistics running
super smoothly, AV, lunch, everything. Thanks for that you guys, you
rock. <img src="http://blog.spang.cc/tags/search/../../smileys/smile.png" alt=":)" /> And thanks as well to my helpers: Leo, the tutorial host, Eben,
my TA, and Roberto, on AV. It's impossible to pay adequate attention to
20+ people as a single person, couldn't have done a decent job without
y'all. <img src="http://blog.spang.cc/tags/search/../../smileys/smile4.png" alt=";)" /></p>