Protocoles de messagerie
- connaître les principaux protocoles relatifs à la messagerie électronique ;
- être capable d'implémenter un client de messagerie simple ;
Protocoles de transfert de fichiers et d'accès à distance
- connaître les protocoles de transfert de fichiers et d'accès à distance,
ainsi que leurs principales utilisations (y compris tunneling/forwarding).
Topics
You will learn the following topics during this course:
- Network programming (inputs/outputs, encodings, TCP and UDP)
- Application-level protocols (SMTP, SSH, HTTP and your own)
- Web infrastructures (reverse proxy, load balancer, sticky sessions)
- How to read and write technical documentation
At the end of the course, you will be able to create applications that can
communicate over the network!
Technologies
You will learn the following technologies during this course:
- Git and GitHub
- Markdown
- Java for network programming
- Docker & Docker Compose
- Network utilities
- The terminal

Why do you have this course
This course defines the basics of network communication and how all these
communications are programmed.
At the end of the course, you will know how to define, program and deploy
network applications, how to interact with them, and the different elements to
pay attention to make robust applications.
Whether you are in software, security, data science, embedded or network, you
will have to deal with network applications (APIs, devices, etc.). This course
will give you a solid grounding in this world.
64 periods are planned for this course, divided in 3 main parts:
- Part 1 - Input/output processing (18 periods)
- Part 2 - Network programming with TCP and UDP (24 periods)
- Part 3 - Network programming with HTTP (20 periods)
The entire course planning for the semester is available at
https://github.com/orgs/heig-vd-dai-course/projects.