Chevron Left
Back to Parallel Programming in Java

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

4.6
stars
1,201 ratings

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

RA

Invalid date

Very relevant concepts, explained beautifully by a very experienced professor. The assignments were good, but they could involve more programming for more practice!

KK

Invalid date

Excellent Course.I always wanted a good course on java concurrency and parallel programming.And finish->async, isolated, forAsync constructs are awesome.I have learnt much from this course.

Filter by:

26 - 50 of 256 Reviews for Parallel Programming in Java

By Josh S

•

Feb 9, 2018

This was a very well laid out, useful, and interesting course. I have done a few of them and this was one of the better ones by far. Clearly communicated and short lectures. Assignments that are actually useful and focus on what you learn. Course doesn't require a huge time sink so good for professionals.

By Sonu M

•

Dec 3, 2018

I liked the course material and the relevant assignments and projects. It is of right difficulty level: gives you knowledge and makes you comfortable with the concepts and tools without making you slog for weeks. I feel students will be able to retain the gained knowledge longer than traditional classes.

By 남그롬간서치

•

Feb 8, 2019

very informative. This course has a great balance between theoretical and practical method. Programming Java is a really great. if you are not familiar with Java like me assignment is quit challenging. You need to know a basic API and get used to Java documentation. I highly recommend this course.

By Hannah V S

•

Jun 28, 2018

Fantastic introduction to parallelism in Java. Starts basic enough for those with zero experience with parallel computing, goes far enough to give more experienced Java devs some things to chew on, gives practical examples for how to apply parallel techniques throughout. Highly recommended!

By Michail L

•

Feb 12, 2024

An amazing course. While the main language is Java, the ideas of parallelism learned can be easily transferred to other languages. Also, the professor was great and had besides the technical know-how, he had as well the rare ability to transfer and explain tough concepts in simple words.

By Prathamesh B

•

Nov 22, 2020

Amazing course. Dr. Sarkar is a fantastic professor. The course materials and the teaching style will make you understand several complicated topics with confidence and ease. After this course, I have a very good understanding of the fundamentals of programming parallelism in Java.

By Navin V

•

Dec 20, 2020

Just after completing the week 3 module I realised that I have a new approach to programming at my work.I am Able to identify the pieces of code that are sequential and are good candidates for exploring parallelism there by potentially improving the over all performance of system.

By Tobi L

•

Oct 23, 2017

Concise, well structured and effective. I now know the basics of ForkJoinPool, barriers, split-phase barriers and promises. Also the analysis of computation graphs really solidified my understanding of the relationship between parallelism and speedup over sequential equivalents.

By Hung W K

•

Sep 10, 2024

The instructor explain very good, and it is concise yet covered many important things. By doing the programming assignments, it is good to apply what he draw on the screen to become the code on my screen. I hope I could join his other 2 courses in the specialization soon.

By Nikolay M

•

Jan 31, 2018

very useful concept such as async and future

this course help me understanding parallel programming in Java, I download language X10

please accept my gratitude. the ability to disassemble on the fingers difficult problem is the ability of the truly talented teachers

By Vinay B S

•

Sep 30, 2017

An excellent course. Thank you, Dr. Sarkar!

During my internship, when I was taking this course, coincidentally, I got an opportunity to use Async tasks , get() etc. Was very happy when I could practically apply the concepts that I learnt during the course.

By JB B

•

Aug 9, 2017

The video lessons are short and well made with practical summaries. Parallelism is a must for every serious software engineer just as being good with algorithms and data structures. Re-watch the videos and summaries to help you do the mini-projects.

By Jaime F O C

•

Dec 10, 2018

This is a very good course, but I think that it needs more visual elements and more challenging homeworks. However, this course doesn't just offer a "how you can do this in Java", since it will first show you the theory. Great course.

By Ignacio G

•

Oct 21, 2018

It's a great course, you learn the fundamentals to keep going and challenge your task at work to improve the performance.

I don't find that good that sometimes we have to use the API's provided by the University and not Java libraries.

By Rushabh N L c

•

Jan 17, 2021

Decent course. Prof. Sarkar taught so well and I wish I could take some more classes with him. I think more constructs could be introduced and explained with more examples. Programming assignments were easy and could be more intense.

By JUAN M Z

•

Aug 8, 2024

The quality of the material provided is excellent and instructor Vivek Sarkar explains very clear, with good examples and great communication skills. I learned and enjoyed a lot taking this course. Strongly recommended!

By Qingbo Z

•

Nov 15, 2019

This course has lots of invaluable insights, in-depth materials from high level concepts to practice. I highly recommend this course to all programmers who want to familiarize themselves with Java parallel programming.

By Tianxiang X

•

Jul 23, 2018

Well-made videos, good explanation of concepts, great hands-on projects (not too difficult).

Some issues w/ differences b/t dev and grader environments in terms of performance / tests passing, but that's inevitable.

By Roman M

•

Nov 7, 2017

This course is a good introduction to parallel programming. The assignments was to easy. Asides that, everything is great, Vivek Sarkar did a great job to teach fundamentals in easy to understand manner.

By Leonid S

•

Sep 7, 2018

Thanks to this course I've learned actual (modern?) Java APIs which helps to embed parallelism into my programs.

And one more important thing: I stated to learn again. This worth to do at any age :)

By Lee G

•

Dec 13, 2017

This is a great course in parallel programming. The videos were very clear, summaries reinforced the video material and the programming projects and quizzes were challenging but not overwhelming.

By Srikar V

•

Aug 28, 2017

Great course. Introduces Parallel Programming in Java in a gentle way.

Kudos to Professor Vivek Sarkar for simplifying complex concepts and presenting them in an elegant manner.

By Samujjal B

•

Sep 2, 2020

I like the course very much. I am a working software engineer and I believe it will be helpful in my work. Prof Vivek is so clear in explanation and pretty to the point.

By Samarjit P

•

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.

By Rishabh A

•

Dec 27, 2017

Very relevant concepts, explained beautifully by a very experienced professor. The assignments were good, but they could involve more programming for more practice!