In Part I, we will discuss issues in point-to-point communication where the communicating devices are directly connected. In Part II, we assume that the communicating devices may or may not be directly connected and are part of a network of devices. We will discuss architectural issues in this context, as well as issues pertaining to routing data, congestion control, communication protocols involved, etc. In Part III, we assume that application programs running on various devices are communicating among themselves. Protocol design and architectural issues will be the primary focus of this part. (Offered irregularly.)