Class Information
Time: TuTh 1:00PM - 2:15PM
Place: Psychology building room 111 (PY111)
Bloomington, IN 47408

Office Hours
Instructor: Prof. Judy Qiu
AIs: IIa Jogaikar , Stephen Wu
Thursday 2:30pm to 3:30pm
Lindley Hall Room 201D

AI Office Hours
IIa Jogaikar
TuTh 3:00pm ~ 4:30pm
Lindley Hall Room 201H

CSCI-P 436 or P536 (or permission from the instructor) is required. General programming experience with Windows or Linux using Java, C#, or C++, scripts is preferred. Parallel and cluster computing background is a plus although not required.

The Internet has greatly expanded the scope and importance of distributed systems to include Web 2.0 sites, Information retrieval (search), Utility (cloud) computing, P2P systems and the Internet of things. Further science is facing an unprecedented data deluge and the emergence of data oriented analysis as a fourth paradigm of scientific methodology after theory, experiment and simulation. This class will use these modern systems to introduce core technologies including communication, concurrency/parallelism, security, fault tolerance and programming models. In particular the course will cover systems and tools to support data intensive science applications. Students will get to know the latest research topics through paper readings and have the opportunity to understand some commercial cloud systems through projects using FutureGrid resources. 

Scope and topics
The content of B534 will cover the design principles, systems architecture, and innovative applications of parallel, distributed, and cloud computing systems. These include massively parallel processors (MPP), supercomputing clusters, service-orient architecture (SOA), computational grids, P2P (peer-to-peer) networks, virtualized datacenters, cloud platforms, Internet of Things (IOT), and Cyber-Physical Systems (CPS). We will cover MapReduce (originated from functional languages) and associated languages but it will focus more on the principles and practice of building distributed systems than on languages.

The programming project for B534 class is a "platform" builds on a cluster from bottom giving a stack with virtualization and dynamic provisioning capabilities to support various OS and library/runtime for science applications. This is a prototype of distributed systems like those built by Microsoft and Amazon but with proprietary implementations. There're other features we could include in the future to form a complete "OS of OSs at Internet scale".
- Authentication and Authorization
- Workflow
- Data Transport
- Image Library
- Blob: Basic storage concept similar to Azure Blob or Amazon S3
- DPFS Data Parallel File System
- Queues: Publish Subscribe based queuing system

Participation and quizzes (30%), including attendance, in-class discussions and quizzes
Homework assignments (20%), including questions from the book and survey of papers
Projects (50%), including programming, surveys, proposals, presentations, reports, and websites
Extra bonus (5%) for an exceptional work with research poster or paper submissions to conferences
Quizzes, homework assignments and warm up programming projects are to be completed alone. The final project may be performed a group of three. B490 students are not required to write a survey paper.

Academic Misconduct
Plagiarism and cheating undermine the academic environment. Students who cheat undermine their own education, the self-esteem that comes with true mastery, and the academic mission of the University. The regulations governing student academic conduct and the procedures that must be used in handling violations of those regulations are covered in the Code of Student Rights, Responsibilities, and Conduct. (Part II.A. defines academic misconduct, and Part IV.B. explains the procedures for handling cases of academic misconduct; these two sections are reprinted each semester in the Registrar publication Enrollment and Student Academic Information, under the heading "Academic Misconduct Policy."
IU Academic Misconduct Policies

Policy for Late Assignments or Projects
Assignments and projects are due at the beginning of class unless otherwise noted. You have one free late submission for up to 24 hours. For other late submissions, the grade will be reduced by 20% for each 24 hours late. No submissions will be accepted after 48 hours of due time.