35h Th, 2h Pr, 12h Labo., 40h Proj.
Number of credits
Language(s) of instruction
Organisation and examination
Teaching in the first semester, review in January
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, 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: 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, VLAN
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.
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 (35 hours) 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.
- 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.
Assessment methods and criteria
Exam(s) in session
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.
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.
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%).
First term (from September to December), on Wednesdays from 8:30am to 12:30pm.
The project will start after week 4 and last until the end at week 14.
Teacher: Guy Leduc, Guy.Leduc@uliege.be
Teaching assistant: Emeline Marechal, firstname.lastname@example.org