The goal of this course is to introduce students to fundamental topics of principles, design, implementation, and performance of computer networks. In addition, students will explore networking techniques and protocols using hands-on experiments. This course will provide the Computer Networking foundation necessary for more advanced CSE courses, including Network Management, Distributed Systems, Cloud Computing, etc. Topics include: Internet architecture, protocols, socket programming, congestion control, switching and routing, local area networks, mobile and ad-hoc networks, network security, the end-to-end arguments and resource allocation.