Coursera
Coursera Logo

Rice University - Concurrent Programming in Java 

  • Offered byCoursera

Concurrent Programming in Java
 at 
Coursera 
Overview

Duration

19 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

Concurrent Programming in Java
 at 
Coursera 
Highlights

  • Shareable Certificate Earn a Certificate upon completion
  • 100% online Start instantly and learn at your own schedule.
  • Course 2 of 3 in the Parallel, Concurrent, and Distributed Programming in Java Specialization
  • Flexible deadlines Reset deadlines in accordance to your schedule.
  • Intermediate Level
  • Approx. 19 hours to complete
  • English Subtitles: Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, English, Spanish
Read more
Details Icon

Concurrent 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 concurrent programming in the context of Java 8. Concurrent programming enables developers to efficiently and correctly mediate the use of shared resources in parallel programs. By the end of this course, you will learn how to use basic concurrency constructs in Java such as threads, locks, critical sections, atomic variables, isolation, actors, optimistic concurrency and concurrent collections, as well as their theoretical foundations (e.g., progress guarantees, deadlock, livelock, starvation, linearizability).
  • Why take this course?
  • ? It is important for you to be aware of the theoretical foundations of concurrency to avoid common but subtle programming errors.
  • ? Java 8 has modernized many of the concurrency constructs since the early days of threads and locks.
  • ? During the course, you will have online access to the instructor and mentors to get individualized answers to your questions posted on the forums.
  • ? 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.
  • The desired learning outcomes of this course are as follows:
  • ? Concurrency theory: progress guarantees, deadlock, livelock, starvation, linearizability
  • ? Use of threads and structured/unstructured locks in Java
  • ? Atomic variables and isolation
  • ? Optimistic concurrency and concurrent collections in Java (e.g., concurrent queues, concurrent hashmaps)
  • ? Actor model in Java
  • Mastery of these concepts will enable you to immediately apply them in the context of concurrent Java programs, and will also help you master other concurrent programming system that you may encounter in the future (e.g., POSIX threads, .NET threads).
Read more

Concurrent 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 Threads

1.2 Structured Locks

1.3 Unstructured Locks

1.4 Liveness

1.5 Dining Philosophers

Demonstration: Locking and Synchronization

1.1 Lecture Summary

1.2 Lecture Summary

1.3 Lecture Summary

1.4 Lecture Summary

1.5 Lecture Summary

Mini Project 1: Locking and Synchronization

Module 1 Quiz

Critical Sections and Isolation

2.1 Critical Sections

2.2 Object Based Isolation (Monitors)

2.3 Concurrent Spanning Tree Algorithm

2.4 Atomic Variables

2.5 Read, Write Isolation

Demonstration: Global and Object-Based Isolation

2.1 Lecture Summary

2.2 Lecture Summary

2.3 Lecture Summary

2.4 Lecture Summary

2.5 Lecture Summary

Mini Project 2: Global and Object-Based Isolation

Module 2 Quiz

Industry Professional on Parallel, Concurrent, and Distributed Programming in Java - Jim Ward, Managing Director

Industry Professional on Concurrency - Dr. Shams Imam, Software Engineer

About these Talks

Actors

3.1 Actors

3.2 Actor Examples

3.3 Sieve of Eratosthenes Algorithm

3.4 Producer-Consumer Problem

3.5 Bounded Buffer Problem

Demonstration: Sieve of Eratosthenes Using Actor Parallelism

3.1 Lecture Summary

3.2 Lecture Summary

3.3 Lecture Summary

3.4 Lecture Summary

3.5 Lecture Summary

Mini Project 3: Sieve of Eratosthenes Using Actor Parallelism

Module 3 Quiz

Concurrent Data Structures

4.1 Optimistic Concurrency

4.2 Concurrent Queue

4.3 Linearizability

4.4 Concurrent Hash Map

4.5 Concurrent Minimum Spanning Tree Algorithm

Demonstration: Parallelization of Boruvka's Minimum Spanning Tree Algorithm

4.1 Lecture Summary

4.2 Lecture Summary

4.3 Lecture Summary

4.4 Lecture Summary

4.5 Lecture Summary

Mini Project 4: Parallelization of Boruvka's Minimum Spanning Tree Algorithm

Exit Survey

Module 4 Quiz

Industry Professionals on Parallelism - Jake Kornblau and Margaret Kelley, Software Engineers, Two Sigma

Industry Professional on Distribution - Dr. Eric Allen, Senior Vice President, Two Sigma

Our Other Course Offerings

Concurrent 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

    Concurrent Programming in Java
     at 
    Coursera 

    Student Forum

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