Class Lectures and Reading Assignments
CS 33600
Network Programming
Spring, 2026

This page documents what we do in class. It contains Java programs that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), and links to other sources of information. It is a good idea for you to "play" with the example Java programs; compile them, run them, make simple changes to them and compile and run them again.

The second midterm exam is two weeks from today, on Tuesday, May 5, as specified by the university's final exam schedule.

Here are exam review problems for the material that we have covered since the last exam.

The exam will be over the sample code from the zip files below, and the material from these reading assignments.

Today we will continue looking at using the HTTP protocol with this HTTP/1.1 Syntax as a guide.

Here are a two overviews of HTTP servers.

See the programming assignment page for your fourth assignment.

Today we will continue looking at HTTP servers and clients using this HTTP/1.1 Syntax as a guide.

Here is another brief summary of HTTP (from the book Fundamentals of Web Programming).

Here are the readme documents for what we have covered so far in network programming.

Read this overview of HTTP.

Today we will start to look at the HTTP servers and clients in this folder.

Here is a simplified grammar for HTTP that's adapted from Illustrated Guide to HTTP. This syntax describes the language spoken by an HTTP client-server pair in the yellow box of the socket API.

For next week, read Section 3.1 (pages 27 - 31), about application level protocols, from the book Computer Networking: Principles, Protocols and Practice.

Read Section 3.2.3 (pages 47 - 55) about HyperText Transfer Protocol (HTTP) from the same book.

Today we will continue looking at these simple client/server pairs using Sockets.

Here is a well written overview of how a client-server connection works over the Internet, from this computer systems textbook.

Today we will begin looking at these simple client/server pairs using Sockets.

Here are two pictures that summarize the "flow chart" of socket based clinet/server communication.

Read pages 22-28, about "Socket API and Client-Server Paradigm", in the following chapter. You need to be on campus to download this document but you can save it and read it any time later.

Today we will finish looking at these network client code examples.

Today we will continue looking at these network client code examples.

The first midterm exam is today.

For next week, read Sections 12.1 and 12.2 (first 9 pages) in the following chapter.

The first midterm exam will be this Thursday, on March 26. See the review/practice material.

If we have time today, we will look at these network client code examples.

Spring Break - No class today.

Spring Break - No class today.

The first midterm exam is two weeks from today, on Thursday, March 26. Below are exam review problems for the material that we have covered so far.

Here is another introduction to Java network programming.

Today we will look at these network client code examples.

Read the following introductory chapter about network programming.

Read sections 13.1, 13.2, and 13.3 (first seven pages) from the following introductory chapter about network programming.

Read sections 15.1 and 15.2 from the following introductory chapter about network programming.

We will look at these network client code examples.

Read the section about UTF-8.

Read this introduction to character sets.

The sample code for character sets and character encodings is in the "character_sets" sub folder.

Read the section about code pages.

The sample code for character sets and character encodings is in the "character_sets" sub folder.

Read the document about character sets and character encodings.

The sample code for character sets and character encodings is in the "character_sets" sub folder.

I updated the syllabus to change the date of the first mid-term exam. I moved the exam to Thursday, March 26, the week after spring break.

Read the sections about integers, doubles, and byte ordering.

The sample code for data formats is in the "data_formats" sub folder.

Read the section about ASCII data.

The sample code for data formats is in the "data_formats" sub folder.

Read the section about data bytes.

See the programming assignment page for your third assignment.

Read the document about data formats.

The sample code for data formats is in the "data_formats" sub folder.

We will continue to look at the code examples in the "filter_programs" sub folder.

We will continue to look at the code examples in the "filter_programs" sub folder.

Read the document about creating pipes using Java's ProcessBuilder class.

We will continue to look at the code examples in the "filter_programs" sub folder. I have added a few new folders to the zip file (about ProcessBuilder).

Read the document about I/O redirection using Java's ProcessBuilder class.

We will continue to look at the code examples in the "filter_programs" sub folder .

Continue to read about pipes and filters.

See the programming assignment page for your second assignment.

Today we will look at the code examples in the "filter_programs" sub folder .

Continue to read about I/O redirection.

Today we will look at the two programs FactorIntoPrimes.java and FactorNumbers.java in the "creating_processes" sub folder .

Read about the standard streams.

Today we will look at the code examples in the "simple_ipc" sub folder .

I added a more explanations to the Readme.md file about simple IPC.

See the programming assignment page for your first assignment.

We will continue to look at these code examples.

I added quite a bit more explanations to the Readme.md files from the zip file.

Read the first 18 pages of this chapter on Java I/O streams.

Here are code examples that we will use in class this week.

Here are links to online versions of the Readme.md files from the zip file.

Here are some books that we will use as references this semester. We will only need one or two chapters from each book. You should be able to download a pdf of each book (or individual chapters) while you are on campus.