Lectures Mondays/Wednesdays 4pm-5:50pm BH 2444
Discussion Sections DIS 1: Friday / 2:00pm-3:50pm, ROYCE 164 (Manika Mittal)
DIS 2: Friday / 4:00pm-5:50pm, BH 5436 (Haitao Zhang)
Instructor Lixia Zhang (lixia at cs.ucla.edu
Office hours Monday / 3pm-4pm and Wednesday / 6pm-7pm in Boelter 3713
TAs Manika Mittal (manika.mittal at cs.ucla.edu): Thursday / 5-7pm in Boelter 2432
Haitao Zhang (zhtaoxiang at gmail dot com): Wednesday / 9-11am in Boelter 2432
Midterm Wednesday November 2, 2016, 4pm-5:50pm, BH 2444
Final Wednesday December 7, 2016, 11:30am-2:30pm, TBD
Homeworks due Wednesday of the week following the assignment, 5pm
Project 1 Deadline Sunday, October 30th / 11:00pm
Project 2 Deadline Sunday, December 4th / 11:00pm

Basic Course Information

This course provides an introduction to fundamental concepts in the design and implementation of computer communication networks, their protocols, and applications. Topics to be covered include: layered network architecture, physical layer and data link protocols, network and transport protocols, unicast and multicast routing protocols, and applications. Examples will be drawn from the Internet TCP/IP protocol suite. The course also includes two programming projects, in which students gain hand-on experience with basic network programming and development of simple network applications.

Required Textbook

  • “Computer Networking: A Top-Down Approach (6th Edition)” by James F. Kurose and Keith W. Ross. (4th and 5th edition OK)
  • “TCP/IP Illustrated, Vol. 1: The Protocols” by W. R. Stevens


  • Upper division standing, must have taken Courses CS32, CS33 previously; in addition, CS111 is highly recommended.
  • Basic understanding of algorithms, computer architecture, and operating systems.
  • Good background in C/C++ programming
  • Knowledge of multithreading programming (pthreads or C++11 Thread Support Library)

Course Workload and Grading Information

Homeworks 16%
Programming Projects 40% (20%/20%)
Midterm exam 22%
Final exam 22%
  • Weekly homework will be assigned after the 2nd lecture every week and must be submitted by 5:00pm next Wednesday.
  • Midterm Exam
  • Final Exam
  • Two programming projects

Contacting the Course Staff (Email and Office Hours) and Class Participation

You are all encouraged to visit us during office hours or email us. Class participation is very welcomed and will be rewarded. Do not hesitate to ask questions in the class, in most, if not all cases, the entire class will benefit from the answers received (what you may think as a silly or naïve question may in fact be a genuine question that also other students in the class may have). When you email us make sure you include [CS118] in your email’s subject line in order for the email to receive the proper attention. Any project-related questions should be forwarded to the course TA. Questions about graded homeworks should be first directed to the class grader. If you are not completely satisfied with the grader’s response then you can contact the TA. If your problem is still not resolved then you can contact the course instructor.

Course Policies (Read This Carefully)

  • Homework assignment must be done by each student individually

  • Programming projects can be done in groups of 1-3 students

  • No late homework or project submission. Homeworks can be handwritten, while projects must be submitted electronically through CCLE.

    • Homeworks can be handwritten or typed. Submit hardcopies in BH 2432 Mailbox A14. No electronic submissions!
    • Projects should be submitted as .tar.gz archive, see project descriptions for more detail.
  • No make-up midterm or final examinations.

  • Adherence to the University’s Code of Ethics will be strictly monitored and enforced. This will be applicable to homeworks, projects and examinations. By registering for this course the student is assumed to automatically abide by the Code of Ethics which applies to any work generated by the student, including homeworks, examinations, project assignments. Academic integrity violations, such as plagiarism, cheating on an exam etc., will result in a series of actions and penalties including the possibility of the student failing the class or being expelled from the university. Note that all parties involved in cases of academic integrity violations are disciplined. Therefore, students should take this matter seriously and are expected to fully cooperate and support the atmosphere of trust and individual achievement. If you need assistance with class-related issues it is better if you contact the course’s staff. Students are encouraged to discuss among themselves issues related to the course material in order to deepen their understanding, or to share information regarding the use of programming tools, development environments, or debugging techniques.