Syllabus
CS 33600
Network Programming
Spring, 2026

Professor Roger Kraft
Office: Classroom Office Building, Room 368
Phone: (219) 989-2024
Office hours: 11:00--1:00 TWR, and by appointment.
E-mail: rlkraft@pnw.edu

Text: There is no required textbook.

This course is an introduction to computer networks and the programming of network applications using Java. This course will emphasize using the Sockets API to implement application layer protocols, especially the HTTP protocol used by web servers. The course will cover network abstraction layers from a programmer’s perspective, explaining what is needed in order to write correct, reliable network programs. We will also review essential information about I/O, byte streams, data formats, and character encodings.

The "textbook" for this course will be a selection of chapters taken from books available online through the PNW library. I will provide links to the chapters as they are assigned.

Your grade for this course will be based on about six programming assignments and two exams in the following manner:

           30%    programming assignments,
           35%    1st exam,
           35%    2nd exam.

Tentative dates for the two exams are

           Exam 1   Thursday, March 5
           Exam 2   Final exam week.

Students are expected to take exams at the scheduled time. Makeup exams will be given only for legitimate and verified emergencies.

Each of the programming assignments will have a due date. To receive full credit for an assignment, it must be turned in by the due date. Programs handed in late will be marked off 10% of the total points for each calendar day late up to a maximum of 50%. If an assignment is more than two weeks late, then I reserve the right not to accept it for credit. When you complete a programming assignment you will turn in the source code for your solution using the university's course management system. In this course web site there are detailed instructions on how assignments are to be turned in. You will be expected to follow the instructions. Also in this web site is information on the criteria used to grade your programming assignments.

You should turn in your own work for each programming assignment. Here is what that means: You may talk with your classmates about the course material and the ideas behind each homework assignment but you should solve each problem on your own and write your own code for the solution. Turning in someone else's solution, or a modified version of someone else's solution, is a breach of the PNW Code of Conduct. Similarly, giving a copy of your solution to someone else in the class is also a breach of academic integrity. If you need help with a homework assignment, come and ask me. You can ask me as many questions as you want! Please do not hesitate to ask me questions after class, in my office, in an e-mail message, using Zoom, over the phone, etc.

The final grades for this course will use a plus and minus grading system. The possible grades for this course, and a tentative grading scale for the grades, are given in the table below. The final grading scale that I use may not be quite the same as the one given below; the grade cutoffs might be lower, but they will not be higher than what is given in this table.

A93 - 100
A-90 - 92
B+88 - 89
B83 - 87
B-80 - 82
C+78 - 79
C73 - 77
C-70 - 72
D+68 - 69
D63 - 67
D-60 - 62
F59 or less

In this web site you will find more information about this course. There are links to online information about network programming and information about course reading assignments, and, very importantly, all of your homework assignments and their due dates will be posted in these web pages.

Course Objectives: The objectives for this course are as follows.

  1. Explain what interprocess communication is and explain why networked programs depend on it.
  2. Explain the role of the socket(), bind(), listen(), accept(), and connect() functions from the sockets library.
  3. Explain what an application level protocol is and, in particular, explain the basics of the HTTP protocol.
  4. Explain the basic workings of an HTTP server.
  5. Be able to analyze a client/server exchange of HTTP request/response headers.
  6. Write a client/server pair of programs that use TCP sockets to implement a simple application level protocol.

Academic Integrity Policy: Ethics are an integral part of being a student and a professional. Academic integrity is the hallmark of this University. Therefore, Purdue University Northwest does not tolerate academic dishonesty. If a student breaches integrity, the student risks sanctions in both the academic and conduct arenas. Academic dishonesty includes, but is not limited to, the unauthorized use of other's intellectual property (plagiarism), and lying to an instructor or any University employee. Such actions WILL result in a failing grade on the assignment with the strong possibility of referral to the Office of the Dean of Students for a conduct sanction (see the Policies from the Dean of Students office).

Resources and Support for Academic Success: University students encounter setbacks from time to time. If you encounter difficulties and need assistance, it’s important to reach out. Consider discussing the situation with an instructor or academic advisor. Many PNW resources that assist with wellness and academic success are listed below. If you are in immediate crisis, please call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255).

Accessibility: Purdue University Northwest is committed to making learning experiences accessible. If you anticipate or experience physical, academic/learning, mental health, pregnancy, or other medically related barriers to your PNW experience, you are encouraged to contact the PNW Accessibility Center at: pac@pnw.edu or by phone: (219) 989-2455. Visit the PAC website for more information.

Mental Health/Wellness: Purdue University Northwest is committed to advancing the mental health and well-being of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of mental health support, confidential services are available. For help, contact the Counseling Center at (219) 989-2366 or visit at 2250 173rd Street on the Hammond Campus and TECH 101 in Westville. Visit the Counseling Center website for more information.

Basic Needs Security: Any student who faces challenges securing food, housing, or other basic needs is urged to contact the Dean of Students for support at dos@pnw.edu or (219) 989-4141 (Hammond) or (219) 785-5230 (Westville). Student Advocates are also available to assist students 8:00am-4:30pm in Hammond (SULB 313) or Westville (LSF 103). Visit the Dean of Students website for more information.

Veterans: Purdue University Northwest is committed to creating a community of support for veterans, active-duty service members and their families. Visit the Veterans Services website for more information

Academic Support: All PNW students have access to academic support services for free.

University Policies: As a student, it is important for you to understand these university policies, including non-discrimination, academic integrity, and others relevant to your educational experience.