Apr 24, 2018
The course is fairly advanced and you would need to review the materials many times to understand the concept. The assignments are definitely fun and not as straightforward as other courses.
Aug 25, 2017
Superb study material. Learnt a lot during this course. I am not much into mathematical stuff, but got a hang of how to break problems and improve efficiency through parallelism.
por Kinshuk V•
Dec 16, 2017
Although the course is taught well and covers a lot of ground, it is my opinion that the course content is not relevant to what I and majority of other Scala developers were looking for in terms of parallel programming. The instructor has been upfront in differentiating parallel programming (the objective of this course) from concurrency programming. However, I was more interested in learning about concurrency, especially about Akka actors, etc. I wish there was a course of Akka, which is what most Scala developers use for concurrent applications.
por Oliinyk V•
Apr 02, 2018
General idea of the course is very good. There are a few things to improve though:
Focus more on intuition behind algorithms rather than formal math
Build a solid foundation that would allow students to develop parallel algorithms themselves.
Practical assignments should focus exactly on this, rather than filling in missing pieces of code that are only tangentially related to the algorithm itself.
It would be helpful if the course provided minimal but solid basics and intuition behind parallel computations. The basics that would allow students to learn more advanced concepts themselves.
In any case, the course has a lot of value and the instructors are awesome.
por Marcin Z•
Apr 16, 2019
First 3 weeks were cool, but the last week was somehow rushed and the assignment did not involve any parallel programming.
por Leitner C S E S•
Nov 21, 2017
Some of the practical examples are a bit tedious, because the bigger issues you sometimes need to solve seem to be implementing a random algorithm, instead of implementing its parallelization per se. That is, the support classes for parallelizing the algorithms are pre-coded for you, while you at times spend more time figuring out how the algorithm itself needs to be implemented with that rather than coming up with these parallelization semaphores (which I would have considered more interesting, at least). But the content covered is highly relevant and first class (the authors being world-leading experts on the topic), so if you are interested in parallel programming, this is course is a great choice.
por VICTOR A•
Aug 11, 2018
All but the last assignment are interesting. A fair amount of the lectures are also good, even though some of them are too theoretical - the bad lectures are the ones that focus too much into proving mathematical properties, but thankfully there is just a few of those.
The last assignment is considerably larger than the other ones and requires a physics background (or interest to do research on your own). I think they could improve it by approaching the material independently with smaller exercises before applying them again into the larger application that is built as part of the assignment today.
por Šejla Č•
Mar 08, 2019
Plus: Very in-depth lectures, challenging assignments. Minus: The actual parallel code somewhat remains a black-box, assignments sometimes focus more on figuring out the algorithm logic which may not have anything to do with the course. Still I enjoyed it and learned a great deal.
por Ilya B•
Jan 20, 2019
The tasks are not well designed for online education
por Zhu L•
Jul 18, 2017
Basically the lecture is more focused on the theoretical side of parallel programming, while the programming assignment on the more hands-on problem solving aspects.
I like that. Lectures shouldn't be too lengthy, the research and thinking are best left to the students themselves.
Some complain the programming assignments (especially the Barnes-Hut simulation) are too much trouble, I think it's OK.
Actually I wouldn't mind if it become even harder.
One suggestion, though. I think it would be helpful if the course can provide a summary of programming tips for Scala.
After all, many people come here with a mindset in imperative or OO programming. The conversion to FP can be a bit uneasy.
por Rishi K•
Sep 13, 2016
Parallel Programming course in Scala will help you to program at a higher level, reason about task and data parallel programs, express common algorithms in a functional style and solve them in parallel, competently microbenchmark parallel code, and write programs that effectively use parallel collections to achieve performance. The course content was well organized and it had in - depth assignments which were relatively difficult for me to complete. I would recommend this course to everyone, and one should take it only after taking the 'Fundamental Programming Principles in Scala' and 'Functional Program Design in Scala' courses.
Aug 15, 2016
Good course. The only thing I would suggest to improve is in the Assignments, the error messages are not always sufficient information to recreate the bug that caused the error, so it is hard to correct the bug (since if you don't recreate the bug, you don't find the root cause). On the other hand it's understandable, that giving away too much info from the grader makes it easier to "workaround" the failed test without necessarily providing a good solution. Tricky trade-off.
Anyway, both the lecturers do a very good job of explaining fairly complex stuff in ways that non-computer-science students can understand.
por Pishta Y•
Nov 28, 2016
Everything is good. I like course. But I had trouble with finding reason of some failed tests. It is very annoying when test fails, you lost some points but reason is unknown - if test failed for some particular reason it doesn't mean that that particular check or part of implementation is incorrect: reason can be in some other place not covered with test at all. Hope more tests will be provided, and for each fail will be possible find particular incorrect function or even check in some function. Full coverage by tests for each tasks can make course learning much more efficient.
por Joshua S•
Nov 15, 2018
Like the other courses in this series, the lectures and exercises are excellent. Coming from a communications background, this course presented me with an opportunity to build on what I already knew but also offered new and interesting insights related to algorithm performance tuning. The course has a nice mix of theory and serviceable information. If you've never done any type of high-performance computing, this is a nice gentle introduction into the subject. The instructions took a lot of time to build fun and interesting exercises that are meticulously constructed.
por Xiongchu W•
Dec 07, 2016
Force students to develop the assignment code by TDD, which is very good. All the assignments are not just toy problems, which is excellent as well. If you want to learn some parallel programming algorithms, you do choose this course. The drawbacks may be that some of the concepts or expression in the lectures are obscured. Although the assignments cover almost all the important algorithms and data structures, like UpSweep, DownSweep, reducing tree and combiners, the exercises on these things are not enough.
por Vital A•
Feb 17, 2017
This is not a course about concurrency with Scala; it has very basic coverage of threads and synchronization towards the beginning, and that's it.
This is about parallelism, specifically about approaches to program design with the goal of leveraging parallelism. Yes, the assignments require immersing oneself in problems that have little to do with parallelism per se. But they are interesting, fun, and of course they nicely illustrate the concepts that are being imparted.
Another excellent course by EPFL.
por Joël V•
Apr 22, 2019
This course introduces an elegant and practical alternative to purely lock based parallelism by exploiting data & task parallelism intrinsic to many problems. It also emphasizes the mathematical requirements to use such tooling. The course slides/videos provide an good theoretical introduction with short code examples. The (fun ;-) )ctional exercises greatly echo the theoretical course with problems which appear almost effortless to parallelize.
por Massimiliano D•
Nov 09, 2018
This course analyse the parallel programming from both practical and theoretical point of view. It gives the instruments both to understand the Scala library in its completeness and expressiveness in parallel computing, and the theoretical knowledge to understand what's "under the hood", to allow the student to understand whether the parallelism could be effective or not.
I greatly suggest this course to anyone interested in parallel computing.
por Natalija I•
Mar 16, 2018
This was a great course about parallel programming. I learned a lot and most importantly I learned how to write algorithms that are executed parallel. The topic is not easy and I scratch just the surface, but I have now basic understanding why we use parallel programs, how and when to use them. Thank you to both instructors. Their lectures were very well paced and cover some topic more theoretically in depth. Looking forward to learn more.
por Hessam S M•
Feb 08, 2018
This is not a normal parallel programming about some API codes. In this course details of parallel algorithms and the mathematical part of it is covered like what kind of operation can be used in map reduce. All in all I enjoyed this course very much and learned a great deal from it. I strongly recommend this to everyone who wants to learn the details of parallel programming beyond scala or any other programming language.
Jun 29, 2016
Great introduction to parallel programming, excercises help to understand topics covered in the lectures. However, if you want to be an expert and understand every detail, you'll need to go further and look for implementations details of several constructs used in these lectures but I think adding all of the details for this short course would make it much less understandable and bad in overall effect.
por Tri N•
Dec 12, 2016
Excellent course. There is no books about Scala that can teach Parallel Computing as well as this course. Code sample of exercises in lecture is supplied on GitHub. Excellent video quality, especially the overlay annotation by the teacher with nice hand drawing. The assignments are very interesting, showing real world concrete problems, add a nice application to the concepts we learnt in the course.
por Ivan S•
Mar 11, 2018
I was tearing apart between 4 and 5. Still I liked the course very much asit provides great insight into parallel programming and algorithms. The problem are the assignments that feels a little unbalanced: week3 is just a few lines of code and feels more like quiz while others are quite challenging, but still it seems that a lot of work in assignments is already done by the teaching stuff.
por Roberto S•
Jun 23, 2017
Quite advanced for someone with little background in parallel processing. The learning curve is not too steep, though, and the concepts sink in at a steady pace. The assignments are quite interesting as well; they manage to keep them enough real-life to make them interesting while simplifying them enough so learning the concept is not obscured by too much clutter.
por Matthew H•
Nov 20, 2016
Many thanks Viktor and Aleksandar! A very interesting course which gave me a good appreciation of parallel programming in Scala, and helped me consolidate what I had learned in the previous 2 courses with Martin.
The exercises were just the right level of challenge, and demonstrated well the lecture content.
por Aliaksandr P•
Jul 16, 2016
I like the course. I learned some nice ideas for parallel computations, not just Scala specific API.
To polish: sometime lectures and tasks contain many complicated but not significant details. And some important ideas are not emphasized. I had to filter the content carefully.
por Krishna A•
Jun 12, 2017
A very good course which teaches the techniques of Parallel Programming. Anyone wishing to upgrade their knowledge about Parallel Programming, should take this course. The principles are applicable universally, so you can take back the learnings and apply them in your work!