Chevron Left
返回到 Parallel Programming in Java

學生對 莱斯大学 提供的 Parallel Programming in Java 的評價和反饋

1,135 個評分


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)....




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.



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.


226 - Parallel Programming in Java 的 239 個評論(共 239 個)

創建者 Kaj S


The videos were very well done. The exercises were a bit too easy in my opinion. But the exercises did focus on the issue at hand, unlike some other courses that get you stuck on complicated but unrelated issues used only as an example problem.

創建者 Ruben C


T​he course is interesting and well explained, but Coursera Grader is a pain: fails in nearly all miniprojects. The last one don't work at all.

創建者 Atsuya K


Provides background material for the course on concurrency in the same specialization. Assignments are trivial.

創建者 Francisco R


I would prefer see examples based on standard Java code, not in a library developed for some small group.

創建者 Phindulo M


A very good introductory course only rating 3 star because the projects did not feel greatly involving.

創建者 Rahul M


good coverage of basics.. would have been great if there were few more coding practice papers.

創建者 Hieu D


Heavy theory but poor practical. Need more enhancement for the next time.

創建者 Mohamed E


Focusing more on theoretical parts

創建者 MIAO K


Good overview, but less details

創建者 Jakob U


The covered material is useful, but the presentation is... well, not so nice. The professor writes with a pen on a glass board, and his handwriting is a catastrophe (it's not about individual letters, but the way he clutters up space in a completely unorganized way), and on top of that it slows down the delivery. So I ended up just reading the summaries and watching the demonstration videos and only referring to the videos when needed.

The mini projects are way too easy in my opinion, though useful.

But my main criticism is that the course's title is "Parallel Programming in Java." However, the course doesn't teach you the Java API, which it definitely should. It recommends using RecursiveTask from the Fork/Join framework to implement a future, which is kinda stupid. It certainly works, but if you do it in real life, it immediately exposes you as ignorant of Java's API. No mentioning of Executors whatsoever. Doesn't teach you how you can distinguish the number of logical and physical cores, and indeed the provided unit tests are all such that you can get 100% from the Coursera grader, which uses 4 tasks, but will let you fail if you run it on an octacore AMD Ryzen 7 with 16 threads, because it unrealistically (for CPU-bound tasks) expects almost 16-fold speedup from your parallelized solutions. In the end, you're left wondering if it is better to construct a ForkJoinPool yourself or to use the commonPool(), or whether you should call submitAll() or fork(), or whether you should construct your Phaser with 0, 1 or the number of tasks, and what the difference between awaitAdvance and awaitPhase might be, instead of leading by example and showing you a clean use of the API. On top of that, it introduces you to Rice's HPDP (or something like that) library... That's cute (and to be fair, the libary seems quite useful and elegant), but it's not really what people come here for.

I can say that I learned something from this course, but I would not have wanted to pay for the course if it wasn't included in Coursera Plus.

創建者 Upasana S


Good part is that I have learnt quite a lot of things from this course and I enjoyed it. Not so good part is that I don't get answers to my questions I post on the forums, graders are not working correctly and I don't know the correct answers to the quiz (once I passed it, it would be nice to know the answers to the ones I answered incorrectly). I feel cheated because I paid for the course, but it makes me feel like I wasted my money a bit.

創建者 Wenrui W


I spent 6 days on this course, and I feel it is not worth the time. One of the problems is that the lectures are overly basic, and the mini projects are not challenging, at least not in a helpful way (quizzes are sometimes challenging due to some concepts not covered in the lectures at all). I guess the instructor did not really spent much time preparing the materials and assignments.

創建者 Clay M


T​he lectures and the projects often did not match up. The autograder was also very capricious and you can pass and fail with the same submission.

創建者 Wen L


Please make the homework better.