1.1. Preface to the Network Programming Study GuideΒΆ

As is stated on the first page of the Network Programming Study Guide, the primary purpose of this guide is to provide a map to the curriculum for the Network Programming on-line class offered by K–State Polytechnic. It is my goal that this integrated document will guide students through the course material. This should give the class more structure than students would find from a collection of loosely coupled notes, program source code and Power Point files.

Access to the notes in this study guide is made available by the Creative Commons Attribution 3.0 United States License. You are free to use these notes, but if you use any of the material as part of your own work, please give me credit where due.


The Text Book is written in an easy to read, tutorial style and it teaches more about Network Programming than Python, which is good. The second edition of the book provides updates on newer Python modules.

A few comments about Network Programming with Python 3 are also made, where appropriate. However, Python 2.x is primarily covered. [1]

This guide attempts to supplement The Text Book by:

  1. Providing addition explanations, especially related to the Python source code examples. Goerzen assumes that the reader is already fairly familiar with Python. So if that is not quite true for you, then perhaps this guide will help.
  2. Providing some updated information relative to Python and available Python modules used for network programming.
  3. Pointing out the most salient points of The Text Book.
  4. Providing additional example programs and suggested programming assignments. In both Topic 3 - Programming for the Web and Topic 6 - Developing Network Server Programs sections, the programming assignments are accompanied by complete working programs that are actually useful and interesting programs, if I must say so myself. In these topics of study, the student is asked to write fairly simple code, which adds additional features to the program. These programs are licensed with the Apache, open source license. The other programming assignments are interesting also, but not quite as impressive in terms of the source code, which I provide to get you started with the assignment.
  5. Providing additional information for writing network programs on the Microsoft Windows platform. The Text Book has a strong Unix slant to it. Documentation which is helpful to the Unix user is certainly needed. However, many readers will use Windows to write network programs with Python. So, I try to offer some comments to benefit the Windows platform user. [2]
  6. Providing instructional videos regarding the construction of programs and demonstrating the usage of various programs. Currently, all of the videos are available through K-State Online, which requires enrollment in the class, and some of the demonstraion videos are available through ShowMeDo.


A prime objective of this Network Programming Study Guide is to simplify and explain complex material. This Network Programming Study Guide is neither exhaustive nor complete. In an attempt to focus on what the reader needs to know to get started writing simple Python network programs right away, I focus my coverage on the most basic and essential features of Python and network programming and ignore a few complex or seldom used features. [3] Do NOT use this guide as your only source of information. To be successful, you need two additional items:

  1. Buy and read The Text Book. The book has longer and more detailed descriptions of most topics.
  2. You also need more complete documentation on Python. The official Python web page offers an excellent repository of documentation. You may also benefit from a book about Python. If you are not ready to purchase a book, most libraries have several Python books available for checkout.


[1]Computer programming books sure age fast. It seems some how wrong to state that a book published in 2004 is in any way outdated just five years hence (2009). In fact, most of The Text Book is still current. Yet, there are still a few points where the reader might benefit from more recent comments.
[2]I use both Windows and Linux and really prefer Linux, but my students and environment mandate that most of my teaching be applicable to Windows only users.
[3]To my knowledge, the information in this Network Programming Study Guide is accurate, it is just not exhaustive or complete in the coverage of Python’s features. However, if you do find errors in this guide, please kindly point them out to me and I will add your contribution to the Acknowledgments section.