EECS 340 Introduction to Computer Networking
Room L459, Tech Institute,
Office Hours: 1-2pm Wednesday or by appointment, Room
L459, Tech Institute.
Office Hours: 2:30-4:30pm Thursday or by appointment, Room
Office Hours: 3-5pm Tuesday or by appointment, Room 2-207,
Location and Time
Wednesday and Friday 3:30-4:50pm, Tech L361.
Recitation: Monday 4-5pm, Tech M345.
This course provides an introduction to fundamental
concepts in the design and implementation of computer
communication networks, their protocols, and applications.
Topics to be covered include: overview of network
architectures, applications (HTTP, FTP), network
programming interfaces (e.g., sockets), transport (TCP,
UDP), flow control, congestion control, IP, routing,
multicast, data link protocols,
error-detection/correction, multiple access, LAN,
Ethernet, wireless networks, and network security.
Examples will be drawn primarily from the Internet (e.g.,
TCP, UDP, and IP) protocol suite. Over the course of the
quarter, students program in C++ on UNIX systems to build
web clients and servers, and a fully compatible TCP/IP
stack that can run them.
EECS 311 or equivalent data structure course.
EECS 213 or (EECS 205 + EECS 231) or equivalent computer
recommended: EECS 343 or equivalent operating systems
recommended: UNIX programming experience (gcc, gdb,
Networks - A Systems Approach, Fifth Edition,
Larry L. Peterson and Bruce S. Davie, Morgan Kaufmann,
2011. Good supplementary material to the [KR] book.
Network Programming (Volume
1, Third Edition, 2003, and Volume 2,
Second Edition, 1999) Richard Stevens, Prentice
Hall. Describes the details of socket programming and
IPC on Unix.
Programming in the Unix Environment, Richard.
Stevens, Addison-Wesley, 1992. A basic book for anyone
writing programs that run under Unix.
C++ Programming Language, Special Edition,
Bjarne Stroustrup, Addison-Wesley, 2000.
for the Impatient, 2nd Edition, P. W. Abrahams
and B. Larsonk, Addison-Wesley, 1996. A nice
introductory book to Unix.
the Unix Operating System (Nutshell Handbook),
5th Edition, J. D. Peek, G. Todino-Gonguet, J. Strang,
O'Reilly, 2001. Good for UNIX beginner.
with GNU Software, M. Loukides and A. Oram,
O'Reilly, 1995. Introduction on the tools on UNIX.
other pointers on C/Unix collected by Prof. Fabian
be a midterm and a final exam. Exams will be in-class,
closed-book, and will cover materials from lectures,
required readings and projects. The
exam will not be cumulative.
attendance, discussion and quiz 15%
- Midterm 20%
- Final 20%
- Course web
Check it out regularly for schedule changes,
clarifications and corrections to assignments, and other
TA will lecture on complementary materials of the
lectures, address questions for homework and projects,
and help to prepare the exams. We hope it can help
students more efficiently than the one-on-one Q&A in
- We will use
google email group for announcement, and posting
questions and answers.
Unless otherwise indicated, homework and projects are
due by the end of lecture on their due date. If you hand
in an assignment late, we will take off 10% for each day
(or portion thereof) it is late. Please note this
has be done before the solutions is posted or discussed
in class, which usually happen on the next day (when it
is before the exam) or in a couple of days after the
deadline. If you have an emergency case that
prohibit you from completing the assignment on time,
please contact the instructor and/or TAs for extensions
with approporiate proof. Note that such emergency
extension can be given to any student at most once for
the whole quarter.
It's OK to ask someone about the concepts, algorithms,
or approaches needed to do the project assignments, I
encourage you to do so; both giving and taking advice
will help you to learn. However, what you turn in must
be your own, or for projects, your group's own work;
copying other people's code, solution sets, or from any
other sources is strictly prohibited. We will punish
transgressors severely. This include the case when
you copy the solution from the Internet.