News
  - Googlegroup
now open for new members 
- Discussion sections start on the second week of classes January
12. 
- First lecture: Monday January 3rd, 3:30PM, GIRV 2108
 
General Information
  Lectures: Monday/Wed, 3:30-4:45PM, GIRV 2108
  Professor: Ben
Zhao,
ravenben at cs.ucsb.edu 
  TA: Gang Wang
  Sections: Wednesday 12-12:50PM at 932-101 
  Office Hours:
  
    - Ben: Mondays 2:30PM-3:30PM, 1123 HFH
- Gang: Fridays 1PM-3PM, CSIL 
  Class Email List: cs176b-w11
Google Group 
  Prerequisites: CS176A
Introduction
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 network applications.  This quarter, in
partnership with Microsoft Research, we will be implementing as part of
you final "project" an interesting smartphone application on either
the Android platform, or the new Windows Phone 7 platform.  Some
student groups will work on Windows7 Samsung Focus Phones (Thanks to
Microsoft Research and the Hawaii Project), while others will work on
Motorola Androids (thanks to Google/Verizon).  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  Anonymous communication  Online social networksSmartphone applications and platforms
 | 
  
Textbooks
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.