2023-2024 / INFO0010-4

Introduction to computer networking

Duration

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

Number of credits

 Bachelor of Science (BSc) in Engineering5 crédits 
 Bachelor of Science (BSc) in Computer Science5 crédits 
 Master of Science (MSc) in Computer Science and Engineering5 crédits 
 Master of Science (MSc) in Computer Science5 crédits 
 Master of Science (MSc) in Computer Science (joint-degree programme with HEC)5 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 first semester, review in January

Schedule

Schedule online

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 network layer. It is composed of the following chapters:

  • Internet architecture : network edge/core/access, protocol layers.
  • 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: data and control planes, router architecture, Internet Protocol (IP), addressing and forwarding, routing algorithms (RIP, OSPF, BGP).
  • Link layer and Local Area Networks: error detection, LAN, MAC addresses, ARP, Ethernet, hubs/switches, spanning trees.

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 simple web 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.

This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, VI.1, VI.2, VII.1, VII.2, VII.4, VII.5 of the BSc in engineering.


This course contributes to the learning outcomes I.1, I.2, I.3, II.1, II.2, III.1, III.2, VI.1, VI.2, VII.1, VII.2, VII.4, VII.5 of the MSc in data science and engineering.


This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, VI.1, VI.2, VII.1, VII.2, VII.4, VII.5 of the MSc in electrical engineering.

Prerequisite knowledge and skills

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

Planned learning activities and teaching methods

  • Lectures describing in detail the theoretical and practical concepts of the course.
  • Labs based on the Netkit network emulator, to go deeper into some concepts and thereby improve the understanding. Lab sessions are supervised practical sessions. Students are expected to prepare, at home, those sessions, at the very least by reading the reminder document.
  • Programming assignment: design and development in Java of a distributed application.

Mode of delivery (face to face, distance learning, hybrid learning)

Face-to-face lectures. 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 (8th Edition), Pearson 2020.
Slides are available on eCampus.

Exam(s) in session

Any session

- In-person

oral exam


Additional information:

The evaluation is threefold: the project, the labs, and the oral exam on the theory. The grade is a geometric mean of the theoretical and practical parts. The latter is a weighted arithmetic mean of the grades of the project and labs. Presence at labs is mandatory.

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 was not present at the lab sessions or has not completed his/her project is not allowed to take this exam.

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 labs again. If the overall 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 overall grade of the labs is not favorable to the student, it is not taken into account in September, and the grade becomes a weighted geometric mean of the project (30%) and the oral exam (70%).

Work placement(s)

Organisational remarks and main changes to the course

First term (from September to December), on Wednesdays from 8:30am to 12:30pm.

The project will start after week 3 and last until the end at week 13.

Contacts

Teacher: Guy Leduc, Guy.Leduc@uliege.be

Teaching assistant for the labs: Louis Dasnois

Teaching assistant for the project : Davan Chiem Dao

 

Association of one or more MOOCs