As Internet is becoming ubiquitous, understanding its Nuts and Bolts is mandatory for preparing a good telecommunication and/or computer Engineer. In this sense, the main objective of offering the computer networks course is to provide a comprehensive overview of Internet architecture. Most importantly, the course aims to prepare an Internet developer rather than an Internet user by teaching the design principles of network protocols (i.e., medium access protocols, routing protocols, transport and congestion control protocols, security protocols, etc) for the state-of-the-art network architectures, such as software-defined wireless networks, networked data centers, and Internet-of-Things.

