Rice University - Concurrent Programming in Java
- Offered byCoursera
Concurrent Programming in Java at Coursera Overview
Duration | 19 hours |
Start from | Start Now |
Total fee | Free |
Mode of learning | Online |
Difficulty level | Intermediate |
Official Website | Explore Free Course |
Credential | Certificate |
Concurrent Programming in Java at Coursera Highlights
- Shareable Certificate Earn a Certificate upon completion
- 100% online Start instantly and learn at your own schedule.
- Course 2 of 3 in the Parallel, Concurrent, and Distributed Programming in Java Specialization
- Flexible deadlines Reset deadlines in accordance to your schedule.
- Intermediate Level
- Approx. 19 hours to complete
- English Subtitles: Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, English, Spanish
Concurrent Programming in Java at Coursera Course details
- 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).
Concurrent Programming in Java at Coursera Curriculum
Welcome to the Course!
Course Welcome
General Course Info
Course Icon Legend
Discussion Forum Guidelines
Pre-Course Survey
Mini Project 0: Setup
1.1 Threads
1.2 Structured Locks
1.3 Unstructured Locks
1.4 Liveness
1.5 Dining Philosophers
Demonstration: Locking and Synchronization
1.1 Lecture Summary
1.2 Lecture Summary
1.3 Lecture Summary
1.4 Lecture Summary
1.5 Lecture Summary
Mini Project 1: Locking and Synchronization
Module 1 Quiz
Critical Sections and Isolation
2.1 Critical Sections
2.2 Object Based Isolation (Monitors)
2.3 Concurrent Spanning Tree Algorithm
2.4 Atomic Variables
2.5 Read, Write Isolation
Demonstration: Global and Object-Based Isolation
2.1 Lecture Summary
2.2 Lecture Summary
2.3 Lecture Summary
2.4 Lecture Summary
2.5 Lecture Summary
Mini Project 2: Global and Object-Based Isolation
Module 2 Quiz
Industry Professional on Parallel, Concurrent, and Distributed Programming in Java - Jim Ward, Managing Director
Industry Professional on Concurrency - Dr. Shams Imam, Software Engineer
About these Talks
Actors
3.1 Actors
3.2 Actor Examples
3.3 Sieve of Eratosthenes Algorithm
3.4 Producer-Consumer Problem
3.5 Bounded Buffer Problem
Demonstration: Sieve of Eratosthenes Using Actor Parallelism
3.1 Lecture Summary
3.2 Lecture Summary
3.3 Lecture Summary
3.4 Lecture Summary
3.5 Lecture Summary
Mini Project 3: Sieve of Eratosthenes Using Actor Parallelism
Module 3 Quiz
Concurrent Data Structures
4.1 Optimistic Concurrency
4.2 Concurrent Queue
4.3 Linearizability
4.4 Concurrent Hash Map
4.5 Concurrent Minimum Spanning Tree Algorithm
Demonstration: Parallelization of Boruvka's Minimum Spanning Tree Algorithm
4.1 Lecture Summary
4.2 Lecture Summary
4.3 Lecture Summary
4.4 Lecture Summary
4.5 Lecture Summary
Mini Project 4: Parallelization of Boruvka's Minimum Spanning Tree Algorithm
Exit Survey
Module 4 Quiz
Industry Professionals on Parallelism - Jake Kornblau and Margaret Kelley, Software Engineers, Two Sigma
Industry Professional on Distribution - Dr. Eric Allen, Senior Vice President, Two Sigma
Our Other Course Offerings