Skip to content

A set of practice and demo code of Programming with Google Go Specialization on Coursera

License

Notifications You must be signed in to change notification settings

brianchiang-tw/Programming-with-Google-Go-Specialization

Repository files navigation

Programming with Google Go Specialization

A set of practice and demo code of Programming with Google Go Specialization on Coursera

Course website:

https://www.coursera.org/specializations/google-golang

Course title:

Programming with Google Go Specialization

Advance your computer programming career. Develop efficient applications with Google's innovative programming language, Go!

Table of content

Course_#1 :Getting Started with Go

  1. Week_1_Introduction to the specialization
  • Overview and why should we study Go
  • Installing Go development environment, and Go tool
  • Objects
  • Variables as well as variable initialization
  • Workspaces & packages
  • Week_1 Quiz
  • Project: Hello World
  1. Week_2_Basic data types
  • Pointers
  • Variable scope
  • Memory allocation as well as Garbage collection (i.e., GC)
  • Comment and Basic output
  • Numerical primitive data types: Ints, Floats, Strings
  • Constants
  • Control flow and Basic input
  • Week_2 Quiz
  • Project: String operation (find-"ian")
  1. Week_3_Composite Data Types
  • Arrays
  • Slices (window of allocated memory spaces)
  • Variable slices
  • Hash tables and Maps
  • Structure ( Golang Struct )
  • Week_3 Quiz
  • Project: Slice operation
  1. Week_4_Protocol and Formats
  • IETF Request for Comments (aka RFC)
  • Java Script Object Notation (aka JSON)
  • File operation
  • I/O utility and os package
  • Project: Make a JSON
  • Final project: Read a file and print content (read)

Course_#2 :Functions, Methods, and Interfaces in Go

  1. Week_1_Functions and organization
  • Modularization and function
  • Function parameters as well as return values
  • Call by value vs Call by reference
  • Passing arrays and slices
  • Guideline for functions
  • Week_1 Quiz
  • Project: Implement Bubble Sort
  1. Week_2_Function types
  • First-class values
  • Use function as return
  • Variadic parameters
  • Deferred statement
  • Week_2 Quiz
  • Project: Implement physic displacement formula
  1. Week_3_Object orientation in Go
  • Classes and encapsulation
  • Support for classes
  • Point and reference
  • Pass a pointer as well as dereference a pointer
  • Week_3 Quiz
  • Project: Animal
  1. Week_4_Interfaces for abstraction
  • Polymorphism
  • Interfaces
  • Concrete type
  • Type assertions
  • Error handling
  • Week_4 Quiz
  • Project: Animal behavoir simulation

Course_#3 :Concurrency in Go

  1. Week_1_Why use concurrency
  • Parallel execution as well as concurrent execution
  • Von neumann bottleneck as well as CPU Architecture
  • Moore's Law
  • Power wall
  • Hiding latency
  • Week_1 Quiz
  • Project: Mini essay and Moore's Law and its limitation
  1. Week_2_Basic knowledge about concurrency
  • Processes
  • Scheduling
  • Treads and go-routine
  • Interleavings
  • Shared variable as well as race condition
  • Week_2 Quiz
  • Project: Explain and demo race condition
  1. Week_3_Thrads in Go
  • Go-routines
  • Synchronization as well as blocking/non-blocking
  • Wait groups
  • Thread communication
  • Channels
  • Buffered and non-buffered channels
  • Week_3 Quiz
  • Project: Implement sorting with 4 different go-routines
  1. Week_4_Synchronized Communication
  • Blocking on channels
  • Select syntax with channels
  • Mutual exclusion, lock, and mutex
  • Depth First Search (i.e., DFS) Traversal
  • Starvation and Deadlock
  • Classic Dining Philosopher Problem
  • Week_4 Quiz
  • Project: Implement dining philosopher model

About

A set of practice and demo code of Programming with Google Go Specialization on Coursera

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages