EE 586 Communication and Switching Networks

Fall 2015


[Home] [Syllabus]



This course has an external class website at where the lecture notes will be posted. The canvas site will have the other course material.  

Instructor: Dr. Sen-ching Cheung (cheung at

Office: DMB 217 (218-0299)

Office hours: M-F 12:15-1:30pm


Teaching Assistant: Wanxin Xu (wanxin.x at

Office: TBA

Office hours: TBA


MWF 11:00am-11:50pm (RGAN 207)

Course Description

This course is an introduction of the design and implementation of computer networks. We will study the concepts and fundamental design principles that have contributed to the global Internet's scalability and robustness. The course will focus on the underlying technologies that have led to the Internet's phenomenal success. They include congestion/flow/error control, routing, addressing, internetworking, packet scheduling, network programming interfaces, and wireless networking. If time permits, we will also venture into the general topics of networking science, the discipline that not only governs computer networks but other types of networks including world-wide-web and social network. This course has a strong emphasis on hands-on experience, which includes lab exercises using Wireshark, a packet sniffer, and a network simulator, as well as an in-depth project on an internet of things network.

Expected outcomes of student learning

  1. To understand the layer architecture of networks
  2. To design simple networking applications using sockets
  3. To compare and contrast TCP and UDP transport protocols
  4. To understand basic network routing algorithms
  5. To compare and contrast different Link Layer protocols
  6. To understand the challenges of mobility in wireless, cellular and embedded networks
  7. To have an understanding of internet-of-things and general networking science


Your grade will be based on:




Course Participation


Two Midterms


Final Project




  1. Homework and Laboratory Exercises

-        Homework will be assigned approximately biweekly.

-        While we will discuss homework in class, each student must do his or her homework.

-        Late homework will not be accepted without prior notice.   

  1. Course Participation

-        Insightful comments and questions, active participation of class activities during lecture, office hour and online will be rewarded.  

  1. Midterms

-        Two closed-book midterms will be given.

-        One double-sided chat sheet is allowed for midterm 1 and two for midterm 2. 

-        Make-up exams will only be given if the student contacts the instructor prior to the exam and receives permission to make up for the test.

  1. Final project

-        It is a team project of two-three students.

-        Grading is based on an in-class presentation+demo and a project report.

  1. Grade Assignment

-        The letter grade assignment is based on the following scale: from 100 to 90 pts => A, from 89 to 80 pts. => B, from 79 to 70 pts => C, from 60 to 69 pts. => D, from 59 to 0 pts. => E.   

6.      Plagiarism

-        I have a zero-tolerance policy for all forms of plagiarism, from copying a homework answer from your friend or solutions from previous terms to cheating in the exams. Not only you will lose all the points for that assignment, the incident will also be reported to the Department Chair who will determine the appropriate disciplinary action.

Required Text

1.      Kurose and Ross (KR): Computer Networking: A Top-Down Approach, sixth edition, Addison Wesley, 2012. (website) (amazon)

2.      Shaw: Learn C the Hard Way (online book)

3.      Hall: Beej’s Guide to Network Programmg (online book)

4.      Brinton and Chiang (BC): Networks Illustrated, 8 Principles Without Calculus (free course) (amazon)

Public-domain Software Required:

1.      Wireshark Packet Sniffer:

2.      Riverbed Modeler Academic Edition (registration required):

3.      The Contiki Operating System:


The first two software packages are needed for your laboratory exercises – the Wireshark Packet Sniffer will be used to monitor and examine packets in a real network. You will use it to study and understand the inner workings of various Internet protocols. Riverbed Moduler is a network-simulator that allows you to design and simulate protocols and to study the impact of your design on a network. The third package, Contiki, is an embedded operating system that supports the latest IPv6 over low-power wireless area networks (6LoWPAN). We will use the Contiki environment to design and implement a protocol to collect data from and actuate a wireless network of sensor nodes.


1.      CS 115 or a good working knowledge of programming

-        This course needs to deal with low-level devices and thus we will focus on using C. I will assume that you have the basic knowledge of C. If you don’t, please go through the first 26 exercises in Shaw’s Learn C the hard way.

2.      MA 320 or proficiency in basic discrete probability

3.      EE 280 or proficiency in Boolean algebra

4.      Have access to a PC (windows or windows emulator) to which you have administrative right to install programs.