CMPS 376 Computer Networks
Catalog Description
CMPS 376 Computer Networks (5)
A study of computer networks focusing on the TCP/IP Internet protocols and covering in detail the four layers: physical, data link, network, and transport. This course includes a laboratory in which students will cover important network utilities, debugging tools, process and thread control as it relates to network programming, and the coding of programs which do interprocess communication over sockets. The typical Internet client program which accesses a TCP network server daemon will be covered in detail. Each week lecture meets for 200 minutes and lab meets for 150 minutes. Prerequisite: CMPS 223 with a grade of C- or better
Prerequisites by Topic
C/C++ Programming
Data Structures
Introduction to Algorithms
Units and Contact Time
5 quarter units. 4 units lecture (200 minutes), 1 unit lab (150 minutes).
Required for CS
Required Textbook
Computer Networks, 5th edition, Andrew S. Tanenbaum and David J. Wetherall, Prentice Hall, 2011, ISBN-13 978-0-13-212695-3.
Recommended Textbook and Other Supplemental Materials
Melissa Danforth, Marc Thomas
Student Learning Outcomes
This course covers the following ACM/IEEE CC2001 Body of Knowledge student learning outcomes:

CC-NC1: Introduction to net-centric computing
CC-NC2: Communication and networking
CC-NC3: Network security
CC-NC4: The web as an example of client-server computing

ABET Outcome Coverage
The course maps to the following performance indicators for Computer Science (CAC/ABET):
(CAC PIa1): Apply and perform the correct mathematical analysis.
Apply statistical methods including the binomial and Poisson distributions to analyze common networking scenarios such as Ethernet contention, error rates, queueing theory, and channel efficiency.
(CAC PIa2): Prepare and solve the appropriate physical model of the problem.
Apply Shannon's law and Nyquist's theorem to appropriate models of the physical layer of the networking stack.
(CAC PIe2): Recognize and describe current issues in security.
Describe at least one protocol that adds security to the TCP/IP protocol stack. Analyze scenarios involving network security such as the appropriate use of security techniques for a given scenario and the limitations of common encryption protocols.
(CAC PIi1): Program in a suitable computer language.
Use the socket API for the TCP/IP protocol stack to code a simple client-server application in the C programming language.
(CAC PIi3): Utilize problem solving skills and techniques to complete the task.
Analyze common networking scenarios and apply the appropriate techniques to derive a solution.
Lecture Topics and Rough Schedule
Chapter 1 Introduction Week 1
Chapter 2 The Physical Layer Weeks 1 to 3
(Review) Statistical Models Week 3
Chapter 3 The Data Link Layer Weeks 3 and 4
Chapter 4 The Medium Access Sublayer Weeks 4 to 6
Chapter 5 The Network Layer Weeks 7 and 8
Chapter 6 The Transport Layer Week 9
Chapter 7 The Application Layer Week 10
Chapter 8 Network Security Week 10
Design Content Description
Not applicable to this course.
Prepared By
Melissa Danforth on October 30, 2013
Approved by CEE/CS Department on [date]
Effective Winter 2014