CPSC 433/533: Computer Networks, Fall 2017 : Course Info

Home  –  Overview  –  Schedule  –  Readings  –  Resources

Last Modified: Saturday, 21-Oct-2017 19:33:32 EDT

Course Information for CPSC 433/533

Time and location: TTh 1:00-2:15 PM
Instructor: Y. Richard Yang (yry AT cs.yale.edu)
Room: AKW 208A
Phone: 432-6400
Instructor office hours: TTh 2:30-3:30 pm or by appointment
Teaching assistants: Geng Li (geng.li AT yale.edu), Qiao Xiang(qiao.xiang AT cs.yale.edu)
Teaching assistant office hours: M-F 9am-6pm
Class home page: http://zoo.cs.yale.edu/classes/cs433/


The Internet has grown from a research curiosity to something as essential as the ubiquitous telephone and utility networks. It has been able to withstand rapid growth fairly well and its core protocols have been robust enough to accommodate applications (e.g., the World Wide Web) that were unforeseen by the original Internet designers. Networking is becoming an essential component of many systems.

In this class, we will study the design, implementation, analysis, and evaluation of this global network. We will start with the design principles and the architecture of this global network infrastructure. We will follow the seven layers architecture and study the major protocols in detail. Through both analysis and programming assignments, the students will learn how the Internet works and how to design Internet applications.

Topics include: layered network architectures, applications, transport, congestion, routing, data link protocols, local area networks, performance analysis, cloud networking, multimedia networking, and network security. An emphasis will be placed on the protocols used in the Internet.


This will be a fast-paced course that covers both the algorithmic/theoretical background and the practical programming for computer networks. The algorithmic background required is covered in CPSC 223b. Basic knowledge of distributed computing and probability will be helpful but not required. The practical programming background required is covered in CPSC 223b and 323a. Background in operating system will be helpful for some programming assignments. The prerequisite is CPSC 323a, for which CPSC 223b is a prerequisite.

Course requirements

Course requirements include written assignments, programming assignments and two exams. There will be no final examination.

Course materials


Class participation. If you do not ask questions in the class, you will not get as much out of the class as you could. Your class participation will be based on the instructor's assessment of whether you are regularly involved in the class over the course of the semester. If at the end of the semester the instructor cannot remember you, you have not actively participated in the class.


I strongly encourage you to discuss any topic with anyone. That's the way good science happens. As a professional, you should acknowledge any significant discussions in your homework/projects. However, when the time comes to write the homework or program, such discussions are no longer appropriate---the solution or program must be your own personal inspiration (although you may ask the instructor and teaching fellow for help in writing and debugging). DO NOT UNDER ANY CIRCUMSTANCES COPY ANOTHER PERSON'S HOMEWORK OR PROGRAM---to do so is a clear violation of ethical/academic standards that, when discovered, will be referred to the Executive Committee of Yale College for disciplinary action.

Late homework policy

A homework or program that is not completed by the time specified in the assignment (and whose late submission is not authorized by the instructor or by a Dean's excuse) will be not be graded.

Copyright (c) 2000-2017 Y.R. Yang, Department of Computer Science, Yale University