.. Internet Programming with Python documentation master file, created by
   sphinx-quickstart on Sat Nov  3 13:22:19 2012.

.. slideconf::
    :autoslides: False

`UW PCE Certificate Program in Python Programming
<http://www.pce.uw.edu/certificates/python-programming.html>`_

================================
Internet Programming with Python
================================

.. slide:: Internet Programming with Python
    :level: 1

    .. rst-class:: large center
    .. container::
    
        No Content

.. sidebar:: In This Class

    .. toctree::
       :maxdepth: 2

       outline
       presentations/index
       readings

Winter Term, 2016 (10 sessions)

Tuesdays, 6-9 pm, January 5 - March 8


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.

.. _venv: https://docs.python.org/3/library/venv.html

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 <https://docs.python.org/3/>`_: Complete
documentation of the language.

`Python 3 Language Reference <https://docs.python.org/3/reference/>`_: Terse
and complete reference to the language structures of Python 3.

Python Standard Library -
`Internet Protocols and Support <https://docs.python.org/3/library/internet.html>`_:
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.

.. _py2: https://pymotw.com/2/contents.html
.. _py3: https://pymotw.com/3/

`Lecture Presentations <presentations/index.html>`_: Slides from the course
presentations.


Search
======

* :ref:`search`

