Latest Courses
ISTQB Artificial Intelligence Tester Sample ExamsCheck course
JAVA Programming Online Practice ExamCheck course
Programming for Kids and Beginners: Learn to Code in PythonCheck course
Practice Exams | Codeigniter 4 developer certificationCheck course
WordPress Practice Tests & Interview Questions (Basic/Adv)Check course
Git &Github Practice Tests & Interview Questions (Basic/Adv)Check course
Machine Learning and Deep Learning for Interviews & ResearchCheck course
Laravel | Build Pizza E-commerce WebsiteCheck course
101 - F5 CERTIFICATION EXAMCheck course
Master Python by Practicing 100 QuestionCheck course
ISTQB Artificial Intelligence Tester Sample ExamsCheck course
JAVA Programming Online Practice ExamCheck course
Programming for Kids and Beginners: Learn to Code in PythonCheck course
Practice Exams | Codeigniter 4 developer certificationCheck course
WordPress Practice Tests & Interview Questions (Basic/Adv)Check course
Add to wishlistAdded to wishlistRemoved from wishlist 0
Add to compare
8.5/10 (Our Score)
Product is rated as #49 in category Data Structures and Algorithms

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 …

Instructor Details

Viktor Kuncak is an associate professor in the EPFL School of Computer and Communication Sciences, where, since 2007, he leads the Laboratory for Automated Reasoning and Analysis (http://lara.epfl.ch). He works in formal methods with emphasis on algorithms and tools, such as Leon tool for verification and synthesis of Scala programs (http://leon.epfl.ch). His community service include co-chairing CAV 2017, SYNT 2015, FMCAD 2014, and VMCAI 2012. He also co-led an international COST Action to establish standardized formats for verification and synthesis (Rich Model Toolkit). His proposal on Implicit Programming, aiming to bridge the gap between human goals and their computational realizations, was funded in 2012 by a European Research Council (ERC) starting grant. Viktor Kuncak received a PhD degree from the Massachusetts Institute of Technology (MIT) in 2007.

Specification: Parallel programming

Duration

16 hours

Year

2016

Level

Intermediate

Certificate

Yes

Quizzes

Yes

47 reviews for Parallel programming

4.3 out of 5
25
16
3
1
2
Write a review
Show all Most Helpful Highest Rating Lowest Rating
  1. Marcelo f

    Quite challenging, bot worth every effort.

    Helpful(0) Unhelpful(0)You have already voted this
  2. Shiyan C

    Wish we could have more assignments and test cases!

    Helpful(0) Unhelpful(0)You have already voted this
  3. Gregory E

    For this course you should have Advanced English level. Cause sentesce construction is so difficult and words so unusual that i had to some times google what i have to do.

    Helpful(0) Unhelpful(0)You have already voted this
  4. Oliinyk V

    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.

    Helpful(3) Unhelpful(0)You have already voted this
  5. Marc K

    The homework assignments are a bit hard, they require a lot of concentration time to make some progress.

    Helpful(0) Unhelpful(0)You have already voted this
  6. Fernando R

    The course provides a deep dive into Parallel Programming with Scala, and is well worth the time invested.

    Helpful(0) Unhelpful(0)You have already voted this
  7. Ashvin L

    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.

    Helpful(0) Unhelpful(0)You have already voted this
  8. Jose M N F

    Great course!

    Helpful(0) Unhelpful(0)You have already voted this
  9. Michael D

    I learned a lot about improving algorithms to run in a parallelized manner which is more efficient when having more than one cpu/computers

    Helpful(0) Unhelpful(0)You have already voted this
  10. Glendon K

    The code examples in this course are extremely convoluted. In particular, please don’t put multiple statements per line…

    Helpful(0) Unhelpful(0)You have already voted this
  11. Artur R

    This is one of the most dense and solid courses on Coursera and I really enjoyed tackling it

    Helpful(0) Unhelpful(0)You have already voted this
  12. Du L

    Very challenging course, the assignments are more about practising using parallel programming, would be better to design an assignment to implement the parallel programming.

    Helpful(0) Unhelpful(0)You have already voted this
  13. Fernando

    Great insight to the Parallel programming in Scala.

    Helpful(0) Unhelpful(0)You have already voted this
  14. Evgenii S

    For now, the worst course in Specialization.

    Helpful(0) Unhelpful(0)You have already voted this
  15. Stanislav T

    The topic is well explained in the videos and the assignments are challenging and fun. I really enjoyed how they (the assignments) are usually put in a context, e.g. they are part of some project and you can see some outcome.

    Helpful(0) Unhelpful(0)You have already voted this
  16. Yiran W

    just one point to improve: some lib in Scala are not be told to install and use

    Helpful(0) Unhelpful(0)You have already voted this
  17. VICTOR A

    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.

    Helpful(1) Unhelpful(0)You have already voted this
  18. Josue G T I

    Very interesting, with difficult examples and task. Spent a lot of time analyzing weekly assignments but it was totally worth.

    Helpful(0) Unhelpful(0)You have already voted this
  19. Paulo R d O C

    Hard course, but gives good insights about the challenges and solutions for parallel programming.

    Helpful(0) Unhelpful(0)You have already voted this
  20. Massimiliano D

    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.

    Helpful(0) Unhelpful(0)You have already voted this
  21. Joshua S

    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.

    Helpful(0) Unhelpful(0)You have already voted this
  22. Simon

    exercise are too heavy

    Helpful(0) Unhelpful(0)You have already voted this
  23. Christoph K

    Very interesting material, especially the prefix sum algorithms about, how to transform a sequential problem into a parallel problem.

    Helpful(0) Unhelpful(0)You have already voted this
  24. Bruno M

    Very good introductory theoretical foundation for parallell algorithms, and background for the Big Data Analysis with Scala and Spark course.

    Helpful(0) Unhelpful(0)You have already voted this
  25. Anton B

    it would be great to have a few more pointers how to debug code in parallel

    Helpful(0) Unhelpful(0)You have already voted this
  26. Denys L

    Nice and complicated

    Helpful(0) Unhelpful(0)You have already voted this
  27. Dean T

    Needs to be updated for more modern versions of Scala.

    Helpful(0) Unhelpful(0)You have already voted this
  28. Ilya B

    The tasks are not well designed for online education

    Helpful(1) Unhelpful(0)You have already voted this
  29. Alexey K

    It would be great to add some popular frameworks and some basics of reactive programming

    Helpful(0) Unhelpful(0)You have already voted this
  30. Sviridenko K

    Amazing practice assignments! It was very interesting to solve them.

    Helpful(0) Unhelpful(0)You have already voted this
  31. Marcin Z

    First 3 weeks were cool, but the last week was somehow rushed and the assignment did not involve any parallel programming.

    Helpful(2) Unhelpful(0)You have already voted this
  32. Joel V

    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.

    Helpful(0) Unhelpful(0)You have already voted this
  33. Artem B

    Great course with very entertaining exercises!

    Helpful(0) Unhelpful(0)You have already voted this
  34. Leonardo L e C

    Very good!

    Helpful(0) Unhelpful(0)You have already voted this
  35. Santiago A

    Unbelievable. This course is a must for those who are looking to work in depth with data parallel intensive applications like Spark and want to understand the mathematics underlying the parallel computing. Thank you very much Viktor and Aleksandar!

    Helpful(0) Unhelpful(0)You have already voted this
  36. G. U M

    best course

    Helpful(0) Unhelpful(0)You have already voted this
  37. Sanjeev R

    Excellent

    Helpful(0) Unhelpful(0)You have already voted this
  38. Shi Y

    Some instruction is pretty confusing

    Helpful(0) Unhelpful(0)You have already voted this
  39. Alexey P

    It would be great to have some tests for understanding algorithms (like in algorithms course), not only practice programming assignments. Assignments are really interesting but can’t verify your understand material or not. Also it is possible to pass assignment event if you have mistakes in the code.

    Helpful(0) Unhelpful(0)You have already voted this
  40. Alan A C

    Interesting course but math part is too academic and boring. It’ll be more useful if focused only in real use cases.

    Helpful(0) Unhelpful(0)You have already voted this
  41. Daniel B

    Good course with a lot of interesting ideas and explanations. The reason I gave it a 4 and not a 5 is that I think it would have been better without involving instructors’ own library on top of Scala instead of teaching Scala level constructs directly. While I appreciate the notion of teaching general parallel programming ideas, introducing one’s own constructs to promote it seems unnecessary at the very least, these constructs’ implementation should have been thoroughly explained in the course.

    Helpful(0) Unhelpful(0)You have already voted this
  42. Gabriele A

    Really cool course. I’m enjoying scala as a language as it has many simple methods to achieve complex goals, including parallelization, however this course also presents parallelism in a rawer fashion explaining in depth some of the techniques to parallelize seemingly sequential only tasks. Last week’s exercise is quite long, and albeit being a truly beautiful project, most of the implementation is not strictly related to parallel programming. In any case a totally good course!

    Helpful(0) Unhelpful(0)You have already voted this
  43. Rohan V

    More emphasis on Parallel Data Structures is needed, course is relatively simple as compared to previous courses from same specialisation

    Helpful(0) Unhelpful(0)You have already voted this
  44. Patrik

    The feedback from the instructors could be more timely. Otherwise a great course

    Helpful(0) Unhelpful(0)You have already voted this
  45. Mehdi

    Excellent course !!! A must take in my opinion for a better and deep understanding of parallel programming.

    Helpful(0) Unhelpful(0)You have already voted this
  46. Jarl A H

    I really don’t liked how you are forced to implement a logic you can barely understand by looking at the minimal assignment text. I mean, what the heck. I thought this course (or courses) were supposed to teach you specific subjects like parallel programming. Not how you compute the centerX based on four quads in a fork? I mean. come one. At least explain enough so that it’s at least remotely possible to implement the core logic in the start of week 4. I mean, how should I know that the size of a fork is ? (yup, can’t tell if even if you pointed a gun at me)

    Helpful(0) Unhelpful(0)You have already voted this
  47. Shriraj B

    The content presented definitely is good, but in the assignment the things used could be explained in the lectures for better understanding of learners.

    Helpful(0) Unhelpful(0)You have already voted this

    Add a review

    Your email address will not be published. Required fields are marked *

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    Price tracking

    Java Code Geeks
    Logo
    Register New Account
    Compare items
    • Total (0)
    Compare