Course Outline: Foundations - Characterization of DS, System Models, Networking and Internetworking, Interprocess Communication, Remote Invocation, Indirect Communication and Operating System Support Middleware - Dist. Objects and Components, Web Services and Peer- to-Peer Systems System services – Security, Distributed File Systems and Name Services Distributed algorithms - Time and Global States, Coordination and Agreement Shared data, Transactions and Concurrency Control, Distributed Transactions, and Replication, New challenges - Mobile and Ubiquitous Computing Lab: Introduction to Message passing technology and its applications, Sockets Programming, Remote Procedure Calls code implementation, Synchronization assignments, Group Communication code implementation, Distributed mutual exclusion assignment, Implementation of Election Algorithms, Implementation of Distributed File system: MapReduce, Spanner, Distributed Systems Design assignments: Cloud Services and Content Delivery Networks configuration.