• For Individuals
  • For Businesses
  • For Universities
  • For Governments
Coursera
  • Online Degrees
  • Careers
  • Log In
  • Join for Free
    Coursera
    Chevron Left
    Back to Parallel programming

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

    Filled StarFilled StarFilled StarFilled StarHalf Faded Star
    4.4
    stars
    1,844 ratings

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

    Top reviews

    AL

    Apr 24, 2018

    Filled StarFilled StarFilled StarFilled StarFilled Star

    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.

    RC

    Aug 25, 2017

    Filled StarFilled StarFilled StarFilled StarFilled Star

    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:

    1 - 25 of 276 Reviews for Parallel programming

    Filled StarFilled StarFilled StarStarStar

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

    Filled StarFilled StarFilled StarFilled StarStar

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

    Filled StarStarStarStarStar

    By Vadim O

    •

    Apr 2, 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.

    Filled StarFilled StarFilled StarStarStar

    By Steve S

    •

    Nov 16, 2017

    This course was okay, but I feel it could use some work. For starters:

    -I feel some of the longer assignments should be split up into several weeks (the Barnes-Hut one for example, since there's a lot to implement and it took a while to understand conceptually).

    -I feel that some parts of the assignment specs could be more clear. For example, in the K-means assignment, it was mentioned to use the "square distance" between the means to determine if the algorithm had converged or not and I feel it would be useful to provide a mathematical formula here (or at least give the name of the formula i.e., Pythagorean).

    -I wish there was more focus on making the assignments practical instead of something that's more sophisticated. For example, it would've been nice to have an assignment for week 4 that allowed us to practice implementing a variety of parallelizable data structures and focus on making them as efficient as possible.

    Filled StarFilled StarFilled StarFilled StarStar

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

    Filled StarFilled StarFilled StarFilled StarFilled Star

    By Samir S

    •

    Jul 19, 2020

    This was a truly fascinating course! I'm so glad I decided to check out this course immediately after completing Professor Odersky's first 2 courses in the Scala Specialization track. I am an experienced Software developer with quite a bit of experience working with parallelism using imperative languages like Java. However, I must confess that after I've completed this course, I have learnt more than I ever imagined I could in the past 4 weeks. A whole new world has opened up before my very eyes. I have fallen in love with Parallelism in the Functional Programming world, and I feel like rewriting all the imperative code I've ever written using the FP paradigm. The lectures were really informative and there was never a boring moment, but what really stood out were the incredible assignments, which contributed immensely to all these ideas getting etched in my brain. This course definitely has something for newbies as well as experienced developers.

    Filled StarFilled StarFilled StarFilled StarFilled Star

    By Hessam S M

    •

    Feb 8, 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.

    Filled StarFilled StarFilled StarFilled StarFilled Star

    By Li Z

    •

    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.

    Filled StarFilled StarFilled StarFilled StarFilled Star

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

    Filled StarFilled StarFilled StarFilled StarFilled Star

    By murmelssonic

    •

    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.

    Filled StarFilled StarFilled StarFilled StarFilled Star

    By Xiongchu W

    •

    Dec 7, 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.

    Filled StarFilled StarFilled StarFilled StarFilled Star

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

    Filled StarFilled StarFilled StarFilled StarFilled Star

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

    Filled StarFilled StarFilled StarFilled StarFilled Star

    By Massimiliano D

    •

    Nov 9, 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.

    Filled StarFilled StarFilled StarFilled StarFilled Star

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

    Filled StarFilled StarFilled StarFilled StarFilled Star

    By Marek

    •

    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.

    Filled StarFilled StarFilled StarFilled StarFilled Star

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

    Filled StarFilled StarFilled StarFilled StarStar

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

    Filled StarFilled StarFilled StarFilled StarStar

    By Šejla Č

    •

    Mar 8, 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.

    Filled StarFilled StarFilled StarFilled StarStar

    By Ilya B

    •

    Jan 20, 2019

    The tasks are not well designed for online education

    Filled StarFilled StarFilled StarStarStar

    By Yevhenii 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.

    Filled StarFilled StarFilled StarStarStar

    By Rachapong C

    •

    Jun 17, 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.

    Filled StarFilled StarStarStarStar

    By Manuel M

    •

    Dec 24, 2023

    extremely old content

    Filled StarFilled StarFilled StarFilled StarFilled Star

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

    Filled StarFilled StarFilled StarFilled StarFilled Star

    By Josh 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.

    • Chevron Left
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • Chevron Right

    Coursera Footer

    Technical Skills

    • ChatGPT
    • Coding
    • Computer Science
    • Cybersecurity
    • DevOps
    • Ethical Hacking
    • Generative AI
    • Java Programming
    • Python
    • Web Development

    Analytical Skills

    • Artificial Intelligence
    • Big Data
    • Business Analysis
    • Data Analytics
    • Data Science
    • Financial Modeling
    • Machine Learning
    • Microsoft Excel
    • Microsoft Power BI
    • SQL

    Business Skills

    • Accounting
    • Digital Marketing
    • E-commerce
    • Finance
    • Google
    • Graphic Design
    • IBM
    • Marketing
    • Project Management
    • Social Media Marketing

    Career Resources

    • Essential IT Certifications
    • High-Income Skills to Learn
    • How to Get a PMP Certification
    • How to Learn Artificial Intelligence
    • Popular Cybersecurity Certifications
    • Popular Data Analytics Certifications
    • What Does a Data Analyst Do?
    • Career Development Resources
    • Career Aptitude Test
    • Share your Coursera Learning Story

    Coursera

    • About
    • What We Offer
    • Leadership
    • Careers
    • Catalog
    • Coursera Plus
    • Professional Certificates
    • MasterTrack® Certificates
    • Degrees
    • For Enterprise
    • For Government
    • For Campus
    • Become a Partner
    • Social Impact
    • Free Courses
    • ECTS Credit Recommendations

    Community

    • Learners
    • Partners
    • Beta Testers
    • Blog
    • The Coursera Podcast
    • Tech Blog
    • Teaching Center

    More

    • Press
    • Investors
    • Terms
    • Privacy
    • Help
    • Accessibility
    • Contact
    • Articles
    • Directory
    • Affiliates
    • Modern Slavery Statement
    • Manage Cookie Preferences
    Learn Anywhere
    Download on the App Store
    Get it on Google Play
    Logo of Certified B Corporation
    © 2025 Coursera Inc. All rights reserved.
    • Coursera Facebook
    • Coursera Linkedin
    • Coursera Twitter
    • Coursera YouTube
    • Coursera Instagram
    • Coursera TikTok
    Coursera

    Sign up

    Learn on your own time from top universities and businesses.

    ​
    ​
    Between 8 and 72 characters
    Your password is hidden
    ​

    or

    Already on Coursera?


    I accept Coursera's Terms of Use and Privacy Notice. Having trouble logging in? Learner help center

    This site is protected by reCAPTCHA Enterprise and the Google Privacy Policy and Terms of Service apply.