NC. Net-Centric Computing (15 core hours)

NC1. Introduction to net-centric computing (core -- 9 hours)

  Background and history of the Internet
  The architecture of the Internet
  The five-layer reference model (physical, data link, network, transport, application)
  Host name resolution and the Domain Name Service
  Public-key cryptography and digital certificates
  Distributed computing
  Networked multimedia systems

NC2. The web as an example of client-server computing (core -- 6 hours)

  Introduction to client-server programming
  Designing clients and servers
  Introduction to the technologies of the web (URLs, HTML, HTTP, applets, etc.)

NC3. Building web applications

  JavaScript and other client-side programming within a web browser
  CGI and other server-side programming with web-based application servers

NC4. Communication and networking

  Protocol suites
  Streams and datagrams
  Client-server communication and group communication
  Remote procedure calls
  Internetworking and routing

NC5. Distributed object systems

  Serializing objects
  Persistent objects
  Remote procedure calls
  Distributed object frameworks
  Java's distributed object framework (JavaBeans, Java RMI, and JINI)
  COM and DCOM as distributed object framework
  CORBA and IDL
  Lightweight distributed objects with XML
  Security issues in distributed object systems

NC6. Collaboration technology and groupware

  Audio/video interpersonal applications
  Shared workspace for computer-supported collaborative work
  Audio/video distribution
  Audio/videoconferencing
  Multimedia document transfer
  Multimedia server-based applications
  Virtual reality
  Emerging topics in CSCW

NC7. Distributed operating systems

  Distributed processes and threads
  Distributed file systems
  Name services
  Time, synchronization and coordination
  Replication
  Concurrency control
  Shared and distributed transactions
  Distributed shared memory

NC8. Distributed systems

  Characterization of distributed systems
  Partition and allocation of distributed tasks
  Load balancing of distributed systems
  Modeling and analysis of distributed systems
  Distributed languages
  Fault tolerance and recovery
  Security issues of distributed systems