- Level Professional
- المدة 18 ساعات hours
- الطبع بواسطة Rice University
-
Offered by
عن
This course teaches learners (industry professionals and students) the fundamental concepts of Distributed Programming in the context of Java 8. Distributed programming enables developers to use multiple nodes in a data center to increase throughput and/or reduce latency of selected applications. By the end of this course, you will learn how to use popular distributed programming frameworks for Java programs, including Hadoop, Spark, Sockets, Remote Method Invocation (RMI), Multicast Sockets, Kafka, Message Passing Interface (MPI), as well as different approaches to combine distribution with multithreading. Why take this course? • All data center servers are organized as collections of distributed servers, and it is important for you to also learn how to use multiple servers for increased bandwidth and reduced latency. • In addition to learning specific frameworks for distributed programming, this course will teach you how to integrate multicore and distributed parallelism in a unified approach. • Each of the four modules in the course includes an assigned mini-project that will provide you with the necessary hands-on experience to use the concepts learned in the course on your own, after the course ends. • During the course, you will have online access to the instructor and the mentors to get individualized answers to your questions posted on forums. The desired learning outcomes of this course are as follows: • Distributed map-reduce programming in Java using the Hadoop and Spark frameworks • Client-server programming using Java's Socket and Remote Method Invocation (RMI) interfaces • Message-passing programming in Java using the Message Passing Interface (MPI) • Approaches to combine distribution with multithreading, including processes and threads, distributed actors, and reactive programming Mastery of these concepts will enable you to immediately apply them in the context of distributed Java programs, and will also provide the foundation for mastering other distributed programming frameworks that you may encounter in the future (e.g., in Scala or C++).الوحدات
About the Course
1
Discussions
- Get to Know Your Classmates!
1
Videos
- Course Welcome
4
Readings
- General Course Info
- Course Icon Legend
- Discussion Forum Guidelines
- Pre-Course Survey
Optional: Mini Project
- Mini Project 0 Submission
1
Readings
- Mini Project 0: Setup
Course Content
5
Videos
- 1.1 Introduction to Map-Reduce
- 1.2 Hadoop Framework
- 1.3 Spark Framework
- 1.4 TF-IDF Example
- 1.5 Page Rank Example
5
Readings
- 1.1 Lecture Summary
- 1.2 Lecture Summary
- 1.3 Lecture Summary
- 1.4 Lecture Summary
- 1.5 Lecture Summary
Mini Project
- Mini Project 1 Submission
1
Videos
- Demonstration: Page Rank Algorithm in Spark
1
Readings
- Mini Project 1: Page Rank with Spark
Quiz
1
Assignment
- Module 1 Quiz
Course Content
5
Videos
- 2.1 Introduction to Sockets
- 2.2 Serialization/Deserialization
- 2.3 Remote Method Invocation
- 2.4 Multicast Sockets
- 2.5 Publish-Subscribe Model
5
Readings
- 2.1 Lecture Summary
- 2.2 Lecture Summary
- 2.3 Lecture Summary
- 2.4 Lecture Summary
- 2.5 Lecture Summary
Mini Project
- Mini Project 2 Submission
1
Videos
- Demonstration: File Server using Sockets
1
Readings
- Mini Project 2: File Server
Quiz
1
Assignment
- Module 2 Quiz
Talking to Two Sigma: Using it in the Field
2
Videos
- Industry Professional on Parallel, Concurrent, and Distributed Programming in Java - Jim Ward, Managing Director
- Industry Professional on Distribution - Dr. Eric Allen, Senior Vice President
1
Readings
- About these Talks
Course Content
5
Videos
- 3.1 Single Program Multiple Data (SPMD) model
- 3.2 Point-to-Point Communication
- 3.3 Message Ordering and Deadlock
- 3.4 Non-Blocking Communications
- 3.5 Collective Communication
5
Readings
- 3.1 Lecture Summary
- 3.2 Lecture Summary
- 3.3 Lecture Summary
- 3.4 Lecture Summary
- 3.5 Lecture Summary
Mini Project
- Mini Project 3 Submission
1
Videos
- Demonstration: Distributed Matrix Multiply using Message Passing
1
Readings
- Mini Project 3: Matrix Multiply in MPI
Quiz
1
Assignment
- Module 3 Quiz
Course Content
5
Videos
- 4.1 Processes and Threads
- 4.2 Multithreaded Servers
- 4.3 MPI and Threading
- 4.4 Distributed Actors
- 4.5 Distributed Reactive Programming
5
Readings
- 4.1 Lecture Summary
- 4.2 Lecture Summary
- 4.3 Lecture Summary
- 4.4 Lecture Summary
- 4.5 Lecture Summary
Mini Project
- Mini Project 4 Submission
1
Videos
- Demonstration: Parallel File Server using Multithreading and Sockets
1
Readings
- Mini Project 4: Multi-Threaded File Server
Quiz
1
Assignment
- Module 4 Quiz
1
Readings
- Exit Survey
Industry Professionals on Parallel and Concurrent Programming
2
Videos
- Industry Professionals on Parallelism - Jake Kornblau and Margaret Kelley, Software Engineers, Two Sigma
- Industry Professional on Concurrency - Dr. Shams Imam, Software Engineer, Two Sigma
1
Readings
- Our Other Course Offerings
Auto Summary
Unlock the power of Distributed Programming in Java with this comprehensive course designed for IT professionals and students. Gain hands-on experience with frameworks like Hadoop, Spark, and Kafka, while mastering client-server and message-passing programming. Learn to integrate multicore and distributed parallelism for enhanced application performance. This 18-hour Coursera course, led by expert instructors, includes mini-projects and personalized support, making it perfect for professionals looking to advance their skills in distributed Java programming. Enroll now with a Starter subscription!

Vivek Sarkar