University of Minnesota
Csci8211: Advanced Computer Networks and Applications

Csci8211: Advanced Computer Networks and Applications

                                                    Basic Architectures, Platforms, and Research Issues in Network Function Virtualization (NFV)

Course Syllabus

Class Meeting Time and Venue: 

       Wednesday 6:30pm to 9:00pm; Mechanical Engineering (ME) 102


Prof. Zhi-Li Zhang
Email: zhzhang AT 

Office: Walter/DTC 489 (mostly); Keller 6-187 (occasionally)
Office Hours: By appointment


Course Description:

As we all know, the Internet is now the de facto global information infrastructure that underpins much of today's commercial, social and cultural activities. Today we rely on the Internet for a variety of information services that are essential to our daily life, from communications and information access to e-commerce and entertainment. Because of this, many new requirements of Internet services are more critical and urgent than ever before. These requirements include service availability and robustness (i.e., "always-on" services), quality and security. Furthermore, enabling new value-added services also becomes increasingly important to both the Internet users and service providers. So, is the current Internet up to the task? In this course we will present and study the emerging software-defined networking (SDN) paradigm as well as network function virtualiztion (NFV) -- with an emphasis on the latter ---  to understand a number of critical aspects of the Internet such as evoluation of the Internet, availability, manageability, security and emerging new services and applications. In particular, we will explore the basic architectural principles, fundamental mechanisms and technical challenges arising from SDN/NFV as well as the potential issues in applying SDN/NFV to edge and cloud computing, emerging 5G services, Internet of Things,  network security and other applications and contexts. 


This is an advanced graduate course which is primarily targeted at MS/Ph.D graduate students who would like to pursue research in networking, cloud computing and related areas.  The priority for enrollment will be given to CS/EE Ph.D students who are working in networking, systems and related areas; then other Ph.D students or MS students who have taken Csci4211/Csci5211 (or its equivalents) and/or have strong background in networking and related areas. Otherwise permissions from the instructor will be needed to enroll for the course. Please note that this is not a regular lecture-based course, but more a seminar- and project-oriented course, with student presentations, classroom discussions as well as student research projects. More specifically, we will operate the course in two "parallel" tracks: In one track, we will read, study and discuss research papers on SDN/NFV and related areas. This track will consist of some presentations by the instructor, and but mostly by the students. Active participation in class discussion is required! The presenter functions primarily as the lead to facilitate discussion! In parallel, each student, possibly teamed with another student, will study and investigate a selected research topic of interest. With the help of the instructor, each student will identify one research problem he/she would like to study, write up a project proposal, make their case in front of the class; and throughout the course, make presentations on their "findings" and proposed solutions, and so forth. Amble time will be reserved for these purposes. Each student/team is required to submit a final project report in the format of a "workshop" paper by the end of the course. In addition to the presentation and term project, each student is expected to read every research paper, write up paper reviews, occasionally answer a few questions/solve problems related to the papers, participate in classroom discussion, and take part in the "peer review" process.


CS/CE graduate students who have taken courses in computer networks such as Csci 4211/Csci 5211/Csci5221, and other system courses such as Operating Systems, Distributed Systems, and who are highly motivated, willing to devote time and effort to the coursework, and possess sufficient "research maturity."  Fluency in C/C++ or Python programming languages is required. We will keep the class size small to facilitate interaction among class participants.  As stated earlier, highest priority will be given to CS Ph.D students, in particular, those who are conducting -- or are interested in pursuing -- research in networking, cloud computing and related areas. Since this course involves a lot of off-class self-learning and research, students who have relatively light course load will be considered more preferably than those who have heavy course load.

Class Readings:

We will provide handouts and recommend reading materials from recent journals/conference proceedings and other sources.
A tentative course schedule (for the first few weeks) can be found here (with additional readings and other information continuously updated throughout the course).

Coursework and Evaluation:

In addition to study the required reading materials and participating in class discussions, all students enrolled in this course for credit will be required to complete the following tasks. They will be evaluated based on their performance of these tasks.

  • Paper Review: each student is required to submit a paper review for  about 1/2 of the papers that are designated as "required reading." The paper review needs only be 1/2 -1 page long, and must be submitted before the class on the day of lecture.
  • Paper Presentation: each student will study a number of research papers (2-3) on a selected topic in detail, prepare and make two presentations, and lead the classroom discussion.
  • Research Project: Each student will be expected to conduct a "research project"  to address one or two research issues from a list of selected topics. Depending on the number of the students in the class, it is possible for some of you to work as a team of 2 students. The "research topics" will be chosen in consultation with the instructor. A project might consist of doing an "in-depth analysis'' of one or two research topics and writing a summary paper; it might consist of delving much more deeply into a specific research area by performing some simulations/experiments to verify existing ideas/approaches; it might consist of proposing original ideas or conducting original work which extends the ideas or approaches of other researchers. The following procedure will be observed:
    1. By the fifth week,  you should select a research topic in consultation with the instructor.
    2. By the seventh week, a "draft research proposal" (1-2 pages) must be submitted which describes the scope of the project, lists the issues to be addressed and outlines the approaches to be taken. Several recommended papers related to the project must also be provided.
    3. By the end of week 10, a detailed project proposal and initial progress report (5 pages) must be submitted.
    4. By the last day of class, the final project report (10 page maximum) in the format of a workshop paper is due.
  • Peer Review: Each student/team will also be responsible for "peer reviewing" the project of another student/team. This includes 1) reading the recommended papers, project proposal, progress report and the presentation outline of the other student/team, writing a review report and posing a list of suggested questions for "panel" discussions; 2) reviewing and evaluating the final project report of the other student/team. A review report (2 pages maximum) is due by Wednesday 5:59pm of the last week of class .