Course: Fall 2014 P434 Distributed Systems Undergraduate Course

Project Details

Project Lead
Judy Qiu 
Project Manager
Project Members
Supun Kamburugamuve, Maulik Kothari, Eric Schmidt, Rafael Paiva, Dan Eakle, Keith Milhoan, Daniel Hill, Sara Zhang, Erin Leonhard, Kristyn Bitner, Xinyu Ni, Michael Hyde, Earl Dean, Travis Pressler, Ryan Chibana, Yu Liu, Sebastian Kagemann, Brian Jett, Bradley Schuch, Geanderson Esteves dos Santos, Darlan Santana Farias, xin yao, Mrinmoy Maity, Chao Duan, Zhexu Fan, Michael Ledesma, Denton Greenfield, Kai Xu, Kim Walker, Wenjie Chen, Zachary King, zhen hou, Robert Wagner De Lima Souza, Andrew Sarkisian, Russell Wang, Daniel Koester, Derek Brown, jimmy yu, QIUWEI SHOU, Paulo Chagas, Jinbao Xiao, Ramiro Zahlouth  
Indiana University, School of Informatics and Computing  
Computer Science (401) 


  Fall 2014 CSCI-P434 is a course for young computer scientists working in the field of software and systems. It is offered to a class of 34 undergraduate 31 students and two AIs covering core Computer Science distributed systems curricula ( Distributed systems form a rapidly changing field of computer science. We study
the evolutional changes in computing landscape characterized by parallel, distributed, and cloud computing systems. We use FutureGrid testbed to build our prototype systems and have an in-depth study the essential issues in practice such as scalability, performance, availability, security, energy-efficiency, and workload balancing.

Intellectual Merit

Objectives 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 P434 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.

Broader Impacts

This class looks to enable the next generation of computer scientists with the broad skills needed to understand distributed systems. Specifically, students will learn how to create client/server, MPI, and Mapreduce applications using the latest cloud infrastructure and platform services currently found throughout industry and academia today. The curricula and tutorials can be re-used in other cloud computing/distributed system educational activities

Scale of Use

There will be approximately 40 students which will need to create a few small VMs, totalling no more than 8 vCPUs per student.