Internet programming

2019-2020
Dit vak wordt in het Engels aangeboden. Omschrijvingen kunnen daardoor mogelijk alleen in het Engels worden weergegeven.

Doel vak

This is a course on advanced topics in computer networking. The context
will span broadly from the network core, across the Internet, all the
way to the network edge. Students will learn about the recent/current
developments in computer networks and the concept of the main
technologies (data center networking, software defined networking,
network function virtualization, in-network computing, video
streaming/analytics, Internet-of-Things, edge computing, etc) that are
currently being adopted. After this course, students will understand the
design of these technologies and be able to reason about the design
choices therein. Students are also expected to build a network system by
applying some of the designs in a simulated environment, and analyze and
evaluate the merits and limitations of the designs.

Inhoud vak

Computer networks are now part of our daily life and many of us may have
the perception that the network has remained unchanged as it was
originally designed. Is that true? The answer is no, of course. In this
course, we will unveil some of the most significant developments under
the surface of the Internet. New developments have been carried out not
only for the traditional Internet, but also at the usually overlooked
places, being the network core and edge.

This course will be organized in three parts according to the network
context: the network core (data center), the Internet, and the network
edge (mobile).

Specifically, the course will focus on (1) core networking technologies
for data center environments (architecture, congestion control, remote
direct memory access, software defined networking, network function
virtualization, in-network computing and their applications), (2) new
protocols/mechanisms for the Internet (multipath, QUIC, video streaming,
security), and (3) emerging technologies for the network edge
(mobile/edge computing, Internet-of-Things) and exciting applications.

Much of the course will be based on paper-reading, complemented with a
hands-on programming project with several milestone steps spanning
across the whole course. The project involves programming skills in C++
and Python.

Onderwijsvorm

Lectures in combination with self-study and practical assignments.

Toetsvorm

Written exam (50%), programming assignments (30%), report (20%)

Vereiste voorkennis

Ability to read scientific papers professionally. Ability to code in a
complex setting.

Literatuur

No set book. All material will be made available during the course.

Doelgroep

mCS, mPDCS

Aanbevolen voorkennis

Students should have taken courses on computer networks, programming
paradigms (e.g., OOP). Prior experience with network programming
(socket) and simulation (mininet) is a big plus.

Algemene informatie

Vakcode X_405082
Studiepunten 6 EC
Periode P2
Vakniveau 400
Onderwijstaal Engels
Faculteit Faculteit der Bètawetenschappen
Vakcoördinator dr. L. Wang
Examinator dr. L. Wang
Docenten dr. L. Wang

Praktische informatie

Voor dit vak moet je zelf intekenen.

Voor dit vak kun je last-minute intekenen.

Werkvormen Hoorcollege
Doelgroepen

Dit vak is ook toegankelijk als: