Software Defined Networking for Computing

Harvard CS 144r/244r

Fall 2015

Mondays and Wednesdays 2:30-4:00pm, Room MD 119
Instructor: H.T. Kung

Click Here for Course Schedule

Click Here for Lecture 1 Slides

Networking has evolved to a new era of supporting large-scale distributed computing for big data. These new networks are software defined in the sense that they can be dynamically programmed to meet various communications needs in computing.

In CS 144r/244r, students will obtain the knowledge and experience necessary not only to understand this momentous technological shift in networking, but also to be able to play a part themselves. To this end, the course will not only teach the fundamental concepts necessary to understand this emerging field of software-defined networking, but also real-world applications of the technologies such as next-generation ultra-dense 5G cellular networks, as well as their connection with complementary topics such as machine learning.

The class will be organized into the following eight modules:

  1. A View of the Future: The Promise of Next Generation Networking
  2. Basic Network Design and Protocols
  3. Datacenter Design and Networking
  4. Software Defined Networking
  5. Cross-Disciplinary Applications of Next Generation Networking: Machine Learning, Distributed Computing, and Consumer Applications
  6. Wireless Networking: 5G Networks and Millimeter Wave Communication
  7. Connecting the Internet of Things
  8. Next Generation Networking Enabled Infrastructure: Network Function Virtualization
Students will gain mastery of the subject through lectures, programming assignments, discussion of the latest networking literature, and a final project. Students will have wide latitude in designing and implementing a final project they are passionate about. Industry partners will support the course and provide resources for the final projects.

Prerequisites: Programming experience (CS 50 should be fine) and interest in the subject matter. Importantly, CS 143 is NOT a prerequisite. Labs and extra support will provide intensive preparation in the first weeks of the semester to help students quickly obtain the networking background necessary to excel in the course.

Past Courses

Computing Foundations for Computational Science

Harvard CS 205

Spring 2015

Mondays and Wednesdays 2:30-4:00pm, Pierce Hall 209
Instructor: Professor H.T. Kung

Click Here for Course Abstract

Computational science grows in popularity each day. Via parallel and distributed computing, advances in the area have enabled practitioners in diverse fields, including physical sciences, biotechnology, medicine, finance, and engineering, to discover and recognize principles and patterns in data. To understand, harness, and further these powerful capabilities, students must grasp both relevant computer science foundations and programming skills. To this end, this course consists of foundational modules and programming tasks essential to the theory and practice of data science:

Foundational Modules

  1. Data-driven model learning
  2. Parallel computing, GPU
  3. Distributed computing, MapReduce
  4. Graphlab
  5. Neuromorphic computing for asynchronous data flows
  6. IO complexity and management
  7. Compressive sensing and dimension reduction
  8. Optimistic concurrency control
  9. Consensus protocols
  10. Distributed machine learning

Programming Tasks

  1. MapReduce
  2. OpenCL
  3. MPI
  4. Graphlab
  5. Distributed learning
The course instruction has two components: lectures and labs. Lectures will focus on teaching the foundational modules based on research literature. The labs will provide assistance on the programming tasks, and will use server clusters at Harvard as well as remote resources in the cloud. In addition, labs will have access to state-of-the-art 3D cameras for data acquisition. Students will learn to use open source tools and libraries and apply them to data analysis, modeling, and the visualization of machine learning and scientific computing problems.

Students will complete weekly quizzes on assigned reading materials, practice skills through programming tasks, and implement a final project (in 3- or 4-person teams) using concepts and skills learned in the course.

Prerequisites: 1) programming experience (Python and CS50 should be fine); (2) basic knowledge in systems programming and machine organization (e.g., CS61); (3) familiarity in algorithms (e.g., CS124); and (4) maturity in mathematics (e.g., undergraduate linear algebra and statistics). For students with strong interest in the subject matter, one or two of these four requirements may be waived.

Harvard CS 143: Computer Networks

Fall 2014

Mondays and Wednesdays 1:00-2:30pm, Room Maxwell Dworkin 119
Instructor: Professor H.T. Kung

Click Here for Course Abstract

Click Here for Course Schedule

Networking has enabled the emergence of mobile and cloud computing, creating the most important technological paradigm shift in computing of the past decade. Further advancements in networking are expected to similarly transform the technological landscape over the next decade through the emergence of the Internet of Things and gigabit wireless networks.

In order to play a role in this era of new network-powered advancements, students must have a thorough understanding of emerging networking topics. Rather than teaching the basic networking protocols, which have become very mature and can be treated as a black box, in CS 143, we will teach the new issues and topics of interest which will power important emerging applications. This focus on upcoming applications is the motivation for CS 143 this semester.

The class will be organized into the following nine modules:

  1. Basic Networking Concepts: Protocol Layering
  2. Internet of Things: All-service Bluetooth Low Energy (BLE)
  3. Data Center Networking: Software Defined Networking
  4. Web-scale Networking: Distributed Cloud Computing and Virtual Machine Migration
  5. Content Networks: Video Streaming
  6. Network Security: Defense Against Protocol Exploitation
  7. Wireless Networking: Wireless Mesh, Geographic Routing
  8. Machine Learning Assisted Networking: End-to-end Application Adaptive Protocols
  9. Cyber-physical Networks: Vehicular Networking
Students will have the opportunity to implement the concepts learned in the course through programming assignments, read and discuss the latest networking literature, and design and implement a final project.

Prerequisites: Strong interest in the subject matter and programming experience (CS50 should be fine). Lab sessions will be provided to give extra support.

Secure and Intelligent Internet of Things

Harvard CS 144r/244r: Network Design Projects

Spring 2014

Mondays and Wednesdays 2:30-4:00pm, Room Maxwell Dworkin 119
Instructor: H.T. Kung

Click Here for Course Schedule

In recent years we have witnessed a wave of new Internet of Things (IoT) devices in consumer markets. These include wearables such as wrist watch computers and ear phones for personal entertainment, work assistance and bio-metric monitoring. Enabled with energy-efficient computing cores and sensors, these devices can be programmed to perform a variety of personalized or context-specific tasks at extremely low power consumption. Many believe that IoT will play a key role in the next frontier of computing.

In this course we will study IoT and related devices and services. We will focus on new opportunities and challenges, including security on tiny devices and use of machine learning technology to enhance their usage.

The course will consist of these five components:

  1. Overview of IoT technology and services
  2. Networking for IoT
  3. Security and Privacy for IoT
  4. Machine Learning in Small-Data for the local context and for Wearables in IoT
  5. Course projects formulation and execution
Industrial partners will help facilitate course projects.

Project devices could include:

  • Depth sensing (Kinect and depth cameras)
  • Samsung Galaxy and watch
  • Raspberry Pi
  • Pebble watches
  • Google glass
  • Biometric sensors (Fitbits, Nike Fuel)
  • Intel Galileo board
  • Open source smart thermostats