Course website:
Moodle website:
CMPS 3620 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
C/C++ Programming
Data Structures
Introduction to Algorithms
4 semester units. 3 units lecture (200 minutes), 1 unit lab (150 minutes).
Required for CS
Computer Networks, 5th edition, Andrew S. Tanenbaum and David J. Wetherall,
Prentice Hall, 2011, ISBN-13 978-0-13-212695-3.
The 4th edition may also be used, but the 5th edition contains information
on newer networking protocols.
None
Melissa Danforth, Marc Thomas
This course covers the following ACM/IEEE 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
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 or 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.
Chapter 1 |
Introduction |
Week 1 - 2 |
Chapter 2 |
The Physical Layer |
Weeks 3 - 4 |
(Review) |
Statistical Models |
Weeks 5 - 6 |
Chapter 3 |
The Data Link Layer |
Weeks 7 - 8 |
Chapter 4 |
The Medium Access Sublayer |
Weeks 9 - 10 |
Chapter 5 |
The Network Layer |
Weeks 11 to 12 |
Chapter 6 |
The Transport Layer |
Week 13 |
Chapter 7 |
The Application Layer |
Week 14 |
Chapter 8 |
Network Security |
Week 15 |
Not applicable to this course.
The lectures will focus extensively on the theory of networking and the
details of several popular networking protocols (e.g. Ethernet, 802.11,
TCP/IP, etc). The theory has a strong mathematics component, particularly
for calculating probabilities of events. A brief background of probabilty
and statistical methods will be presented in class for students who have
not taken the probability course in Mathematics.
Students are responsible for their own attendance. The topics covered
in lecture will be listed on the course website. Lab attendance is not
required but is strongly encouraged.
Assignments may discussed in groups. If the assignment is a group
assignment, the group turns in one assignment for the entire group.
However, if the assignment is an individual assignment, each student
must turn in their own work; no direct copying is allowed. You may
discuss individual assignments with other students, but you must write
up the assignment in your own words. Any direct copying from other students,
the textbook, Internet resources, etc. that the instructor detects will
result in a grade of 0 for that assignment. Refer to the Academic Integrity
policy in the campus catalog.
The CEE/CS Tutoring Center in Sci III 324 is available for use by students
in this course outside of class time on a first come, first serve basis.
Priority in the lab is given to students who are completing assignments
for CEE/CS courses. See the schedule on the door for hours the lab will be
open.
There are also computers available in the CEE/CS Major Study Lounge in Sci
III 341 (formerly the CEE/CS Library). This room is only open when faculty
members are on campus, e.g. approximately 8am to 5pm on weekdays. If the
door is currently locked, see Steve, Erika, myself, or another faculty member
to unlock it.
Labs | 33% |
Homeworks | 33% |
Final | 33% |
Participation | 1% |
Labs will be group assignments. Each group, consisting of 1-3 students,
will turn in one assignment for the entire group. Be sure all names are
on the assignment so all group members receive credit.
Homeworks may be discussed in groups, but every student must turn in their
own assignments in their own words. Refer to the Academic Integrity Policy
above.
Assignments will be posted online on the course website. The due date will
be given with the assignment.
Late labs are accepted. Partial credit will be given for
incomplete labs.
Late homework is accepted.
Assignments are submitted by emailing the instructor from the CEE/CS
department server (coding assignments) or by attaching files to
the Moodle website (non-coding assignments). All files must be in text,
OpenOffice or PDF format. If scanning a hand-written page, use a standard
image format such as JPG, PNG, or GIF, or use PS or PDF format.
May 2020
If you cannot make the scheduled final time because it conflicts with another
final or you have more than two finals scheduled that day, you MUST contact
the instructor ONE WEEK in advance of the final to schedule an alternate time.
Eddie Rangel
Approved by CEE/CS Department on [date]
Effective Winter 2014