COMPSCI 455: Distributed Systems 3-credit course with 3 lecture hours per week Course Coordinator: Amit Jain Textbook(s) and Supplemental Material Distributed Systems, Tanenbaum and Van Steen, 2007. Catalog Description Principles and paradigms of distributed systems. Communication, processes, naming, synchronization, consistency and replication, fault tolerance and security. In-depth coverage of Remote Procedure Call (RPC), Remote Method Invocation (RMI) and socket programming. Survey of major distributed systems. Several software projects. PREREQ: COMPSCI 453. Elective Goals for the Course Successful students will be expected to: • explain the structure of distributed systems • program using remote procedure calls and remote methods • design client server systems that incorporate replication, synchronization, fault tolerance and security • explain distributed naming techniques • have an understanding of commonly used distributed object, file, document based system Outcomes Addressed a. an ability to apply knowledge of computing and mathematics appropriate to the discipline b. an ability to analyze a problem, and identify and define the computing requirements appropriate to its solution c. an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs d. an ability to function effectively on teams to accomplish a common goal i. an ability to use current techniques, skills, and tools necessary for computing practice k. an ability to apply design and development principles in the construction of software systems of varying complexity Outcomes Assessed: None Topics Covered Network Programming Architecture Communication Remote Processes Naming Synchronization Consistency and Replication Fault Tolerance Security Distrubuted File, Object and Web servers Cloud Computing Grading Letter grades are assigned to students based on numerical scores for the following activities: Activity Weight Projects 70% Presentation 10% Midterm 10% Final 10% Curriculum Category Content (Credits) Area Core Advanced Algorithms 1 Software Design 1 Computer Architecture Data Structures 1 Programming Languages