LordTT / Teaching-HEIGVD-RES-2021

Main repository for RES 2021 @ HEIG-VD

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Teaching-HEIGVD-RES-2021 (PT)

This is the main repo for the course RES, taught at HEIG-VD in 2021.

This is where you will find lecture notes, slides and some of the examples presented in the class. We will also keep links to the different repos used throughout the semester (for assignments).

Upcoming deadlines

  • Thursday April 1st: first written test.
    • Will take place at school.
    • RES-A students will be in room C23, RES-B students will be in room B23.
    • Bring your laptop, fully equipped with wireshark, netcat, code samples and what you will have done in the next 2 lab sessions.
  • Friday, March 26th: you will work on an exercise to design, then to implement a simple application-level protocol. You will not get a grade for this lab. However, you need to do the work and to understand the content in order to have a smooth experience during the first test.

Tentative schedule

Week Course Lab
1 Introduction, process & tools Chill Protocol (no grade)
2 Java IO - part 1 Java IO
3 Java IO - part 2 Java IO (grade, weight 1)
4 TCP programming Protocol design exercise (no grade)
5 TCP programming Protocol implementation exercise (no grade)
6 Test 1 SMTP lab
Eastern break
7 SMTP SMTP lab (grade, weight 1)
8 HTTP Protocol + intro to Docker Implement a minimal HTTP client
9 HTTP Protocol + intro to Docker implement a minimal HTTP server
10 HTTP infrastructure HTTP infra lab
11 HTTP infra lab (grade) HTTP infra lab
12 Test 2 HTTP infra lab
13 HTTP infra lab (grade) HTTP infra lab (grade, weight 3)
14 UDP programming UDP Lab (orchestra)
15 UDP Lab (orchestra) UDP Lab (orchestra)
16 Semester review & exam prep UDP Lab (orchestra) (grade, weight 1)

Repo for the labs

Title Repo (new repos need to be created for 2021) Webcasts Graded
Chill Protocol https://github.com/SoftEng-HEIGVD/Teaching-HEIGVD-RES-2021-Chill https://www.youtube.com/playlist?list=PLfKkysTy70QaN-uez0K4UpSpVUbt8ETpk (12 webcasts, ~2 hours). We need to update this, in order to use GitHub Actions instead of TravisCI. Also see this article on Medium. no
Labo Java IO https://github.com/SoftEng-HEIGVD/https-github.com-SoftEng-HEIGVD-Teaching-HEIGVD-RES-2021-Labo-Java-IO 3 webcasts have been added to the RES 2021 playlist yes
Protocol design exercise https://github.com/SoftEng-HEIGVD/Teaching-HEIGVD-RES-2021-Exercise-Protocol-Design 1 webcast has been added to the RES 2021 playlist. no

Resources

Week 1

  • Course introduction: objectives, semester planning, intro to first lab
  • The "Chill Protocol" lab
    • Get familiar with the GitHub workflow
    • Get familiar with toolset and practices that will be used during the semester (maven, lombok, JUnit)
    • See a first example of a "communication" protocol
  • Slides

Week 2

  • Java IO, part 1
  • The Java IO Lab (file operations)
  • Slides

Week 3

  • Java IO, part 2
  • The Java IO Lab (file operations)
  • Slides

Week 4

Week 5

  • TCP programming, part 2
  • Slides and extra slides.
  • Recommended activities for the lab:
    • Work in pairs
    • One student implements the client
    • One student implement the server
    • Try to make the client and the server work together, troubleshoot and review each other code
  • This is the URL for an old lab (Roulette Protocol) that I talked about during the lecture. Once again, you do not have to do this lab, but it is interesting for you to read the code to understand the structure of a multi-threaded TCP server implementing a custom application-level protocol.

Week 6

Easter Break

Week 7

Week 8

Week 9

Week 10

Week 11

Week 12

  • Test 2

Week 13

Week 14

Week 15

Week 16

About

Main repository for RES 2021 @ HEIG-VD

License:MIT License