When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 4 modules in this course
Learn how to implement concurrent programming in Go. Explore the roles of channels and goroutines in implementing concurrency. Topics include writing goroutines and implementing channels for communications between goroutines. Course activities will allow you to exercise Go’s capabilities for concurrent programming by developing several example programs.
This course introduces the concept of concurrency in Go. The first module sets the stage by reviewing the physical factors that can restrict microprocessor performance increases in the future.
What's included
2 videos5 readings1 assignment1 peer review
Show info about module content
2 videos•Total 40 minutes
M1.1.1-3v3•26 minutes
M1.2.1-1v3•15 minutes
5 readings•Total 10 minutes
M1.1.1 - Parallel Execution•2 minutes
M1.1.2 - Von Neumann Bottleneck•2 minutes
M1.1.3 - Power Wall•2 minutes
M1.2.1 - Concurrent vs Parallel•2 minutes
M1.2.2 - Hiding Latency•2 minutes
1 assignment•Total 14 minutes
Module 1 Quiz•14 minutes
1 peer review•Total 120 minutes
Module 1 Activity•120 minutes
MODULE 2: CONCURRENCY BASICS
Module 2•3 hours to complete
Module details
This module looks at basic concurrency concepts and race conditions in preparation for a discussion of threads coming up in the next module.
What's included
2 videos5 readings1 assignment1 peer review
Show info about module content
2 videos•Total 36 minutes
M2.1.1-3v3•21 minutes
M2.2.1-2v3•15 minutes
5 readings•Total 10 minutes
M2.1.1- Processes•2 minutes
M2.1.2 - Scheduling•2 minutes
M2.1.3 - Threads and Goroutines•2 minutes
M2.2.1 - Interleavings•2 minutes
M2.2.2 - Race Conditions•2 minutes
1 assignment•Total 14 minutes
Module 2 Quiz•14 minutes
1 peer review•Total 120 minutes
Module 2 Activity•120 minutes
MODULE 3: THREADS IN GO
Module 3•3 hours to complete
Module details
In this module, you’ll work with threaded goroutines and explore the benefits of synchronization. The week’s assignment has you using a threaded approach to create a program that sorts integers via four separate sub-arrays, then merging the arrays into a single array.
What's included
3 videos7 readings1 assignment1 peer review
Show info about module content
3 videos•Total 53 minutes
M3.1.1-2v3•12 minutes
M3.2.1-2v3•17 minutes
M3.3.1-3v3•24 minutes
7 readings•Total 14 minutes
M3.1.1 - Goroutines•2 minutes
M3.1.2 - Exiting Goroutines•2 minutes
M3.2.1 - Basic Synchronization•2 minutes
M3.2.2 - Wait Groups•2 minutes
M3.3.1 - Communication•2 minutes
M3.3.2 - Blocking on Channels•2 minutes
M3.3.3 - Buffered Channels•2 minutes
1 assignment•Total 14 minutes
Module 3 Quiz•14 minutes
1 peer review•Total 120 minutes
Module 3 Activity•120 minutes
MODULE 4: SYNCHRONIZED COMMUNICATION
Module 4•3 hours to complete
Module details
This last module ties together the various features – including threads, concurrency, and synchronization – covered in this course. The week’s programming assignment requires you to use concurrent algorithms in the implementation of the “dining philosopher’s problem and then address the ensuing synchronization issues.
What's included
3 videos8 readings1 assignment1 peer review
Show info about module content
3 videos•Total 55 minutes
M4.1.1-2v3•12 minutes
M4.2.1-3v3•18 minutes
M4.3.1-3v3•25 minutes
8 readings•Total 16 minutes
M4.1.1 - Blocking on Channels•2 minutes
M4.1.2 - Select•2 minutes
M4.2.1 - Mutual Exclusion•2 minutes
M4.2.2 - Mutex•2 minutes
M4.2.3 - Mutex Methods•2 minutes
M4.3.1 - Once Synchronization•2 minutes
M4.3.2 - Deadlock•2 minutes
M4.3.3 - Dining Philosophers•2 minutes
1 assignment•Total 14 minutes
Module 4 Quiz•14 minutes
1 peer review•Total 120 minutes
Module 4 Activity•120 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
Since 1965, the University of California, Irvine has combined the strengths of a major research university with the bounty of an incomparable Southern California location. UC Irvine’s unyielding commitment to rigorous academics, cutting-edge research, and leadership and character development makes the campus a driving force for innovation and discovery that serves our local, national and global communities in many ways.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.7
801 reviews
5 stars
76.77%
4 stars
16.85%
3 stars
3.49%
2 stars
1.49%
1 star
1.37%
Showing 3 of 801
D
DG
5·
Reviewed on May 3, 2025
Exceptional. The instructor was very good and I liked the exercises at the end of each subject. Very clear introduction to go (I come from C, so it was very straight forward)
C
CA
5·
Reviewed on Oct 11, 2018
This professor is incredible. Always bringing up some examples that might make us scratch our heads and making everything much clear.
S
SI
5·
Reviewed on Jan 29, 2020
Really helpful to understand and implement concurrent process in golang. Its clear my concept and idea about concurrency. Thanks again
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.