Skip to content
Zurich, Switzerland, November 2019
Zurich, Switzerland, November 2019
On this page

Introduction to the Go Programming Language

XXX

<p>The <i>« PL190µ Introduction to the Go Programming Language »</i> micro-course proposes an introduction to the <b>Go programming language</b>, a compiled C-like language created by a team at Google. It provides an excellent support for <b>network, system, concurrent and distributed</b> programming.</p>

<p>I gave this micro-course once at the <a href="https://www.ecam.be">ECAM Brussels Engineering School</a> (ECAM), in 2020, as a part of the operating system course. The course is taught in French, but all the material is available in English and <a href="/fr/teaching/ucourses/golang/">in French</a>.</p>


<h2>Documents</h2>

<ul>
  <li><a href="/files/ecam/general/ECAM-Competency-Based-Assessment-Slides.pdf">Competency Based Assessment <img src="/images/slides.png" width="16" height="16" alt="Slides"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Competencies-List.pdf">Grid of skills to acquire <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
</ul>


<h2>Theory</h2>

<ul>
  <li><a href="/files/ucourses/golang/IntroGo-Session1-Slides.pdf">Session 1: Variable, Control Flow and Data Structure <img src="/images/slides.png" width="16" height="16" alt="Slides"></a></li>

  <li><a href="/files/ucourses/golang/IntroGo-Session2-Slides.pdf">Session 2: Structure, Method, Interface and Error Handling <img src="/images/slides.png" width="16" height="16" alt="Slides"></a></li>
</ul>


<h2>Practice</h2>

<ul>
  <li><a href="/files/ucourses/golang/IntroGo-Quizz1.pdf">Quizz 1: Go programming <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Quizz2.pdf">Quizz 2: Go compiler errors <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Coding1.pdf">Coding 1: My first Go program <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Coding2.pdf">Coding 2: Data manipulation <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Coding3.pdf">Coding 3: Contact book <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Coding4.pdf">Coding 4: Iterator design pattern <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Coding5.pdf">Coding 5: Command interpreter <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Mission1.pdf">Mission 1: Go Hello World <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Mission2.pdf">Mission 2: Compile-time errors <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Mission3.pdf">Mission 3: C to Go translation <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
  <li><a href="/files/ucourses/golang/IntroGo-Project1.pdf">Project 1: Simple command-line interface application <img src="/images/pdf.png" width="16" height="16" alt="PDF"></a></li>
</ul>


<h2>Resources</h2>

<h3>Reference books</h3>

<ul>
  <li>George Ornbo. (2017). Sams Teach Yourself Go in 24 Hours: Next Generation Systems Programming with Golang. Pearson. <small>(ISBN: 978-0-672-33803-8)</small></li>
  <li>Caleb Doxsey. (2012). An Introduction to Programming in Go. <small>(ISBN: 978-1-478-35582-3)</small></li>
</ul>

<h3>Online resources</h3>

<ul>
  <li><a href="https://golang.org">Official website</a> of the Go programming language.</li>
  <li><a href="https://play.golang.org">The Go Playground</a> to run Go programs online.</li>
</ul>