Registration Open for Python Web Programming 2013
Register now and get the early bird discount.
WHEN: August 5-9, 2013
WHERE: Classroom 332, Phillips Hall, 120 East Cameron Avenue, The University of North Carolina, Chapel Hill, NC
This workshop takes place in a state of the art high technology classroom. Wired Ethernet networking and AC power are provided at every seat. A video projection screen monitors the presentation computer at the front of the room. The seating is conference style where you can spread out. Restroom facilities are just down the hall.
This one-week course will cover the fundamental concepts of networked programming in Python. You'll learn everything, starting from the protocols that power the internet and the sockets that enable communications between processes and machines, 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 and ideas for projects you can use to help cement the lessons you learn after the the class is over.
What This Class Is:
The goal of the course is to give students a solid grounding in the fundamental underpinnings of network programming. In addition, you will gain a basic understanding of a broad range of Pythonic tools and learn to choose the right tool for a given task.
What This Class Is Not:
There are other training courses available that will teach you a web framework in depth. This is not one of them. You will learn basic usage for the frameworks covered as well as the choices and compromises that shape them.
You Will Learn:
- The TCP/IP stack
- The sockets module
- Communications protocols like SMTP, IMAP and HTTP
- Network API tools like XML-RPC, SOAP and REST
- Dynamic network applications using CGI and WSGI
- Data persistence models including the filesystem, SQL databases and Object Stores
- Template systems like Jinja2 and Chameleon
- Framework programming, including Flask, Django and Pyramid
You Will Build:
- A fully functional, basic HTTP server
- A "mashup" application combining several online APIs
- Three iterations of a simple web application using Flask, Django and Pyramid
You Will Need:
- Basic Python Programming Skills
- This is not a beginning Python course. A basic understanding of the fundamental syntax and structures of Python will be required.
- Basic Knowledge of HTML
- You should know enough to be able to create a page with headers, lists and forms
- Working Knowledge of a Text Editor
- You must to be able to create, edit, save and delete files quickly and comfortably
- Working Knowledge of the Command Line
- You must be able to change directories, run commands and manage files (create, copy and remove)
- A Wi-Fi capable Laptop Computer
- We will be fetching resources from the network regularly. You will need to be able to ensure that your network connection works
- Python 2.6 or 2.7
- Although some of the tools we will cover have been ported to Python 3.x, not all have. We will also use some language features that were introduced in 2.6, so that is the minimum viable version for this class.