EPL606 Computer Networks
and the Internet

Fall 2016

Overview

In the last few years we have seen the emergence of an extrordinary number of Internet applications. The Internet has changed tremendously and it is not only used to browse the Web, email friends, or download files. People use the Internet to communicate (with both voice and video), exchange music and video clips, share information either though long blogs and posts, and also through small text-based messages, watch TV and movies, play games, and so much more.

Course Objectives

This is a graduate-level course in which will explore research topics in computer networking, primarily at the network layer and above. You will gain exposure to rapidly developing areas of computer networking through our focus on the new wave of Internet applications described above, and the infrastructure that supports them. Therefore the course has two objectives. The first is to understand the innovations (algorithmic and technological) behind these applications, and the second objective is to understand the underlying principles of networking protocols and algorithms that support them.

It should be noted that this is not an introductory course in Networking. The course is also not about specific applications, nor it is structured around certain protocols. Specific applications will be used as the framework in which standards and protocols will be described and analyzed. Students are expected to do a significant amount of readings on their own.

Course Details

Contact:
Asst. Prof. Vasos Vassiliou
ΘΕΕ 1, Β114
<my last name.first initial>@ucy.ac.cy

Class Location and Time:
Tuesdays, 3:00pm-6:00pm,
ΘΕΕ 1, 147

Office Hours:
Tuesdays and Fridays, 10:30am-12:00pm
and by appointment

Laboratory Assistant:
Dr. Yiannos Mylonas

Lab. Location and Time:
Wednesdays, 2:00pm-3:30pm,
ΘΕΕ 1, 201

Honor Code

Students are expected to abide by the University of Cyprus Code of Conduct. Honest and ethical behavior is expected at all times. All incidents of suspected dishonesty will be reported to and handled by the office of student affairs. You are to do all assignments yourself, unless explicitly told otherwise. You may discuss the assignments with your classmates, but you may not copy any solution (or part of a solution) from a classmate.

Course Structure

The course will meet once a week for 2 continuous sessions (80-minutes per session).

The course will adopt a new style that combines four elements:

  • Students will watch selected videos or read selected items of bibliography on that lecture's topic before coming to class
  • The instructor will present the topic using textbook bibliography and/or technical articles
  • One or more small (5-10 min) presentations on specific ideas/articles will be presented by students
  • The students and the instructor will engage in discussion on the topic

Pre-requisites and Recommended Background

Students should have taken at least an undergraduate-level networking course (EPL324, EPL375) and have basic programming experience in C, Java, or Python. Students with a primary interest in machine learning or AI, HCI, or databases will also find some of the topics interesting.

Bibliography

The course will not follow a textbook. Instead, we will utilize a number of sources such as books, survey, and research papers (listed in the schedule section). You may also find the following textbooks useful for certain parts of the course:

  • "Computer Networks, A Systems Approach", Larry Peterson and Bruce Davie, Morgan Kauffman-Elsevier, Fifth Edition, 2011
  • "Computer Networking -- A Top-Down Approach Featuring the Internet" – Sixth Edition, James F. Kurose and Keith W. Ross, Addison-Wesley, 2012.
  • “Computer Networks, 5th Edition”, Andrew S Tanenbaum and David Wetherall, Pearson Education, 2011.
  • “Computer Networks, An Open Source Approach – International Edition”, Yin-Dar Lin, Ten-Hung Hwang, and Fred Baker, McGraw Hill, 2011

Grading

  • 10% Participation and Class Presentations
  • 30% Assignments and Lab Exercises
  • 30% Group Semester Project
  • 30% Comprehensive Final Exam

Assignments for the course will be theoretical exercises, programming assignments, lab-based assignments, and paper summaries.

Participation includes:

  • Watching the videos and reading the papers (as determined with in-class quizzes).
  • Participating in class discussion.
  • Attending class.

The project can be done in groups of two or three, subject to approval of the instructor.

Project

Students will work on a term project in groups of two or three students. The semester project is supposed to be the most creative and fun part of the course. Also, the project will be a "hands-on" study that is related to one or more Internet applications or Network technologies and Protocols. The exact project description will be determined by students themselves. The only requirement is that the project should have a sufficiently challenging component, and it should be relevant to the syllabus of this course.
For instance, you can write a new (or modify an existing open-source) application that is related to the course topics. You can measure or experiment with existing network architectures, evaluating their performance or other characteristics. You can study the user-level satisfaction of a video streaming application. Or, you can propose, study and implement an algorithm that would be useful in one of the applications we cover (for example, an advanced web searching algorithm based on clustering or semantic associations). Writing a survey paper or just running some applications would certainly not be enough.

Important project milestones:

  • Sep. 20: Form groups of 2-3 students - email group name, participants (names and email addresses) to the instructor and assistant
  • Oct. 4: Two-page project description, explaining what you want to do and how you plan to do it. The instructor will provide feedback and you may need to revise your project description.
  • Oct. 18: Present your project proposal in class.
  • Nov. 08: progress report -- each group will present in class what they have accomplished so far
  • Last week of classes: Project writeup (pre-publication draft) and final project presentations

Please watch all videos and read all papers before class. The teaching style will be "flipped", so class time will be devoted to discussion and questions.

Videos, assignments, and papers will be posted by the beginning of the corresponding week of class. Assignments will generally be due immediately before the subsequent assignment is released.

-->
Date Modules Readings Slides
Sep. 6
Sep. 13
Sep. 20
Sep. 28
Oct. 4
Oct. 11
  • Traffic Modelling and Queuing Theory
Oct. 25
Nov. 1
Nov. 8
Nov. 29
  • Project Presentations
Dec 9
  • Final Exam

Laboratory Sessions and Exercises

Laboratory

Semester Project


Timeline
  • 1/11/2016 - Submit Progress Report and Do 5-10 min presentation of project and progress in class.
  • 29/11/2016 - Final Project Presentations - 20mins/project + 5min Q&A.
No. Project Title Team
1. IMPROVEMENT OF NETWORK RESOURCE UTILIZATION AND QOS BY USING MPLS TRAFFIC ENGINEERING
  1. Charalambos Constantinou
2. Jamming Detection Protocols used in low-power WSN/IoT
  1. Irene Christodoulou
  2. Marios Loizou
3. DDoS Attacks , POC Implementation and ways to defend
  1. Kyriakos Andreou
4. DDoS Attacks and ways to defend
  1. Constantinos Chrysostomou
  2. Andreas Kailos
5. Detecting Selective Forwarding, Blackhole and Sinkhole Attacks in Wireless Sensor Networks using Support Vector Machines
  1. Marios Anthimou
  2. Pantelis Anthimou
6. Comparative Quality Evaluation of Video Encoding Techniques
  1. Iakovos Rodotheou

News and Updates

  • 30/8/2016 - Website up and running
  • 30/8/2016 - There will be no Tutorial Session and no Laboratory Session on the first week of classes
  • 25/10/2016 - Updates regarding project deadlines
  • 25/10/2016 - Project Teams and Info updated