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.\n\nKudos to Professor Vivek Sarkar for simplifying complex concepts and presenting them in an elegant manner.
By Виталий Д•
By Burhan u H Z•
By John A•
A great course to learn the basics of thread-level parallel programming using the Java API. I had never used ForkJoin or other parallelism libraries which were recently added to the Java API before, and from taking this class I was able to gain both practical experience with these libraries and learn the theory behind their use. The lectures were well organized and effectively transitioned between examples and topics, making the content easy to understand. The quizzes were comprehensive enough to completely test your understanding of the material but still had a reasonable difficulty.
The weakest part of this class was probably the mini-projects. Some of them were too brief or trivial to get sufficient experience with the topics in this course. Solutions are also mainly evaluated based on execution time, which could vary significantly between trials of the same program -- enough that the same code could pass the autograder on some runs and fail on others.
In spite of this, I still would recommend this class to anyone who wants to learn about software parallelism. This course teaches a variety of ways to use parallelism to improve performance, as well as analyzing the challenges and obstacles in doing so. I have not taken the other two courses in this specialization yet, though I plan to soon.
By Mike D•
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•
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.
By Toriola O•
I enjoyed the course and hoping to finish the specialization. Conclusively, my understanding of Parallelism has improved further.
It would have been 5-stars but there wasn't enough emphasis on the effect of hardware on the mini projects which in most cases led to avoidable waste of time of the course assignments.
My Advice to all current and prospective students is to be agile by uploading assignment incrementally to Coursera grader.
By Dipen L•
Just the grader really, sometimes when iti's under heavy use then the results vary - but apart from that the videos are really special, you have to pay attention to detail when the videos are this compact - but that is what makes it really good. The assignments test what you've learnt and can sometimes be on the easy side - but that just means practicing on other things outside of course work. A truly wonderful learning experience.
By lowell s•
Excellent lectures and provides good understanding of some theory behind Parallel Programming. The professor is a good lecturer and has a great format. Some assignments are very difficult due to the confusion between lecture notes which have errors and differences between the lecture and the notes. But well worth taking the course and understanding how to take advantage of multi-core processing.
By Nitant N J•
This course covers many interesting topics of parallelism with java. This course is for all the ones who know the basics of java and want to learn something about parallelism. However, I do feel that sometimes this course just throws the topics at you and you have to dig deep by yourself. But yes many important topics are covered very well also the mini projects are very well designed.
By Adeel R•
Having come from Python world, i have learned valuable concepts in parallel programming and related Java APIs, surely the APIs are much more elegant and powerful in Java. i was disappointed by Week's 3 and 4's assignment task, they were too easy, nevertheless learned a great lot of information. Excellent course for someone who is looking to get into parallel programming!
By Krishna A•
Learnt a lot about parallel programming and the facilities offered in Java for the same. The best part is the videos are short and nice. However, I'm echoing some of the common sentiment, that the assignments (barring assignment 2) are too trivial, and sometimes are not clear what to do. They can be surely improved, so that students can deepen their understanding.
By Андрей С•
This course is a good introduction to parallel programming,
but i noticed a number of shortcomings.
Some themes are not reflected in mini-projects:
- memoization in week 1;
- data flow and pipeline parallelism.
The mini-project for week 3 is too easy.
Some questions in the quiz in week 4 does not match the contents of the course.
By Ashwin K•
I feel the course can have more theoretical foundations included as well. And the assignments should be more challenging and more explanatory as well to reinforce concepts in a better way. But otherwise, really good course to get started understanding async programming constructs. Helped me clear a lot of doubts that I had.
By Mitrofanov P•
Tasks are too simple. All the information isn't covered in depth, so consider this course as a sort of introduction to the theory of parallel programming as well as many important Java language features. It gives you a basic idea and points you to the right direction in case you're interested in this complex topic.
By Ashutosh S•
The content and presentation is very good. The exercises are very limited, and repeat of the problems in video lectures with minor variations in some cases. Also it is very frustrating to meet the benchmark performance on exercise. It passes on autograder fails locally so you just keep doing hit and trial.
By Diogene N•
This course is a very nice introduction to parallel programming in Java. It highlights the key libraries to explores for production use. On thing I didn't like is that the programming assignments are a copy paste of the demonstration videos in the course. All in all I enjoyed taking this course!
By Antonio J M G•
Great content, thank you very much for putting this together. I have enjoyed reviewing the fundamentals and learn more about the Phaser's API. My only suggestion will be to add more exercises, even if they are optional, so people can practice more the concepts introduced.
By Benjamin G J•
The exercises are just a little short and I'd like to see, maybe, twice as many quizzes with a better connection to lecture notes, but the lectures are very enlightening, the subject matter is very interesting, and the exercises, though excessively sparse, are helpful.
By Alban D•
Very interesting content: it is definitely useful to get into that topic. Mini projects are sometimes a bit light: what has to be done is so simple that it can be frustrating... or misleading (I would expect to have more than a single line to change sometimes).
By Saifuddin M•
I liked the course. It introduced some of the concepts in parallel programming very well. I would suggest if it focuses more on Java implementations from the java.util.concurrent package like Countdown Latches and Cyclic Barriers it would be more helpful.
By Anton O•
Good course. I've expected less theory and more practice, but all in all I'm happy with the course. Block about parallel streams was the most useful for me. On the other hand part about array multiplication was quiet useless from practical point of view.
By Abid A S•
Was quite helpful... cleared many basic concepts in parallel programming ... but you should come up more industry oriented examples .. code samples uses rice university's own package in some examples..these could be done with regular java libraries
By Artur G•
This course is quite a shot one. The lectures are condense and programming assignments are purely academic. However I still would suggest to take it if one wants to learn about high level abstraction upon parallel computing in Java.
By Cyril A•
Materials are informative. Instructor is good. Good to have programming assignments to practice the material learned. Assignments after assignment 2 were a little light though. The first two assignments were at a good level though.
By erdem o•
It was a useful course, but last two homeworks were exactly same as professor explained in demo implementations. I would expect them to take a bit more time and having a variety of easy/difficult tasks in each homework.