Chevron Left
Back to Parallel Programming in Java

Learner Reviews & Feedback for Parallel Programming in Java by Rice University

838 ratings
171 reviews

About the Course

This course teaches learners (industry professionals and students) the fundamental concepts of parallel programming in the context of Java 8. Parallel programming enables developers to use multicore computers to make their applications run faster by using multiple processors at the same time. By the end of this course, you will learn how to use popular parallel Java frameworks (such as ForkJoin, Stream, and Phaser) to write parallel programs for a wide range of multicore platforms including servers, desktops, or mobile devices, while also learning about their theoretical foundations including computation graphs, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism. Why take this course? • All computers are multicore computers, so it is important for you to learn how to extend your knowledge of sequential Java programming to multicore parallelism. • Java 7 and Java 8 have introduced new frameworks for parallelism (ForkJoin, Stream) that have significantly changed the paradigms for parallel programming since the early days of Java. • 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: • Theory of parallelism: computation graphs, work, span, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism • Task parallelism using Java’s ForkJoin framework • Functional parallelism using Java’s Future and Stream frameworks • Loop-level parallelism with extensions for barriers and iteration grouping (chunking) • Dataflow parallelism using the Phaser framework and data-driven tasks Mastery of these concepts will enable you to immediately apply them in the context of multicore Java programs, and will also provide the foundation for mastering other parallel programming systems that you may encounter in the future (e.g., C++11, OpenMP, .Net Task Parallel Library)....

Top reviews


Aug 28, 2017

Great course. Introduces Parallel Programming in Java in a gentle way.\n\nKudos to Professor Vivek Sarkar for simplifying complex concepts and presenting them in an elegant manner.


May 17, 2020

I found this course very useful. I can see the utilisation of parallel computing in many fields of software development industry. So it's really useful for developers.

Filter by:

76 - 100 of 170 Reviews for Parallel Programming in Java

By Daniel F G

Mar 14, 2019

great content and mentors

By Nakib A T

May 03, 2018

Very helpful and advanced

By Oh, M W

Mar 11, 2018

Very concise and helpful.

By Mehul S

Nov 08, 2018

Very informative course.

By K P

May 05, 2020

It was very interesting

By Junqi X

Feb 28, 2020

Very interesting topic.

By Grigory N

Oct 24, 2018

The course is good!

By Tai H T

Oct 25, 2017

Interesting course!

By DaeMyung K

Feb 22, 2018

Very good and kind

By Luiz E

Dec 10, 2017

Awesome professor!

By Carlos A R

Oct 23, 2019

Really didactic!

By chen x

Oct 15, 2017

Very impressive!

By Sudharaka P

Nov 06, 2018

Great course!!!

By Guillermo D

Jan 03, 2019

Great Course!!

By José A X C

Nov 09, 2017

great course.

By Russell G

Aug 14, 2017

Great course!

By Light0617

Nov 02, 2018


By Vaibhav j

Sep 21, 2017

Great Course

By Jasur A A

Jun 06, 2020

It is clear

By Мухин С А

Sep 25, 2018

Всё хорошо

By s v s g

Apr 30, 2020

very good

By Marcos N F

May 04, 2019


By Jonathan H

Sep 27, 2018


By Mike D

Nov 06, 2017

This course has a good combination of clear lectures, helpful textual summaries, reasonable/helpful quizes, and decent weekly projects. If anything, I wish that the projects were a little more challenging. The first three were fairly easy and I wish that we had been required to implement them from scratch rather than having the starting version which required only minor modifications. The last project assignment was a little tricky because the lectures didn't cover all the details of phasers in sufficient detail, so studying additional documentation was required. Overall, I learned a lot and it was time well spent.

By Rhijul M

Dec 23, 2018

Although this was a very excellent course to understand various API's and methods that are exposed by Java SDK's (RecursiveTasks, Fork/Join Framework etc) and touched on very important multi-core parallelism aspects, I was left wanting for more fundamental explanations regarding how parallelism works under the hood (How the thread works, how the signalling between barrier synchronisation happens etc). Thanks, none the less. Looking forward to next course.