pchapin's Network Programming Syllabus, Spring 2018


Peter C. Chapin. Office: WIL-415 on the Williston campus. Office hours are by appointment. Phone: 802-879-2367 (voice mail active). Email: pchapin@vtc.edu. I will usually respond to email within 24 hours, not including weekends or holidays. Email is the best way to contact me. I am also on the VSC's Skype for Business, and often on the FreeNode IRC network under the nickname pcc.

Course Description

The official course outline lists high level course objectives and content.

This is a course about programming networked systems. It is intended to complement and extend VTC's first networks course, CIS–2151. In CIS–2151 the focus was primarily on the lower layers of the OSI model. This course focuses more on the upper layers. Instead of talking about how the network works, we will talk about what can be accomplished with the network and how to program network aware applications. We will look at client/server applications, application level protocols (SMTP, MIME), distributed application programming (RPC, Ice), and some of the issues involved with sharing data between different platforms (such as character encodings and XML).


I assume that you have some familiarity with basic networking concepts such as the OSI model, IP addressing, routing, connection oriented vs connectionless protocols, frames vs packets, and other similar things. You don't need to be an expert in these areas; we will review some of them. However, it will be helpful if you have at least seen topics like these before.

I also assume that you are comfortable programming in C and Java. Both languages will be used approximately equally throughout the course. I will also support students interested in using C++ instead of C or Scala instead of Java. However, user of those other languages is not required.


The text is Unix Network Programming Volume 1 by W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff. This is the definitive text on TCP/IP programming in the Unix environment. In addition to being complete and authoritative, it is also well written. However, we will only be using this text for about 50% of the course. Quite a bit of the material I intend to cover is outside the scope of this text and will be supported by various hand-outs and online references. In particular, you will be reading a number of RFCs.

I have created an email distribution list for the class. I will use this list to distribute announcements and other supplementary materials. Be sure to check your mail regularly (daily) or you might miss something important. If you send a question in email directly to me, I may reply to my distribution list if I think that others would benefit from my answer. If you would rather I did not reply to the list you should say so in your message.

My home page contains various documents of general interest.


Course Outcomes

After completing this course, students should be able to do the following:

Grading Policy

I grade on a point system. Each assignment is worth a certain number of points. At the end of the semester I total all the points you earned and compare that to the total number of possible points. In this course there are two components to your grade.

  1. Homework. 20 pts/each. There will be about twelve assignments during the semester for a total of about 240 points. You will have approximately one week to do each assignment. Most the assignments will entail some programming but there may be non-programming questions as well.

  2. Exam. 100 pts. There will be one exam. It will be held during the final exam period. It will be comprehensive.

The exam will be a take home exam. When doing the exam you can use any resources available to you except that you can not consult with other students about exam questions nor post questions directly related to the exam on Internet forums or mailing lists (it is okay to read existing posts, however). If you have questions about the exam, please contact me.

For homework you can discuss the material with other students and post questions related to the assignments in on-line forums. However, you should still do your own work. See the section on "Copying Policy" below for more information.

I will not formally take attendance, but I will notice people who seem "disengaged" in the class. Although attendance is not specifically part of my grading policy it will, like other intangible items such as "professionalism," play a role in how likely I am to round up borderline grades.

Late Policy

Roughly, late submissions are not accepted. If something comes up that prevents you from handing in an assignment on time, contact me, before the deadline if at all possible, to discuss your issue. As a practical matter I can accept a late submission if I have neither distributed a solution nor graded the assignment. Since either of those things can happen at any time after the due date, you should plan on submitting all materials on time.

Copying Policy

I encourage you to share ideas with your fellow students so I won't be shocked to learn that you've been talking with someone about an assignment. In fact, if you worked closely with someone else you should make a note on your submission that mentions the names of your associates.

However, I do ask you to do your own work in your final submissions. If two submissions exhibit what I feel to be "excessive similarity" I will grade the submissions based on merit and then divide the grade by two, assigning half the grade to each submission. If I receive more than two excessively similar submissions I will divide the grade by the number of such submissions and distribute the result accordingly.

Since "excessive similarity" is a bit subjective, I may only give you a warning if the similarity is not too excessive—especially for a first offense. However, I will be much less inclined to be forgiving the second time. If you are concerned about the possibility of submitting something that might be too similar to another student's work, don't hesitate to speak with me first.

If you find material on the Internet or in a book that seems to answer questions I ask in an assignment, you may include such material in your submission provided you properly reference it. If I discover that you have included unreferenced material from such sources, I may not give you any credit for the question(s) answered by such material. You do not need to provide a reference to our text book or to materials I specifically provide in class.

Other Matters

Students with disabilities may request accommodation as provided within federal law. All such requests should be made by first contacting Robin Goodall, Learning Specialist, in the Center for Academic Success on the Randolph campus. She can be reached by phone at (802) 728-1278 or by email at rgoodall@vtc.edu.

Last Revised: 2017-12-26
© Copyright 2018 by Peter C. Chapin <pchapin@vtc.edu>