2017-2018 / INFO0010-4

Introduction to computer networking

Duration

35h Th, 2h Pr, 12h Labo., 40h Proj.

Number of credits

 Bachelor in engineering5 crédits 
 Bachelor in computer science5 crédits 
 Master in data science (120 ECTS)5 crédits 
 Master of science in computer science and engineering (120 ECTS)5 crédits 
 Master in data science and engineering (120 ECTS)5 crédits 
 Master in computer science (120 ECTS)5 crédits 
 Master in computer science (60 ECTS)6 crédits 
 Master in business engineering (120 ECTS)5 crédits 

Lecturer

Guy Leduc

Language(s) of instruction

English language

Organisation and examination

Teaching in the second semester

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

Computer networking is studied using a top-down approach, from applications down to the physical layer. It is composed of the following chapters:

  • Internet architecture : network edge/core/access, protocol layers, history.
  • Application layer: web and HTTP, DNS, socket programming.
  • Transport layer: (de)multiplexing, connectionless transport (UDP), reliable data transfer, connection-oriented transport (TCP), flow and congestion control.
  • Network layer: virtual circuit and datagram networks, router architecture, Internet Protocol (IP), addressing and forwarding, routing algorithms (RIP, OSPF, BGP).
  • Link layer and Local Area Networks: Error detection, multiple access protocols (Aloha, CSMA/CD, Ethernet), addressing, hubs/switches, transparent bridges

Learning outcomes of the learning unit

At the end of the course students will understand well the principles of computer networks, their layered architectures (OSI and TCP/IP models), the fundamental mechanisms governing the protocols in various layers, and some examples of existing protocols. They will also be able to implement a distributed application in Java using the socket API.
The project brings out self-learning and teamwork capabilities, and helps improve the writing skills of the students. Teaching, and all support material, in English allow students to improve their knowledge and skills in this langage.

Prerequisite knowledge and skills

Two years of bachelor in computer science or equivalent. This prerequisite is mainly due to the substantial network programming assignment that requires a good knowledge and practice of the Java programming language.

Planned learning activities and teaching methods

  • Lectures (35 hours) describing in detail the theoretical and practical concepts of the course.
  • Lab sessions (12 hours), based on the Netkit network emulator, to go deeper into some concepts and thereby improve the understanding.
  • Programming assignment: design and development in Java of a distributed application. The first part is individual and followed by a "questions & answers" session to correct the most frequent mistakes. The second part is carried out in groups of 2 students.

Mode of delivery (face-to-face ; distance-learning)

The face-to-face lectures are complemented by network lab sessions and some feedback at mid project. Projects are mainly carried out remotely.

Recommended or required readings

Reference book: James F. Kurose and Keith W. Ross. Computer Networking - A Top-Down Approach (Sixth Edition). Addison-Wesley, 2012. Also published by Pearson (ISBN 978-0-273-76896-8).
Slides : http://www.montefiore.ulg.ac.be/~leduc/cours/reseaux-informatiques.html

Assessment methods and criteria

The evaluation is threefold: the project (weight of 30%), the lab sessions (20%), and an oral exam on the theory (50%).
At the oral exam the student has to expose clearly and in a synthetical way one part of the course, and prove his/her in-depth understanding by answering questions. A student who has not completed his/her project is not allowed to take this exam. Presence at the lab sessions is mandatory. Students have to write a short report at the end of each session. Each report will receive a grade.
The assessment of the project will be based on (1) the completeness of the software that will have to pass a series of functionality tests, (2) the quality of the code, and (3) the quality of the report. Students may improve their project for the second exam session (in September), but cannot do the lab sessions again. If the grade of the labs is favorable to the students, the second session is identical to the first one, with the same weighting. On the other hand, if the grade of the labs is not favorable to the student, it will not be taken into account in the weighting in September.

Work placement(s)

Organizational remarks

The course is organized during the second term (from February to May), on Fridays from 9am to 1pm. The research assistants are: - Simon Liénardy, for the lab sessions, - Samuel Hiard, for the project.

Contacts

Teacher: Guy Leduc, Guy.Leduc@ulg.ac.be
Teaching assistants: