University of California, Los Angeles
Department of Computer Science
CS 118: Computer Network Fundamentals
Winter 2025
#Meeting Times
#Lecture
Rolfe Hall 1200
Monday, Wednesday at 8:00-9:50 am
#Discussion
1A: Dodd Hall 121
1B: Perloff Hall 1102
1C: Kaplan Hall 169
Friday at 2:00-3:50 pm
Zoom links are available on Bruin Learn.
#Instructors
Office Hours | ||
---|---|---|
Tianyuan Yu | tianyuan at cs.ucla.edu | Boelter Hall 3286 Monday at 10:00-11:50 am |
Yifei Xu (Disc. 1A) | yxu at cs.ucla.edu | Eng VI 392 Tuesday at 10:00-11:50 am |
Omar Elamri (Disc. 1B) | omar at cs.ucla.edu | Boelter Hall 3286 Wednesday at 10:00-11:50 am |
Yangchao Wu (Disc. 1C) | wuyangchao1997 at g.ucla.edu | Eng VI 386 Thursday at 10:00-11:50 am |
#Learning Assistants
- Sean Tang (Disc. 1A; seantang001 at g.ucla.edu)
- Alec Machlis (Disc. 1B; alecmachlis at g.ucla.edu)
- Pranav Puranam (Disc. 1C; pranavp21 at g.ucla.edu)
#Course Overview
Using the Internet as a motivating example, in this class, we’ll learn about many networking technologies. These technologies work together to facilitate communication between computers far and wide.
A main focus of this class is the concept of layering, which is similar to encapsulation-each layer provides an interface in which the others don’t concern themselves with exact implementation details.
In this class, we’ll go over a 5 layer model:
- Application
- Transport
- Network
- Link
- Physical
Through this model, we hope you’ll gain an understanding and appreciation of protocol design and what considerations we take when deploying these protocols on a global scale.
#How to succeed in this course
The internet is a huge, complex collection of networks. As such, it’s beneficial to divide-and-conquer it when studying. Figure out how many major parts there are and learn it one piece at a time.
Read the textbook and review the lecture slides. Slides will be posted one day before each class. Come up with questions and ask them in class/office hours/Piazza. You’ll have the chance to apply your knowledge in the homeworks and projects.
#Work Involved
#Projects
There will be three projects.
- The “zeroth” will help you set up your environment and introduce you to socket programming,
- the first will be a socket programming assignment that implements a reliable transport, and
- the second will be a moderately difficult assignment that does a makeshift version of Transport Layer Security (TLS).
You will do all programs in C or C++17. Students are assumed to be competent in C or C++. Students not familiar will have to learn those outside the classroom.
Project 0 will be done individually. Projects 1 and 2 may be done in groups of up to 3. Groups are allowed to have members across discusssions.
#Exams
There will be one midterm and one final. All exams are closed book, closed notes. You’re allowed to bring cheatsheets: one page (both sides; sized 8.5x11 letter maximum) for the midterm, and two for the final. This class is not about memorizing networking acronyms, but about understanding networking ideas.
#Homeworks
There will be 4 homeworks of about 5 questions each. Homeworks will be released on Thursday of weeks 1, 3, 5, and 7. They’ll be due on Tuesday of weeks 3, 5, 7, and 9. This allows for about ~1.5 weeks to complete each homework. Homeworks must be completed individually.
#Grading
In this class, we’ll be following a strict grading policy. These rules apply with absolutely no exceptions unless we have arranged otherwise (e.g. CAE).
- No late homework submissions will be accepted.
- There will be no makeup exams. Exams must be taken on the date that they’re set.
- Project submissions will incur a 20% penalty each day they’re late. This does not scale continuously; if a project is due at 11:59 pm, submissions at 12:00 am the next day will receive a 20% penalty. As such, submissions that are 5 days late receive no credit.
#Boundaries
B+ | [87, 90) | C+ | [77, 80) | D+ | [67, 70) | ||||
A | [93, 100] | B | [83, 87) | C | [73, 77) | D | [63, 67) | F | [0, 60) |
A- | [90, 93) | B- | [80, 83) | C- | [70, 73) | D- | [60, 63) |
Grade boundaries may (most likely) be relaxed, but will never be made stricter. A+ is reserved for top students.
#Breakdown
4 Homeworks | 20% (total; 5% each) |
Project 0 | 5% |
Project 1 | 10% |
Project 2 | 10% |
Midterm | 25% |
Final | 30% |
Extra Credit | 3% |
#Miscellaneous
#Bruin Learn
All class material (worksheets, homeworks, slides, notes, etc.) will also be posted on Bruin Learn—separated by week in the Modules tab. You may also see your current class grade. Make sure to turn on announcements (whether via email or mobile push notification) to make sure you’re aware of any urgent class messages.
#Gradescope
Gradescope will be used to score all project, homework, and exam submissions. Projects will be graded with an autograder but also manually reviewed for sanity. You may access Gradescope by visiting our Bruin Learn page and clicking Gradescope in the left-hand bar.
Regrades are allowed, but you may only request one regrade per question part. If you’d like to contest any regrades, you must come to one of the instructors’ office hours. For exams and homeworks, there will be an announcement sharing the instructor that graded each question. Please visit that instructor’s office hours (you may visit any instructor for project regrades). If you cannot make their office hours, feel free to email them to schedule an alternate time. Regrades are due exactly one week after grades are released.
#Piazza
For any quick clarifications that may benefit the entire class, our class is using Piazza to facilitate these discussions. Please email all instructors if you have more urgent questions. You may access Piazza by visiting our Bruin Learn page and clicking Piazza in the left-hand bar. Note that you’re able to make posts anonymously, but instructors will be able to see your identity.
We’re offering extra credit for Piazza participation. Up to 2%, each instructor-endorsed answer will provide 0.1% extra credit towards your total grade.
#Evaluations
We’re also offering extra credit for course evaluations. You’ll receive 0.75% extra credit for filling out both the instructor and TA evaluations in MyUCLA, and another 0.25% for filling out both the mid-quarter and end-of-quarter LA feedback forms.
#Recordings
Lectures and discussions will not be recorded. (Unless we must go online by university mandate.)
#PTEs
Due to operational reasons, we are unable to issue PTEs. Only the CS department has the ability to issue them. If you have a pressing need to enroll in this course this quarter, please visit this website.
#Academic Conduct
-
Usage of AI assisted tools
You may not use AI assisted tools to complete any assignment. While it’s certainly infeasible to prove the usage of AI assisted tools, for projects, students may be asked about their design choices to probe for understanding. Project related questions may also appear on exams. Ultimately, the projects are designed to help you learn and apply principles you learn in class. -
Sharing Materials
Do not post/share/sell class material, with or without answers, to anyone outside this class, during or after this quarter. For projects, make sure that your repositories (on a service such as GitHub/GitLab) are set to private. Keep them private during and after this quarter.As such, the use of old material to complete projects/homeworks/exams is strictly prohibited.
As stated above, Project 0 is an individual project, and Projects 1 and 2 may be completed in groups of up to 3. Collaboration beyond the sharing of general concepts (e.g. we used a linked list to store the receiving buffer) is also strictly prohibited. Note: Gradescope has a similarity checker that works just like Turnitin.
#Textbook
Computer Networking: A Top Down Approach Featuring the Internet,
Jim Kurose and Keith Ross.
This book serves as the basis for class content. It’s highly recommended.
Thanks for reading through the entire syllabus! Here’s to a great quarter!