35h Th, 2h Pr, 12h Labo., 40h Proj.
Number of credits
Language(s) of instruction
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.
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.
Teacher: Guy Leduc, Guy.Leduc@ulg.ac.be