Distributed Programming in Java

  • 4.6
Approx. 18 hours to complete

Course Summary

Learn how to develop distributed applications in Java using various technologies and frameworks such as Java RMI, Apache Kafka, and Akka.

Key Learning Points

  • Understand the fundamentals of distributed programming in Java
  • Implement distributed applications using Java RMI, Apache Kafka, and Akka
  • Explore different strategies for fault tolerance and scalability in distributed systems

Job Positions & Salaries of people who have taken this course might have

    • USA: $84,000 - $145,000
    • India: ₹6,00,000 - ₹16,00,000
    • Spain: €30,000 - €50,000
    • USA: $84,000 - $145,000
    • India: ₹6,00,000 - ₹16,00,000
    • Spain: €30,000 - €50,000

    • USA: $120,000 - $200,000
    • India: ₹10,00,000 - ₹25,00,000
    • Spain: €40,000 - €70,000
    • USA: $84,000 - $145,000
    • India: ₹6,00,000 - ₹16,00,000
    • Spain: €30,000 - €50,000

    • USA: $120,000 - $200,000
    • India: ₹10,00,000 - ₹25,00,000
    • Spain: €40,000 - €70,000

    • USA: $110,000 - $180,000
    • India: ₹8,00,000 - ₹20,00,000
    • Spain: €35,000 - €60,000

Related Topics for further study


Learning Outcomes

  • Develop distributed applications using Java RMI, Apache Kafka, and Akka
  • Implement fault tolerance and scalability strategies in distributed systems
  • Understand the fundamentals of distributed programming in Java

Prerequisites or good to have knowledge before taking this course

  • Basic knowledge of Java programming language
  • Familiarity with Object-Oriented Programming concepts

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced
  • Video Lectures

Similar Courses

  • Distributed Systems and Cloud Computing
  • Scalable Microservices with Kubernetes
  • Building Scalable Java Microservices with Spring Boot and Spring Cloud

Related Education Paths


Notable People in This Field

  • Martin Fowler
  • Doug Lea

Related Books

Description

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.

Outline

  • Welcome to the Course!
  • Course Welcome
  • General Course Info
  • Course Icon Legend
  • Discussion Forum Guidelines
  • Pre-Course Survey
  • Mini Project 0: Setup
  • DISTRIBUTED MAP REDUCE
  • 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
  • Talking to Two Sigma: Using it in the Field
  • 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
  • Continue Your Journey with the Specialization "Parallel, Concurrent, and Distributed Programming in Java"
  • 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

Summary of User Reviews

Read reviews of Distributed Programming in Java course on Coursera. Users have generally found the course to be helpful and informative. One key aspect that many users thought was good is the interactive nature of the course, which keeps them engaged throughout the lessons.

Pros from User Reviews

  • The course is well-structured and provides a clear understanding of distributed programming in Java
  • The interactive nature of the course keeps users engaged and interested in the material
  • The course is taught by knowledgeable instructors who are experts in the field
  • The assignments and quizzes are challenging and help users learn the material better
  • The course provides hands-on experience with real-world examples

Cons from User Reviews

  • Some users found the course to be too advanced for beginners
  • The course requires a strong foundation in Java programming
  • Some users found the course material to be outdated
  • Some users found the course to be too theoretical and not practical enough
  • The course can be time-consuming and requires a significant amount of effort
English
Available now
Approx. 18 hours to complete
Vivek Sarkar
Rice University
Coursera

Instructor

Vivek Sarkar

  • 4.6 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses