About this Course
4.7
59 ratings
12 reviews
Specialization
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Hours to complete

Approx. 12 hours to complete

Suggested: 12 hours/week...
Available languages

English

Subtitles: English
Specialization
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Hours to complete

Approx. 12 hours to complete

Suggested: 12 hours/week...
Available languages

English

Subtitles: English

Syllabus - What you will learn from this course

Week
1
Hours to complete
3 hours to complete

MODULE 1: Why Use Concurrency?

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....
Reading
2 videos (Total 40 min), 5 readings, 2 quizzes
Video2 videos
M1.2.1-1v314m
Reading5 readings
M1.1.1 - Parallel Execution2m
M1.1.2 - Von Neumann Bottleneck2m
M1.1.3 - Power Wall2m
M1.2.1 - Concurrent vs Parallel2m
M1.2.2 - Hiding Latency2m
Quiz1 practice exercise
Module 1 Quiz14m
Week
2
Hours to complete
3 hours to complete

MODULE 2: CONCURRENCY BASICS

This module looks at basic concurrency concepts and race conditions in preparation for a discussion of threads coming up in the next module....
Reading
2 videos (Total 36 min), 5 readings, 2 quizzes
Video2 videos
M2.2.1-2v315m
Reading5 readings
M2.1.1- Processes2m
M2.1.2 - Scheduling2m
M2.1.3 - Threads and Goroutines2m
M2.2.1 - Interleavings2m
M2.2.2 - Race Conditions2m
Quiz1 practice exercise
Module 2 Quiz14m
Week
3
Hours to complete
3 hours to complete

MODULE 3: THREADS IN GO

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. ...
Reading
3 videos (Total 53 min), 7 readings, 2 quizzes
Video3 videos
M3.2.1-2v316m
M3.3.1-3v323m
Reading7 readings
M3.1.1 - Goroutines2m
M3.1.2 - Exiting Goroutines2m
M3.2.1 - Basic Synchronization2m
M3.2.2 - Wait Groups2m
M3.3.1 - Communication2m
M3.3.2 - Blocking on Channels2m
M3.3.3 - Buffered Channels2m
Quiz1 practice exercise
Module 3 Quiz14m
Week
4
Hours to complete
3 hours to complete

MODULE 4: SYNCHRONIZED COMMUNICATION

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....
Reading
3 videos (Total 55 min), 8 readings, 2 quizzes
Video3 videos
M4.2.1-3v318m
M4.3.1-3v325m
Reading8 readings
M4.1.1 - Blocking on Channels2m
M4.1.2 - Select2m
M4.2.1 - Mutual Exclusion2m
M4.2.2 - Mutex2m
M4.2.3 - Mutex Methods2m
M4.3.1 - Once Synchronization2m
M4.3.2 - Deadlock2m
M4.3.3 - Dining Philosophers2m
Quiz1 practice exercise
Module 4 Quiz14m
4.7
12 ReviewsChevron Right

Top Reviews

By VVOct 13th 2018

The course did what was intended: Teaching the things that makes Go programming special.\n\nI mean, simple but powerful language constructs and Concurrency

By YTNov 20th 2018

Well-organized course and good homeworks. The course is very useful for programmers who wanna learn go and refresh memories about concurrency.

Instructor

Avatar

Ian Harris

Professor
Department of Computer Science

About University of California, Irvine

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

About the Programming with Google Go Specialization

This specialization introduces the Go programming language from Google and provides learners with an overview of Go's special features. Upon completing the three-course sequence, learners will have gained the knowledge and skills needed to create concise, efficient, and clean applications using Go....
Programming with Google Go

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • 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. If you only want to read and view the course content, you can audit the course for free.

More questions? Visit the Learner Help Center.