Link Search Menu Expand Document

Welcome to CS 176B!

Table of contents

  1. Course Overview
    1. Objective
    2. Approach
    3. Prerequisite
  2. Course Structure
    1. Lectures
    2. Quizzes
    3. Assignments
    4. Student Evaluation
  3. Communication
    1. Lectures
    2. Slack
    3. Etiquettes
  4. Course Policy
    1. Cheating
    2. Exams
    3. Diversity and Inclusiveness
    4. Disabled Students Program

Course Overview

Objective

In the past decade, the area of computer networking has witnessed a massive transformation. Unlike the brittle and inflexible networks of the past, we now have programmable networks fueling the exponential growth of content and computing services. In this course, we will learn how the network has transformed in recent years and how those transformations are fueling the growth of content and computing service providers. More specifically, we will learn what software-defined networks (SDNs) are, what motivated their development, how researchers and practitioners built up on previous works to enable SDN, how it transformed networking, and what lies ahead. We will also learn how far we are from the communal goal of developing self-driving networks that run by themselves without requiring any human intervention.

Approach

In 176A, we covered a subset of formal principles broadly applicable to different networks (e.g., packet switching). You also read different protocols that enable different hosts to communicate with each other. Most of these principles and protocols have not evolved much in the past few decades. Thus, we used textbooks to cover these topics. However, in this course, we will be covering programmable networks, which are still evolving. Thus, rather than following a conventional textbook, we will be reading an ever-evolving textbook and research papers from the top networking and systems conferences (e.g., USENIX NSDI, ACM SIGCOMM, ACM HotNets, ACM SOSR, etc.) to cover the topics in this course.

Prerequisite

The students are expected to take 176 A and be familiar with the basics of networking and operating systems before taking this course.

Course Structure

We will have two lectures and one discussion section every week. The lectures will expose you to various SDN-related concepts and their applications. The discussion sections will provide a hands-on opportunity to learn more about programmable networks. The course entails regular quizzes and programming assignments. The grading for this course is structured around quizzes, programming assignments, and mid/end-term examinations. Please see more details on grading below.

Lectures

Under normal circumstances, we will have in-person lectures for this course. As of now, the first two weeks will be online. The lectures are divided into three broader categories. First, we will cover the building blocks for software-defined networking. We will then focus on various applications of SDNs. Finally, we will learn about the recent trends in the networking research, and how SDNs enable self-driving networks.

Quizzes

In this course, you will be working on six different quizzes. Each quiz will test your understanding of concepts covered in the lectures and discussion sections.

Assignments

In this course, you will be working on three programming assignments. Through these programming assignments, you will get more hands-on experience on:

  • How to emulate network topologies on your local workstation (or laptops) using MiniNet?
  • How to use network emulation to set up experiments that enable measuring different performance metrics?
  • How to use programmable networks to enable flexible packet forwarding and in-network telemetry? More specifically, you will learn how to extract various stateless and stateful features from the underlying network data.

Student Evaluation

Quizzes (6)30%
Programming Assignments (2)40%
Mid-term15%
End-term15%

Communication

Lectures

Monday and Wednesday, 2:00-3:15 PM, Zoom

Slack

We will use a slack group for class communications. I have already sent an invitation to registered students. If you haven’t received it, please use this link to join the workspace. You can join using any @ucsb.edu email address. You can also create slack channels for your team communications.

Etiquettes

To make sure that this is a helpful resource for everyone, please follow these guidelines when posting on Slack:

  1. Before posting a question check/search through existing Slack questions to see if someone already asked a similar question.
    • Use the filters/folders (e.g., lab3, lab4) to see what questions were asked regarding specific assignments.
    • As much as possible, keep related questions in the follow-up discussions, instead of creating new posts.
    • Conversely, when posting your question/note, use the appropriate folders/labels.
    • Include “Lab/HW## Q##” in the title of your post, e.g., Lab01 Q2.3.
  2. Whenever possible, copy/paste the error as text instead of attaching a picture. Use Slack’s code formatting if you post sample code. Follow the guidelines below to compose the content of your post.

  3. If other students will benefit from the answer to your question (e.g., you are asking about a deadline or a policy), make the question public. We encourage you to make more of your posts public, making private posts only if something that’s too specific to your case or you need to share your code snipped with the instructors.

  4. Do not post answers to homework/lab problems. Do not publicly share your code/solution.

  5. Use Slack instead of emailing the course instructor or mentors. (When composing a post, select “Individual students/instructors” (instead of “Entire Class”) and type “Instructors” to include all instructors). Use the “Instructor” posts instead of the individual messages (but follow #3 above).

  6. Make sure that all your communication is professional, considerate, and productively contribute to the course. We expect you to abide by the University of California, Santa Barbara general code of conduct for all students. The UCSB policy applies to conduct over Zoom, Slack, and any other digital tools being used for this course

  7. Guidelines for creating a well-structured post:
    • You are going to get a faster and more helpful answer if you tell us:
    • this is the specific question/function that I am working on
    • this is the issue that I am running into,
    • this is my code (make sure the message is private if you are directly sharing your code),
    • here’s the input that I used in calling my functions,
    • here’s the output/error I got,
    • here’s what/where/how the output doesn’t match what I would have expected.

Course Policy

Cheating

Cheating is not tolerated. Please read the UCSB Academic Code of Conduct if you are not familiar with the definition of cheating. If you are caught cheating on an assignment, you will get a zero for that assignment. Other repercussions are also possible, such as being reported to the UCSB Office of Judicial Affairs.

Exams

There will be NO make-up exams, so please plan accordingly. If you request a regrade on an exam question, the entire exam will be regraded, and the regraded score will be the final score. All regrade requests must be made within one week of receiving the grade.

Diversity and Inclusiveness

We (the instructor and the mentors) strive to create an environment in which students from diverse backgrounds and perspectives can be well-served in this course, where students’ learning needs can be addressed both in and out of class, and where the diversity that the students bring to this class is viewed as a resource, strength, and benefit. It is our intent to present materials and activities that are respectful of diversity: gender identity, sexuality, disability, age, socioeconomic status, ethnicity, race, nationality, culture, or religion (or lack thereof). Your suggestions are encouraged and appreciated: help us improve the effectiveness of the course for you personally, or for other students or student groups. If at any point you are made to feel uncomfortable, disrespected, or excluded by the course staff or fellow students, please, don’t hesitate to talk to us about it so that we may address the issue and maintain a supportive and inclusive learning environment. If you are uncomfortable bringing up an issue with the course staff directly, submit anonymous feedback or contact the Office of the Ombud. Help us create a welcoming, inclusive atmosphere that supports a diversity of thoughts, perspectives and experiences, and honors your identities.

These notes are inspired by and adopted from Mine Çetinkaya-Rundel, Hacker Hours, and Kevin Lin.

Disabled Students Program

If you are a registered DSP student and you intend to request a specific accommodation, you should inform me within the first two weeks of the quarter or of enrolling in the DSP. You should also submit your request no less than one week before the scheduled exam so that we can plan for any special arrangements.