Accepted Tutorials

Dynamics and Control with Python

Jason Moore, Tarun Gaba in Science

In this tutorial we will first learn how to solve, simulate, and visualize multibody dynamics problems with Python. These methods and techniques play an important role in the design of robots, vehicles, spacecraft, manufacturing machines, etc.

Wednesday 9 a.m.–12:20 p.m. in Room 522 A

Mining Social Web APIs with IPython Notebook

Matthew Russell in Other

Social websites such as Twitter, Facebook, LinkedIn, Google+, and GitHub have vast amounts of valuable insights lurking just beneath the surface, and this workshop minimizes the barriers to exploring and mining this valuable data by presenting turn-key examples from the thoroughly revised 2nd Edition of Mining the Social Web.

Wednesday 9 a.m.–12:20 p.m. in Room 50 Viger (Westin Hotel)

A hands-on introduction to Python for beginning programmers

Jessica McKellar in Python Core (language, stdlib, etc.)

Beginning programmers: welcome to PyCon! Jumpstart your Python and programming careers with this 3-hour interactive tutorial. By the end, you'll have hands-on exposure to many core programming concepts, be able to write useful Python programs, and have a roadmap for continuing to learn and practice programming in Python. This class assumes no prior programming experience.

Wednesday 9 a.m.–12:20 p.m. in Room 522 BC

Exploring Machine Learning with Scikit-learn

Jake Vanderplas, Olivier Grisel in Science

This tutorial will offer an introduction to the core concepts of machine learning, and how they can be easily applied in Python using Scikit-learn. We will use the scikit-learn API to introduce and explore the basic categories of machine learning problems, related topics such as feature selection and model validation, and the application of these tools to real-world data sets.

Wednesday 9 a.m.–12:20 p.m. in Room 525 AB

How to formulate a (science) problem and analyze it using Python code

Eric Ma in Science

Are you interested in doing analysis but don't know where to start? This tutorial is for you. Python packages & tools (IPython, scikit-learn, NetworkX) are powerful for performing data analysis. However, little is said about formulating the questions and tying these tools together to provide a holistic view of the data. This tutorial will provide you with an introduction on how this can be done.

Wednesday 9 a.m.–12:20 p.m. in Room 523 B

0 to 00111100 with web2py

G. Clifford Williams in Web Frameworks

This tutorial teaches basic web development for people who have some experience with HTML. No experience with CSS or JavaScript is required. We will build a basic web application using AJAX, web forms, and a local SQL database.

Wednesday 9 a.m.–12:20 p.m. in Room 521A

Getting Started with Django, a crash course

Kenneth Love in Web Frameworks

Getting Started With Django is a well-established series of videos teaching best practices and common approaches for building web apps to people new to Django. This tutorial combines the first few lessons into a single lesson. Attendees will follow along as I start and build an entire simple web app and, network permitting, deploy it to Heroku.

Wednesday 9 a.m.–12:20 p.m. in Room 521 BC

Descriptors and Metaclasses - Understanding and Using Python's More Advanced Features

Mike Müller in Python Core (language, stdlib, etc.)

Descriptors and metaclasses are advanced Python features. While it is possible to write Python programs without active of knowledge of them, knowing how they work provides a deeper understanding about the language. Using examples, you will learn how they work and when to use as well as when better not to use them. Use cases provide working code that can serve as a base for own solutions.

Wednesday 9 a.m.–12:20 p.m. in Room 515 BC

mrjob: Snakes on a Hadoop

Jim Blomo in Python Libraries

This tutorial will take participants through basic usage of mrjob by writing analytics jobs over Yelp data. mrjob lets you easily write, run, and test distributed batch jobs in Python, on top of Hadoop. Hadoop is a MapReduce platform for processing big data but requires a fair amount of Java boilerplate. mrjob is an open source Python library written by Yelp used to process TBs of data every day.

Wednesday 9 a.m.–12:20 p.m. in Room 523 A

Django for Web Designers and Front End Developers

Tracy Osborn, David Wolever in Best Practices & Patterns

Traditional tutorials for Django usually assume some programming experience, but what if someone is learning Python and Django with a HTML/CSS background? This tutorial focuses on the web-based features of Django — templates and the admin — and goes over the basic building blocks of Django programming to get web designers excited and interested in learning more.

Wednesday 1:20 p.m.–4:40 p.m. in Room 515 BC

Shiny, Let's Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulnerabilities

Mike Pirnat, David Stanek in Security

The Internet is a dangerous place, filled with evildoers out to attack your code for fun or profit, so it's not enough to just ship your awesome new web app--you have to take the security of your application, your users, and your data seriously. You'll get into the mindset of the bad guys as we discuss, exploit, and mitigate the most common web app security flaws in a controlled environment.

Wednesday 1:20 p.m.–4:40 p.m. in Room 521 BC

Build your own PiDoorbell ! - Learn Home Automation with Python

Rupa Dachere, Akkana Peck in Embedded Systems

Rupa and Akkana will walk you through the setup/code to build your own super-cool PiDoorbell project to monitor/notify you about visitors at your house. Learn about the RaspberryPi, PiDoorbell software/hardware and build your own PiDoorbell to take home with you! Bring a RaspberryPi, power cord, USB cable (USB camera optional). We will provide the rest of the hardware (wifi, prox. sensor etc.).

Wednesday 1:20 p.m.–4:40 p.m. in Room 50 Viger (Westin Hotel)

Python 3/2 Web Development with Pyramid

Paul Everitt in Web Frameworks

Python 3 is upon us! This lively, hands-on tutorial covers a little about a lot, showing Python 3 (and 2) web development using Pyramid, a fast, modern, lightweight web framework. Fun, fast-paced, and most certainly not aimed at experts.

Wednesday 1:20 p.m.–4:40 p.m. in Room 521A

Python Epiphanies

Stuart Williams in Python Core (language, stdlib, etc.)

This tutorial is for developers who've been using Python for a while and would consider themselves at an intermediate level, but are looking for a deeper understanding of the language. It focuses on how Python differs from other languages in subtle but important ways that are often confusing, and it demystifies a number of language features that are sometimes misunderstood.

Wednesday 1:20 p.m.–4:40 p.m. in

Diving deeper into Machine Learning with Scikit-learn

Olivier Grisel, Jake Vanderplas in Science

This tutorial session is an hands-on workshop on applied Machine Learning with the scikit-learn library. We will dive deeper into scikit-learn model evaluation and automated parameter tuning. We will also study how to scale text classification models for sentiment analysis or spam detection and use IPython.parallel to leverage multi-CPU or ad-hoc cloud clusters.

Wednesday 1:20 p.m.–4:40 p.m. in Room 525 AB

Data Wrangling for Kaggle Data Science Competitions – An etude

Krishna Sankar in Best Practices & Patterns

Let us mix Python analytics tools, add a dash of Machine Learning Algorithmics & work on Data Science Analytics competitions hosted by Kaggle. This tutorial introduces the intersection of Data, Inference & Machine Learning, structured in a progressive mode, so that the attendees learn by hands-on wrangling with data for interesting inferences using scikit-learn (scipy, numpy) & pandas

Wednesday 1:20 p.m.–4:40 p.m. in Room 522 A

Search 101: An Introduction to Information Retrieval

Christine Spang in Python Libraries

Data is everywhere! And most of the time, the best way to find what you want in a pile of data is to search it. In this project-based tutorial, you'll get an introduction to the basic theory of search and write a program to index and search a collection of Wikipedia documents using the Whoosh library. You'll leave with the ability to add search functionality to all of your own projects.

Wednesday 1:20 p.m.–4:40 p.m. in Room 523 B

Let's Learn Twisted Python

Aurynn Shaw in Python Libraries

Let's Learn Twisted is a short 3-hour tutorial covering the basics of writing a Twisted Python client-server application using Twisted Python's Factory and Endpoint APIs to construct a peer-to-peer chat and RPC network.

Wednesday 1:20 p.m.–4:40 p.m. in Room 522 BC

Introduction to game programming

Richard Jones in Gaming

This tutorial will walk the attendees through development of a simple game using PyGame with time left over for some experimentation and exploration of different types of games.

Thursday 9 a.m.–12:20 p.m. in Room 521A

IPython in depth: high productivity interactive and parallel python

Fernando Perez in Python Libraries

IPython provides tools for interactive and parallel computing that are widely used in scientific computing, but can benefit any Python developer. We will show how to use IPython in different ways, as: an interactive shell, an embedded shell, a graphical console, a network-aware VM in GUIs, a web-based notebook with code, graphics and rich HTML, and a high-level framework for parallel computing.

Thursday 9 a.m.–12:20 p.m. in Room 521 BC

Hands-on Beginning Python

matt harrison in Python Core (language, stdlib, etc.)

Do you want to dive right into Python? This hands-on tutorial assumes some programming experience (no Python required) and walks you through the basics of the language. Through a carefully crafted series of lectures and assignments you will be thinking like a Pythonista in no time. Bring a laptop with Python (3 or 2), your favorite editor, and a desire to get your hands dirty.

Thursday 9 a.m.–12:20 p.m. in Room 523 B

Generators: The Final Frontier

David Beazley in Python Core (language, stdlib, etc.)

Python generators have long been useful for solving all sorts of problems involving iteration and data flow. However, one of their more powerful uses is in customizing various aspects of program control flow. In this tutorial, we'll look at some more exotic uses of generators such as writing context managers, inlining callback functions, eliminating recursion, implementing actors, and more.

Thursday 9 a.m.–12:20 p.m. in Room 515 BC

Introduction to SQLAlchemy

mike bayer in Databases

The goal of the tutorial is a broad-based introduction to SQLAlchemy, spanning the Core and ORM components as well as the systems that underlie them. The tutorial takes the "harder" approach teaching from fundamentals first, emphasizing details on how the library interacts with the database and SQL and concluding with an introduction to the ORM, providing a solid perspective for continued study.

Thursday 9 a.m.–12:20 p.m. in Room 523 A

TDD for web applications, from scratch

Harry Percival in Best Practices & Patterns

Learn Test-Driven-Development and Django by building a simple web application from scratch. We'll cover unit testing, Django models, views and templates, as well as using Selenium to open up a real web browser for functional tests. This talk is intended for audiences new to TDD, new to Django, and even new to Python! You'll need Python 3, Git, Firefox, Selenium and Django installed on your PC.

Thursday 9 a.m.–12:20 p.m. in Room 522 BC

Hands-on with Pydata: how to build a minimal recommendation engine.

Diego Maniloff, Christian Fricke, Zach Howard in Science

In this tutorial we'll set ourselves the goal of building a minimal recommendation engine, and in the process learn about Python's excellent Pydata and related projects and tools: NumPy, pandas, and the IPython Notebook.

Thursday 9 a.m.–12:20 p.m. in Room 525 AB

Flask by Example

Miguel Grinberg in Web Frameworks

Flask is a web framework for Python based on Werkzeug, Jinja 2 and good intentions. It is considered a micro-framework, but don't get the "micro" part fool you; Flask can do everything others can do, many times in a simpler, leaner way. In this tutorial session you will follow me as I write a complete web application in front of your eyes using the core framework and a handful of extensions.

Thursday 9 a.m.–12:20 p.m. in Room 50 Viger (Westin Hotel)

Python for Social Scientists

Renee Chu in Science

Many provocative social questions can be answered with data, and datasets are more available than ever. Start working with it here. First we'll download and visualize one data set from the World Bank Indicators page together, using Matplotlib. Then you'll have time on your own to pick another data set from any online source and plot that. At the end every person/pair will share what they found.

Thursday 9 a.m.–12:20 p.m. in Room 522 A

Introduction to Web (and data!) Scraping with Python

Katharine Jarmul in Python Libraries

Want to learn how to scrape the web (and / or organized data sets and APIs) for content? This tutorial will give you the building blocks (and code) to begin your own scraping adventures. We will review basic data scraping, API usage, form submission as well as how to scrape pesky bits like Javascript-usage for DOM manipulation.

Thursday 1:20 p.m.–4:40 p.m. in Room 523 A

Contribute with me! Getting started with open source development

Jessica McKellar in Community

Want to contribute to a Python project or the core language, but not sure where to start? Join us for 3 hours learning the nuts and bolts of open source contribution. By the end of this tutorial, you'll have the tools and practice to confidently contribute to your favorite projects. Beginning programmers are welcome and encouraged!

Thursday 1:20 p.m.–4:40 p.m. in Room 521A

Distributed task processing using Celery

Narahari Allamraju in Other

Celery is a distributed task queue for Python that is used by a large number of web applications to off load tasks that can be executed asynchronously. This workshop will demonstrate how we can use Celery for a use case that isn't a web site or a web application and is something which could happen in a hospital or a bank or any other such large organization.

Thursday 1:20 p.m.–4:40 p.m. in Room 50 Viger (Westin Hotel)

Improving automated testing with py.test

Holger Krekel in Testing

Many people learn testing through the JUnit/PYUnit paradigm. Lately, py.test's new fixture mechanisms have gained traction among many Pythonistas. This tutorial explores py.test discusses key strategies how to benefit from using py.test for your existing unittest/nose based code bases.

Thursday 1:20 p.m.–4:40 p.m. in Room 521 BC

Hands-on Intermediate Python

matt harrison in Python Core (language, stdlib, etc.)

Are you new to Python and want to learn how to step it up to the next level? Have you wondered about functional programming, closures, decorators, context managers, generators, or list comprehensions and when you should use them and how to test them? This hands-on tutorial will cover these intermediate subjects in detail, by explaining the theory behind them then walking through examples.

Thursday 1:20 p.m.–4:40 p.m. in Room 515 BC

Faster Python Programs through Optimization

Mike Müller in Other

Although Python programs may be slow for certain types of tasks, there are many different ways to improve the performance. This tutorial will introduce optimization strategies and demonstrate techniques to implement them. Another objective of this course is to help the participants to gain the ability to decide what might be the optimal solution for a specific performance problem.

Thursday 1:20 p.m.–4:40 p.m. in Room 525 AB

Beyond Defaults: Creating Polished Visualizations Using Matplotlib

Hannah Aizenman in Python Libraries

When people hear of matplotlib, they think rudimentary graphs that will need to be touched up in photoshop. This tutorial aims to teach attendees how to exploit the functionality provided by various matplotlib libraries to create professional looking data visualizations.

Thursday 1:20 p.m.–4:40 p.m. in Room 522 A

PostgreSQL Proficiency for Python People

Christophe Pettus in Databases

PostgreSQL has become the default database for most green-field development projects, and is the data storage architecture behind many major Python-based success stories, such as Instagram. Despite a reputation as being complex and fiddly, Postgres is easy to install, administer, maintain, and use... with just a little bit of orientation. This is that orientation.

Thursday 1:20 p.m.–4:40 p.m. in Room 522 BC

Bayesian statistics made simple

Allen Downey in Science

An introduction to Bayesian statistics using Python.  Bayesian statistics are usually presented mathematically, but many of the ideas are easier to understand computationally.  People who know Python can get started quickly and use Bayesian analysis to solve real problems.  This tutorial is based on material and case studies from Think Bayes (O’Reilly Media).

Thursday 1:20 p.m.–4:40 p.m. in Room 523 B