CS176B: Winter '13

Network Computing 


  • Discussion sections start on the second week of classes January 14/15.
  • First lecture: Monday January 7th, 11AM, HSSB 1174

General Information

    Lectures: Monday/Wed, 11:00AM-12:15PM, HSSB 1174
    Professor: Ben Zhao, ravenben at cs.ucsb.edu
    TA: Paul Schmidt and Yu Su
    • Mondays 1:00-1:50PM GIRV 1119
    • Tuesdays 5:00-5:50PM GIRV 1119
    Office Hours:
    • Ben: Mondays 2pm-3pm, 936-103
    • Paul: Fridays 9am-11am, CSIL
    • Yu: Tuesdays 3pm-5pm, CSIL

    Piazza Class Page: 
    Prerequisites: CS176A


Network-based applications provide the services that make up our daily interactions with the Internet possible.  Network applications permeate all facets of our lives today, spanning the gamut from online-grading at UCSB, to file-sharing networks, to UPS package tracking and online information repositories like GoogleEarth.  Even though using these network services is becoming easier, the development of network applications is still a complex activity that requires careful design and deep knowledge of the mechanisms underlying remote interaction.

This class presents the fundamental mechanisms and the protocols that are used in network-based applications. The class covers the basics of distributed programming and presents the principal application protocols used in the Internet today.  Our class goal is to provide students with the tools and the knowledge needed to develop scalable, efficient and secure network-based applications.

A special addition to this instance of CS176B is a recent focus on Smartphone-based mobile network applications.  As part of your final "project" this quarter, you will be implementing an interesting smartphone application on the Android platform.  More information will be given on the projects page as it becomes available.

Here is a rough list of some of the topics we'll cover in lecture. As we go along, certain topics will get cut, and others will be added on:
  • UNIX, C, TCP/IP, and the real world
    • autoconf, automake, and libtool
    • tcpdump, libpcap, libnet, netcat
    • Security caveats
  • Client-server programming
    • Socket programming
    • RPC programming
  • Data formats and data translation
    • XDR
    • MIME
    • HTML, CSS, XML, XSL and XSLT
    • SOAP
  • Secure communication
    • SSL, TLS
    • X-Mime, Signed/Encrypted XML
    • OpenPGP
  • Infrastructure services
    • Naming: DNS and extensions
    • Routing protocols: RIP, OSPF, BGP
  • Application protocols
    • HTTP, URI/URLs
    • SMTP
    • SSH
    • FTP
    • SNMP
  • Web-based Applications
    • The Apache web server
    • Server-side scripting (PHP, Perl)
    • Client-side scripting (JavaScript)
    • Web access to databases (MySQL)
  • Advanced topics
    • Peer-to-peer networks
    • Data centers and cloud computing
    • Online social networks
    • Smartphone applications and platforms

Internetworking with TCP/IP, Vol. III: Client-Server Programming and Applications (Linux/Posix Sockets Version), by Douglas E. Comer and David L. Stevens, Prentice Hall, 2001.

Class Quizzes
Class participation is a critical part of your evaluation in the course.  This means coming to class and actively learning the material.  To encourage (on-time) attendance to each class, I will be scheduling a sequence of 5-7 short quizzes throughout the quarter. These quizzes are scheduled more or less randomly, and generally include a single straight-forward question on material from the previous lecture.  Missing a lecture day when a quiz is announced means a zero score on the quiz.  Note that I am more likely to announce a quiz on a day when I see fewer students showing up at lecture. 

Grading Policy

Your quarter grade will be derived from 3 homework assignments, class quizzes, and a midterm exam.