This course is an introduction to computer networking for undergraduates. In this course, you will familiarize yourself with the basic principles and the architecture of computer networks. We will go over the main components and applications of the TCP/IP protocol stack as well as the Internet. The class consists of lectures and lab sessions. During the lab sessions, you will work on a set of small exercises to get hands-on experience of what you have learned during the lecture.

With this course, you will acquire the basic knowledge of the Internet architecture and of its evolution. You will also understand the internals of the Internet protocols. In addition, you will be able to design and code your own TCP/IP applications and protocols and to solve simple configuration and performance problems that may arise in practice.