Syllabus


Here are the lecture topics to be covered in class. This is not a strict schedule, however. We may dynamically change our focus depending on the discussion in class.

Introduction (1 week)

  1. Introduction to distributed systems and models
  2. Networking and internetworking essentials
  3. Design goals
  4. Classification of distributed systems
  5. Examples of modern distributed systems
  6. Current and future trends

Architectures and Middlewares (1 week)

  1. Architectural styles
  2. System models and architectures
  3. Middlewares
  4. MiddlewaresLayered-system architectures
  5. Symmetrically distributed system architectures
  6. Hybrid system architectures
  7. Self-management

Distributed Processes (2 weeks)

  1. Processes and Threads (Python threads)
  2. Clients and servers
  3. Operating system support
  4. Code mobility and agents
  5. Virtualization
  6. Microservices

Communication (2 weeks)

  1. Interprocess communication models
  2. Remote invocation (RPC, RMI)
  3. Message-oriented communication
  4. Multicast and group communication

Addressing and Name Services (1 week)

  1. Fundamentals
  2. Flat vs. structured naming
  3. Attribute-based naming
  4. Directory services

Time, Synchronization and Coordination (2 weeks)

  1. Time and clock synchronization
  2. Logical clocks
  3. Global state and snapshot
  4. Mutual exclusion
  5. Location systems
  6. Gossip-based coordination

Distributed Algorithms and Computation (2 weeks)

  1. Election
  2. Consensus
  3. Distributed event processing
  4. Distributed graph algorithms
  5. Map-Reduce
  6. BSP(Bulk Synchronous Parallel)

Distributed Programming (1 week)

  1. Python distributed computing with Ray
  2. Python for Spark programming with PySpark
  3. IoT programming with Python

Distributed Storage and File Systems* (1 week)

  1. Distributed storage
  2. File service architecture
  3. Network File Systems
  4. Mobile File System
  5. Distributed database systems
  6. Cloud storage

Consistency and Replication* (1 week)

  1. Consistency Models
  2. Replica Management
  3. Consistency Protocols

Fault Tolerance* (1 week)

  1. Failure models and process resilience
  2. Reliable communication

Security* (1 week)

  1. Security models
  2. Access control
  3. Security management

Distributed Transactions* (1 week)

  1. Transactions and concurrency control
  2. Distributed commit
  3. Distributed transaction management

Advanced Topics* (1 week)

  1. Web services
  2. Mobile and pervasive computing
  3. Grid, cloud, fog and edge computing
  4. P2P(Peer-to-peer) systems
  5. Wireless sensor networks(WSN)
  6. Internet of Things(IoT)
  7. Crowd computing
  8. Mobile sensing
  9. Social networks and computing

Semester Theme: Artificial Intelligence of Things (1 week)

  1. Combination of AI and IoT
  2. Definitions, challenges and opportunities
  3. Benefits of AI and IoT integration
  4. AIoT for Edge AI or Edge Intelligence
  5. On-device machine learning with AIoT devices
  6. Edge-to-Cloud AI architecture
  7. AIoT platforms and tools
  8. AIoT applications
*: Topics to be covered when time permits.