Coursera
Coursera Logo

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 External Link Icon

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
Read more
Details Icon

Distributed Programming in Java
 at 
Coursera 
Course details

Skills you will learn
More about this course
  • 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++).
Read more

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

Distributed Programming in Java
 at 
Coursera 
Admission Process

    Important Dates

    May 25, 2024
    Course Commencement Date

    Other courses offered by Coursera

    – / –
    3 months
    Beginner
    – / –
    20 hours
    Beginner
    – / –
    2 months
    Beginner
    – / –
    3 months
    Beginner
    View Other 6715 CoursesRight Arrow Icon
    qna

    Distributed Programming in Java
     at 
    Coursera 

    Student Forum

    chatAnything you would want to ask experts?
    Write here...