Syllabus

Lectures Mondays/Wednesdays, 8am-9:50am ROLFE 1200
Discussion Sections DIS 1: Fridays / 10:00am-11:50am, BH 5264
  • (Seungbae Kim, sbkim at cs.ucla.edu)
DIS 2: Fridays / 12:00pm-1:50pm, BH 5264
  • (Haitao Zhang, haitao at cs.ucla.edu)
DIS 3: Fridays / 2:00pm-3:50pm, BH 5249
  • (Zengwen Yuan, zyuan at cs.ucla.edu)
DIS 4: Fridays / 8:00am-9:50am, GEOLOGY 4660
  • (Pranav Sodhani, sodhanipranav at cs.ucla.edu)
Instructor Alex Afanasyev (aa at cs.ucla.edu)
Office hours Wednesdays, 5:30pm-6:30pm (BH 4809), other times by appointment
TA Office Hours DIS 1 (Seungbae Kim): Wednesdays / 3:30pm-5:30pm (BH 2432)
DIS 2 (Haitao Zhang): Tuesdays / 2:00pm-4:00pm (BH 2432)
DIS 3 (Zengwen Yuan): Wednesdays / 10:00am-12:00pm (BH 2432)
DIS 4 (Pranav Sodhani): Mondays / 10:00am-12:00pm (BH 2432)
Midterm Wednesday, May 3, 2017, 8am-9:50am
Monday, May 1, 2017, 8am-9:50am, ROLFE 1200
Final Monday, June 12, 2017, 6:30pm-9:30pm, ROLFE 1200
Homeworks due Wednesday of the week following the assignment, 11pm
Project 1 due Sunday, April 23, 2017, 11pm PDT Tuesday, April 25, 2017, 11pm PDT
Project 2 due Sunday, May 21, 2017, 11pm PDT
Project 3 due Sunday, June 11, 2017, 11pm PDT

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 (5/6/7th Edition)” by James F. Kurose and Keith W. Ross.

In addition to the textbook, students expected to do their own research online, using Wikipedia, RFCs, and other technical documentation. This especially applies to some of the homework problems.

Prerequisites

  • 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% (8%/16%/16%)
Midterm exam 22%
Final exam 22%
  • Weekly homeworks
  • Midterm Exam
  • Final Exam
  • Three 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

First programming project is individual.

Two other programming projects should be done in groups of 2-3 students.

No late homework or project submission.

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.