GA
Very good explanation of the concepts of locks, and how important data-structures example HashMap are optimized to improve performance

This course teaches learners (industry professionals and students) the fundamental concepts of concurrent programming in the context of Java 8. Concurrent programming enables developers to efficiently and correctly mediate the use of shared resources in parallel programs. By the end of this course, you will learn how to use basic concurrency constructs in Java such as threads, locks, critical sections, atomic variables, isolation, actors, optimistic concurrency and concurrent collections, as well as their theoretical foundations (e.g., progress guarantees, deadlock, livelock, starvation, linearizability). Why take this course? • It is important for you to be aware of the theoretical foundations of concurrency to avoid common but subtle programming errors. • Java 8 has modernized many of the concurrency constructs since the early days of threads and locks. • During the course, you will have online access to the instructor and mentors to get individualized answers to your questions posted on the forums. • Each of the four modules in the course includes an assigned mini-project that will provide you with the necessary hands-on experience to use the concepts learned in the course on your own, after the course ends. The desired learning outcomes of this course are as follows: • Concurrency theory: progress guarantees, deadlock, livelock, starvation, linearizability • Use of threads and structured/unstructured locks in Java • Atomic variables and isolation • Optimistic concurrency and concurrent collections in Java (e.g., concurrent queues, concurrent hashmaps) • Actor model in Java Mastery of these concepts will enable you to immediately apply them in the context of concurrent Java programs, and will also help you master other concurrent programming system that you may encounter in the future (e.g., POSIX threads, .NET threads).

GA
Very good explanation of the concepts of locks, and how important data-structures example HashMap are optimized to improve performance
FH
It could have been better. Course content is very basic and just scratches the surface of concurrent programming. However, fully recommend it for beginners.
SS
It was a really interesting course where the things were presented in a very simplified manner in which I could learn the topics in a short span of time.
VG
I enjoyed the course and the quiz as well. I am able to apply the learning from this course to solve problems at work.
PS
Great course. With minimal effort you can learn about important concepts and see immediate results regarding the actual speedup you can achieve using concurrent programming.
HK
Teach clear and concise. Good to know more about java concurrency. It is interesting to hand on programming such as actors which linked as list.
EE
A lot of my time has been wasted due to a very poor explanation of actors. All it takes is "Actors have their own threads and that is how they are concurrent.
MM
The most challenging part was to pass the miniproject_4. I made some changes in the condition to get the passing score. Thank you!
LF
Lo consiglio a tutti, Vorrei soltanto che gli argomenti fossero affrontati più approfonditamente dal punto di vista teorico
CC
As a course for introduction it is good. But it mentioned very little of how we implement all these concept like isolation and actors. I wanna see more of it.
JX
The course overall is good, but the autograder of assignment can be improved so that the students will not get frustrated to their answer for such long time
PB
Amazing course. Especially for those who want to really understand the foundations behind multithreading and concurrency in Java. As always, Professor Sarkar is brilliant!