UW PCE Certificate Program in Python Programming

Internet Programming with Python

Winter Term, 2017 (10 sessions)

Tuesdays, 6-9 pm, January 10 - March 14

Overview

This course emphasizes network-based programming and Web applications, how they work and how to program them in Python. Explore the underlying principles and their expression in the Python libraries. Learn contrasting approaches in creating applications: programming with the low-level libraries versus using highly integrated frameworks

Prerequisites

To attend this course you should have a working knowledge of the basic syntax and structures of the Python programming language. You will also need to be comfortable working at the command line to navigate a file system, create and delete files, and execute commands. Finally, you should have some basic knowledge of HTML.

Requirements

This workshop does not provide a computer laboratory. You will have to have a portable computer in order to participate. Network access is provided, but you will need to know how to operate the network settings for your computer.

Your computer must have Python version 3.4 or later installed. No additional libraries will be required, but we will be installing some as the workshop progresses.

To keep clean and isolated development environments, we will make use in class of the venv module, a standard library module used to create and maintain lightweight sandbox environments.

What to Expect

This course will cover the fundamental concepts of networked programming in Python. You’ll learn everything, starting from the sockets that enable communications between processes and machines and the basic protocols that govern this communication, right up to the full-stack frameworks that enable developers to build rich applications efficiently.

Along the way, you’ll learn through a combination of lecture and activity. Historical information will be combined with exercises designed to help you learn the Pythonic way to create programs that interact with each-other across networks. Each module will include reading lists for more information. Homework assignments will allow you to dive more deeply into the concepts introduced in class.

This class is intended to give students a solid grounding in the fundamentals of network programming. You will gain a basic understanding of a broad range of Pythonic tools and learn to choose the right tool for a given task.

This class is not an in-depth course in any single Python web framework. The intention is to give you the information needed to select the right framework for your task. To that end, you will learn the basics of the frameworks covered as well as the choices and compromises that shape them.

References

Python 3 Documentation: Complete documentation of the language.

Python 3 Language Reference: Terse and complete reference to the language structures of Python 3.

Python Standard Library - Internet Protocols and Support: All the supported internet protocols as implemented in Python.

Python Module of the Week (py2, py3): A fantastic reference for many modules in Python 2 and 3. Examples and usage are provided throughout. Don’t be shy about trying the Python 2 docs in Python 3, often they will work still.

Lecture Presentations: Slides from the course presentations.