Tutorials

top band

Accepted Tutorials

A **huge** thanks to the speakers, sponsors, volunteers, and attendees for such a great PyCon! Talk and tutorial videos & slides: - http://pyvideo.org/category/65/pycon-us-2015 - https://speakerdeck.com/pycon2015 & https://github.com/pycon/2015-slides **See you next year!**

Building a REST API Using Django & Django REST Framework

Kenny Yarboro in Web Frameworks

Using a combination of Django and Django REST Framework, we will build a Restaurant Menu that can be managed via a REST API. Starting from the install of the Django REST Framework, we will build our way to a functional API that meets the needs of developers and end-users. You will walk away with an understanding of the basic concepts of REST APIs and a working sample project.

Thursday 9 a.m.–12:20 p.m. in Room 510D

Getting comfortable with web security: A hands-on session

Asheesh Laroia, Jacky Chang, Nicole Zuckerman in Security

Web application security can be an intimidating discipline, yet it can be of supreme importance for the people who use the things we build. In this tutorial, you'll learn about essential topics in web security, and you will gain hands-on practice identifying and leveraging vulnerabilities in a Python-based web app. For each issue, we will cover how your code can stay on the side of safety.

Thursday 9 a.m.–12:20 p.m. in Room 512CG

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 9 a.m.–12:20 p.m. in Room 512DH

Making Beautiful Graphs in Python and Sharing Them

Andrew Seier, Étienne Tétreault-Pinard, Marianne Corvellec in Python Libraries

From Python basics to NYT-quality graphics, we walk through workflows to make beautiful, shareable data visualizations. We’ll also explore 3D plotting in the browser, cross-language collaboration, and matplotlib figure conversion. By using Python’s scientific stack and an IPython notebook--attendees may follow along. For data analysts, data journalists, and anyone who likes plots.

Thursday 9 a.m.–12:20 p.m. in Room 512EA

Winning Machine Learning Competitions With Scikit-Learn

Ben Hamner in Science

This tutorial will offer an introduction machine learning and how to apply it to a Kaggle competition. We will cover methodologies that have worked well across a diverse set of problems, and then work on a current Kaggle competition together using iPython notebook and scikit-learn. We will cover concepts including feature extraction, feature selection, model evaluation, and data visualization.

Thursday 9 a.m.–12:20 p.m. in Room 512FB

Ansible 101

Luke Sneeringer in Systems Administration

Interested in Ansible, or in server orchestration and configuration generally? This tutorial will teach the basics -- and a few of the not-so-basics -- of orchestrating machines with Ansible.

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

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 knowledge of them, knowing more about them facilitates a deeper understanding of the language. With examples, you will learn how they work and how to write your own descriptors and metaclasses. Furthermore, you will understand when to use and when better not to use them.

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

Python by Immersion

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

A very fast introduction to Python for software developers with experience in other languages. Instead of a traditional top-down presentation of Python's features, syntax, and semantics, students are immersed in the language bottom-up with hundreds of small examples using the interactive interpreter to quickly gain familiarity with most of the core language features.

Thursday 9 a.m.–12:20 p.m. in Room 513D

Introduction to Spark with python

Orlando Karam in Other

In this tutorial we will cover the basics of writing spark programs in python (initially from the pyspark shell, later with independent applications). We will also discuss some of the theory behind spark, and some performance considerations when using spark in a cluster.

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

How to start web scraping

Jackie Kazil, Sisi Wei in Python Libraries

Sometimes data does not come in a format that we would like it in, and we need to other mechanisms to collect data. This tutorial taught, from the perspective of a data journalist and a data scientist, who will give you an overview of use cases of how some folks have used web scraping for data collection, how to get started, where to find data, and what are the ethics behind it.

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

Introduction to game programming with Kivy

Richard Jones in Gaming

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

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

Modules and Packages: Live and Let Die!

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

All Python programmers use the import statement, but do you really know how it works and what it allows? This tutorial aims to take a deep dive into every diabolical issue related to modules, packages, and imports. When we're done, you'll finally be ready to unleash your million line micro framework on the world!

Thursday 1:20 p.m.–4:40 p.m. in Room 510D

Django in Depth

James Bennett in Web Frameworks

This is a tutorial that goes beyond most tutorials; it's meant for developers who already know a bit about Django and want to really understand the inner guts of the framework. This tutorial will *not* involve writing code or apps; rather, it'll be a deep tour of the workings and APIs of Django itself, across all the bundled components and at all levels of the stack.

Thursday 1:20 p.m.–4:40 p.m. in Room 512CG

Statistical inference with computational methods

Allen Downey in Science

Statistical inference is a fundamental tool in science and engineering, but it is often poorly understood.  This tutorial uses computational methods, including Monte Carlo simulation and resampling, to explore estimation, hypothesis testing and statistical modeling.  Attendees will develop understanding of statistical concepts and learn to use real data to answer relevant questions.

Thursday 1:20 p.m.–4:40 p.m. in Room 512DH

Slithering Into Elasticsearch

Erik Rose in Databases

Elasticsearch provides a powerful combination of clustered full-text search, synonyms, faceting, and geographic math, but there's a big gap between its documentation and real life. We'll work through hands-on examples, tell war stories yielding hard-won lessons, and show what happens behind the scenes, equipping you to slither smoothly into using Elasticsearch in your own projects.

Thursday 1:20 p.m.–4:40 p.m. in Room 512EA

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 1:20 p.m.–4:40 p.m. in Room 512FB

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 513BC

Twitter Network Analysis with NetworkX

Sarah Guido, Celia La in Python Libraries

Twitter's network is fascinating because of its connectivity: there are hashtags, followers, retweets, and replies. Using the network analysis tool NetworkX, we'll look at how to make sense of these channels. We'll cover the basics of network theory, including types of networks and how measure influence, and we'll apply those measures to our investigation of Twitter's network.

Thursday 1:20 p.m.–4:40 p.m. in Room 513D

Pandas From The Ground Up

Brandon Rhodes in Python Libraries

The typical Pandas user learns one dataframe method at a time, slowly scraping features together through trial and error until they can solve the task in front of them. In this tutorial you will re-learn how to think about dataframes from the ground up, and discover how to select intelligently from their abilities to solve your data processing problems through direct and deliberately-chosen steps.

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

A hands-on introduction to Python for beginning programmers

Dana Bauer 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 513A

Practical Graph/Network Analysis Made Simple

Eric Ma in Science

Have you ever wondered about how those data scientists at Facebook and LinkedIn make friend recommendations? Or how epidemiologists track down patient zero in an outbreak? If so, then this tutorial is for you. Here, we will explore a bike sharing data set as a way to understand the kinds of problems that can be solved using graph analytics.

Wednesday 9 a.m.–12:20 p.m. in Room 512FB

Hadoop with Python

Donald Miner in Databases

In this tutorial, students will learn how to use Python with Apache Hadoop to store, process, and analyze incredibly large data sets. Hadoop has become the standard in distributed data processing, but has mostly required Java in the past. Today, there are a numerous open source projects that support Hadoop in Python and this tutorial will show students how to use them.

Wednesday 9 a.m.–12:20 p.m. in Room 512EA

Flask Workshop

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 we will build a web application together. Bring your laptop and your questions!

Wednesday 9 a.m.–12:20 p.m. in Room 512DH

Docker 101: Introduction to Docker

Andrew T. Baker in Systems Administration

Docker was one of last year’s most talked about open source projects - but what is it? And what does it mean for deploying applications? This tutorial will explain what Docker is and where it fits in with other deployment and configuration management tools. Students will then learn the basics of working with Docker containers, how to “dockerize” their Python apps, and some emerging best practices.

Wednesday 9 a.m.–12:20 p.m. in Room 512CG

Machine Learning with Scikit-Learn (I)

Jake VanderPlas in Science

This tutorial will offer an introduction to the core concepts of machine learning and the Scikit-Learn package. We will introduce the scikit-learn API, and use it to explore the basic categories of machine learning problems and related topics such as feature selection and model validation, and practice applying these tools to real-world data sets.

Wednesday 9 a.m.–12:20 p.m. in Room 510D

TDD with Django, from scratch: a beginner's intro to testing and web development

Harry Percival in Testing

A beginner's introduction to testing and web development with Django. We'll build a simple web app, from scratch, but with full TDD, including functional testing with Selenium and unit testing Django's views, templates, and models. Some familiarity with Python is desirable, but no prior knowledge of Django or testing is assumed.

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

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 9 a.m.–12:20 p.m. in Room 513D

IPython & Jupyter in depth: high productivity interactive and parallel python

Thomas Kluyver, Kyle Kelley in Python Libraries

IPython and Jupyter provide 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, 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.

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

Fabric, SaltStack, and Ansible: DevOps'ing with Python

G. Clifford Williams in Systems Administration

Epic, knock down, drag-out, death match of python automation tools. Ok, not really. This class will take an in depth look at three automation, orchestration, and remote execution frameworks written in Python.

Wednesday 1:20 p.m.–4:40 p.m. in Room 512CG

Machine Learning with Scikit-Learn (II)

Olivier Grisel in Science

This tutorial will offer an overview of common usage and methodological patterns when using Scikit-Learn to build predictive models. In particular we will highlight common strategies to deal with data with heterogeneously typed attributes with pandas dataframes, model evaluation and tuning. Finally if time permits we will explore the specificities of working with textual data.

Wednesday 1:20 p.m.–4:40 p.m. in Room 512DH

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.

Wednesday 1:20 p.m.–4:40 p.m. in Room 512EA

What to do when you need crypto

Jarret Raim, Paul Kehrer in Security

The cryptographic world doesn't lend itself to the typical developer flow of learning while doing. Add that to the massive amount of bad or outdated information on the web and many developers are lost or worse, build insecure systems. This tutorial will introduce developers to modern cryptography with an eye towards practical scenarios around password management, encryption and key management.

Wednesday 1:20 p.m.–4:40 p.m. in Room 512FB

Delving into the Django Admin

Jacinda Shelly in Web Frameworks

The admin interface is widely considered a "killer feature" of Django. At its most basic, you can just register all your models and be on your way, but there's so much more available within Django's admin. This tutorial takes you step by step through the creation and progressive improvement of an admin interface for a fictional library (all code is publicly available).

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

Hands-on Data Analysis with Python

Sarah Guido in Python Libraries

Python is quickly becoming the go-to language for data analysis. However, it can be difficult to figure out which tools are good to use. In this workshop, we’ll work through in-depth examples of tools for data wrangling, machine learning, and data visualization. I’ll show you how to work through a data analysis workflow, and how to deal with different kinds of data.

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

Intro to 3D Graphics with Blender and the Blender API

Jenny Cheng in Other

Blender is an amazing open source graphics suite that lets you create animations, edit videos, and much more! It includes a Python API so you can script model creation and animation. Come get started with Blender and the Blender API. You'll learn the basics of 3D modeling and animation, get a guided tour of Blender's features, and write your very own Blender add-on!

Wednesday 1:20 p.m.–4:40 p.m. in Room 513D

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 Room 510D

bottom band background