The course focuses in teaching the distributed systems concepts through projects. The lectures prepare the students to execute the assignments.

- Goal: Students should understand what the course is about and what is expected from them.
- Topics:
- Introduce students to primary science gateways concepts
- Introduce students to Apache Airavata
- Introduce students to the Apache Way, open source
- Introduce students to planned projects

- [Class Overview Slides]
- [Assignment 1 Slides]

- Goal: Preview the semester lectures so students can understand what the course is about and what is expected from them.
- Topics:
- Walk through of all the course theme areas.
- Overview of RPC and Message Serialization using Apache Thrift

- [Apache Thrift Slides]
- [Class Details Slides]

- Goal: students will understand the basics of microservices and messaging
- Topic: Apache Thrift

- Goal: students will understand how to use containers
- Topic: Microservices
- [Class Details Slides]
- [MicroServices Lecture Slides]

- Goal: students will understand the basics of continuous integration and deployment
- Topics: Microservices and Messaging
- [Assignment 2 Overview Slides]
- [MicroServices and Messaging Lecture Slides]

- Goal: Students will understand the basics of continuous integration and deployment
- Topics: Help session, demo of Apache Jenkins

- Goal: Students will understand the basics of continuous integration and deployment
- Topic:
- [Assignment 1 Followup Remarks]
- [Continuous Integration and Deployment Slides]

- Goal: Understand the motivations for Apache Airavata
- Topic: Supercomputing and Airavata Abstractions to build Science Gateways
- [Airavata introduction slides]

- Goal: Understand project themes
- Topics: Introducing Airavata based projects
- [Project themes introduction slides]

- Goal: Further understand Airavata projects
- Topics: Elaborate on Assignment next steps
- [Assignment 3 instruction slides]

- Goal: Students will gain a basic understanding of distributed systems concepts and their relations to microservice architectures
- Topics: Distributed systems intro, part 1

- Goal: Phase 2 Apache Airavata contributions.
- Topics: Assignment 4 ideas
- [Assignment 4 ideas]

- Goal: Understand some basic concepts in distributed systems
- [Introduction to Distributed Systems Slides]

- Goal: Review project Assignment 4

- Mid-Term Presentations

- Mid-Term Presentations

- Goal: Students will gain a better understanding of how scientists use science gateways
- Guest lecturer: Dr. Sudhakar Pamidighantam
- Topic: The Science and Engineering Grid SEAGrid Science Gateway
- [SEAGrid Science Gateway Slides]

- Goal: Students will gain an understanding of distributed messaging system by examining Apache Kafka
- [Distributed Systems Case Study Slides]

- Guest Lecture: Jetstream and OpenStack
- [IU’s Jetstream Cluster and OpenStack]

- Topic: Airavata installation hackathon, course help session

- Goal: students will understand the use of REST in science gateways and distributed systems.
- [REST and Science Gateways Slides ]

- Goal: students will understand log-centric systems and consensus
- [Log Centric Systems and Science Gateways]

- Goal: students will learn how log systems can be used for continuous deployment, and how Byzantine faults can be handled

- Guest Lecture: Gourav Shenoy

- Goal: students will preview advanced topics that will be covered in the Spring 2018 course

- Student final presentations, Part 1

- Student final presentations, Part 2