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 at Salina. 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 along with recorded lectures. On-line classes, and especially those presented in an asynchronous manner, have a special need for an organized presentation of the material with links to external documents and recorded video or audio embedded in an integrated document that explains and puts into context the contents of any external resources.
Although, not my primary objective in writing this guide, it may also be used as an unofficial companion guide to anyone reading Foundation of Python Network Programming by John Goerzen, Apress, 2004. All references in this guide to The Text Book are to Goerzen’s text.
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 only drawback to the book is that it was written a few years ago and some of it’s content is dated because newer, better Python modules are now available and because of changes to the Python language and it’s library of modules, especially with the advent of Python 3. [1]
This guide attempts to supplement The Text Book by:
- 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.
- Providing some updated information relative to Python and available Python modules used for network programming.
- Pointing out the most salient points of The Text Book.
- 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.
- 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]
- 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.
Warning
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:
- Buy and read The Text Book. The book has longer and more detailed descriptions of most topics.
- 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.
Footnotes
| [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. |