Chevron Left
Back to Parallel programming

Learner Reviews & Feedback for Parallel programming by École Polytechnique Fédérale de Lausanne

1,764 ratings
270 reviews

About the Course

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library. Throughout, we'll apply these concepts through several hands-on examples that analyze real-world data, such as popular algorithms like k-means clustering. Learning Outcomes. By the end of this course you will be able to: - reason about task and data parallel programs, - express common algorithms in a functional style and solve them in parallel, - competently microbenchmark parallel code, - write programs that effectively use parallel collections to achieve performance Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Program Design in Scala:

Top reviews

Apr 23, 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 24, 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.

Filter by:

201 - 225 of 258 Reviews for Parallel programming

By Kyoung-Seop P

Jan 24, 2017

What a difficult course it is!

Nevertheless, it was very helpful.

By Daniel D

Dec 29, 2016

Very well delivered course, more examples are needed though.

By Youwei Z

Sep 13, 2016

good in general, theory part on complexity is too tedious

By Dean T

Jan 3, 2019

Needs to be updated for more modern versions of Scala.

By Seoh C

Oct 4, 2017

unhelpful assignment instructions and test cases.

By Konstantin K

Oct 27, 2016

good overall, but sometimes overly complicated

By Shi Y

Sep 13, 2019

Some instruction is pretty confusing

By Ilya D

Jun 22, 2016

Assignments weren't challenging.

By David P

Jan 25, 2017

Nice course! I learned a lot...

By rafael f o

May 9, 2020

Spanish traduction please

By Théophile G

Jul 17, 2017

Pretty good course

By Pedro R

Mar 15, 2017

Great course!

By c86jeff

Jan 22, 2017

learned a lot

By dh l

Dec 7, 2016


By Taewoo K

Apr 26, 2020

Good !

By Adam S

Jun 21, 2016

Good learning materials, however the assignments are designed for compute science students rather than professional software developers as the most important part of the assignments is not parallel code, but it is algorithms. Yes, there is parallel code in the code of the assignments, but it is mostly written and your task is to implement the algorithm using this existing parallel code, while in my opinion it should be the other way around - you should implement parallel code and algorithms code should be already provided for you.

By Evgeniy S

Apr 4, 2020

This course is quite hard to understand with tasks especially at the end of week 4. I'm not sure that this is very useful now, cause no examples and explanation of current libs in scala for parallel programming, just couple of main classes or methods. From time to time a lot of good examples reg parallelism and associativity, but I'm not sure that we need this kind of deep math and algorithms here in current tasks. This course has academy level of understanding and not adapted for all kind of Software Engineers, etc.

By Aleh V

Mar 3, 2017

Wrongly assumes that it'll be easier for students to jump from the conventional 'parallel' java paradigms and constructs to parallel streams.

Not a good job on explaining why. It'll require from students some efforts to create the right picture in their minds.

Exercises are great and partially make up for the above mentioned shortcomings.

Some example code is very bad and goes against all the 'good' things being taught by Martin in the first course of the specialization.

By Valerio M

Nov 27, 2016

Interesting course, but far too short. It ends up giving a quick introduction to some of the aspects of parallel programming. I enjoyed the assignments, apart from last one where the difficulty was more about the context of the example than any parallel programming aspects. That example, extended, could be a good capstone project, but I think it was not appropriate as a course assignment. I prefer courses that follow a book, and this course didn't.

By Rachapong C

Jun 16, 2020

This course is interesting like the 1st and 2nd course.

However, don't expect to receive any feedback or help in the forum like the first 2 courses. There is none.

I've completed the course for 12 days and yet my questions in the week 1 and 2 forums still haven't been answered at all. The question on the final assignment still haven't been answered either, so I'm still in the dark of how a part of my program was wrong.

By 家伟 陈

Dec 21, 2017

Not friendly with beginners in Scala. You will be presented with tons of Scala code with minimal detailing on algorithms. Obviously the lecture expects you to be quite familiar with Java and Scala. And the lecture is not very informative either (at least for green hands in Scala). I found that the best way that works for me is to pause at each slide, study the code, and then go on to see what the lecture has to say.

By Sangam K

Sep 30, 2017

I didn't like the last assignment. I didn't think there was much to learn there. I would've liked to implement more splitters and combiners. I did like the first 3 assignments very much. The lectures were pretty good, but I found myself loving some, and hating the others. I would've preferred more practical applications over theory. I think the lectures are un-necessarily math heavy.

By Hadrien H

Dec 20, 2016

Content is good, less well polished than Odersky's courses though. Painful exercises with a lot of time spent on understanding the instructions instead of focusing on learning parallelism methods (especially the final assignment). Overall happy to have learnt from this, but clarity of assignments should be improved.

By Andy D

Jan 14, 2017

In my view, this course was nowhere near as good as the earlier courses by Prof Odersky. The materials and pacing seemed all over the place - in some cases excessive time was spent going through quite trivial concepts, while elsewhere the course seemed quite rushed when looking at much more complicated ideas.

By Shad A

Apr 1, 2017

This course could have been better in my opinion, if we could have exercise that would deal with the concepts in more detail. I felt myself involved deeply in understanding the problem statement, rather than practicing the concepts explained in the course.