Syllabus
Lectures | Mondays/Wednesdays, 8am-9:50am ROLFE 1200 |
Discussion Sections |
DIS 1: Fridays / 10:00am-11:50am, BH 5264
|
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 | 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 | |
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.