Rice University - Distributed Programming in Java
- Offered byCoursera
Distributed Programming in Java at Coursera Overview
Duration | 18 hours |
Start from | Start Now |
Total fee | Free |
Mode of learning | Online |
Difficulty level | Intermediate |
Official Website | Explore Free Course |
Credential | Certificate |
Distributed Programming in Java at Coursera Highlights
- Shareable Certificate Earn a Certificate upon completion
- 100% online Start instantly and learn at your own schedule.
- Course 3 of 3 in the Parallel, Concurrent, and Distributed Programming in Java Specialization
- Flexible deadlines Reset deadlines in accordance to your schedule.
- Intermediate Level
- Approx. 18 hours to complete
- English Subtitles: Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, English, Spanish
Distributed Programming in Java at Coursera Course details
- 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++).
Distributed Programming in Java at Coursera Curriculum
Welcome to the Course!
Course Welcome
General Course Info
Course Icon Legend
Discussion Forum Guidelines
Pre-Course Survey
Mini Project 0: Setup
1.1 Introduction to Map-Reduce
1.2 Hadoop Framework
1.3 Spark Framework
1.4 TF-IDF Example
1.5 Page Rank Example
Demonstration: Page Rank Algorithm in Spark
1.1 Lecture Summary
1.2 Lecture Summary
1.3 Lecture Summary
1.4 Lecture Summary
1.5 Lecture Summary
Mini Project 1: Page Rank with Spark
Module 1 Quiz
CLIENT-SERVER PROGRAMMING
2.1 Introduction to Sockets
2.2 Serialization/Deserialization
2.3 Remote Method Invocation
2.4 Multicast Sockets
2.5 Publish-Subscribe Model
Demonstration: File Server using Sockets
2.1 Lecture Summary
2.2 Lecture Summary
2.3 Lecture Summary
2.4 Lecture Summary
2.5 Lecture Summary
Mini Project 2: File Server
Module 2 Quiz
Industry Professional on Parallel, Concurrent, and Distributed Programming in Java - Jim Ward, Managing Director
Industry Professional on Distribution - Dr. Eric Allen, Senior Vice President
About these Talks
MESSAGE PASSING
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
Demonstration: Distributed Matrix Multiply using Message Passing
3.1 Lecture Summary
3.2 Lecture Summary
3.3 Lecture Summary
3.4 Lecture Summary
3.5 Lecture Summary
Mini Project 3: Matrix Multiply in MPI
Module 3 Quiz
COMBINING DISTRIBUTION AND MULTITHREADING
4.1 Processes and Threads
4.2 Multithreaded Servers
4.3 MPI and Threading
4.4 Distributed Actors
4.5 Distributed Reactive Programming
Demonstration: Parallel File Server using Multithreading and Sockets
4.1 Lecture Summary
4.2 Lecture Summary
4.3 Lecture Summary
4.4 Lecture Summary
4.5 Lecture Summary
Mini Project 4: Multi-Threaded File Server
Exit Survey
Module 4 Quiz
Industry Professionals on Parallelism - Jake Kornblau and Margaret Kelley, Software Engineers, Two Sigma
Industry Professional on Concurrency - Dr. Shams Imam, Software Engineer, Two Sigma
Our Other Course Offerings