Go

You'll implement all the labs in Go. The Go web site contains lots of tutorial information. You should use Go 1.15 or any later version. You can check your Go version by running go version.

We recommend that you work on the labs on your own machine, so you can use the tools, text editors, etc. that you are already familiar with. Many editors have plug-ins for Go, e.g. go-plus for Atom and the officially-supported Go extension for VS Code. Some commercial IDEs like GoLand have free educational licenses. We are happy to provide support over Canvas and in office hours for helping you set up tooling.

As a fallback, you can work on the labs on CS department machines, but we do not recommend this
option.

macOS

You can use Homebrew to install Go. After installing Homebrew, run brew install go.

if you counter errors like ld: warning: -bind_at_load is deprecated on macOS, upgrade Go to higher versions (>= 1.21.5)

Linux

Depending on your Linux distribution, you might be able to get an up-to-date version of Go from the package repository, e.g. by running apt install golang. Otherwise, you can manually install a binary from Go's website. First, make sure that you're running a 64-bit kernel (uname -a should mention "x86_64 GNU/Linux"), and then run:

$ wget -qO- https://go.dev/dl/go1.17.6.linux-amd64.tar.gz | sudo tar xz -C /usr/local

You’ll need to make sure /usr/local/go/bin is on your PATH.
You can do this by adding export PATH=$PATH:/usr/local/go/bin to your
shell’s init file ( commonly this is one of .bashrc, .bash_profile or .zshrc)

Windows

It seems to be painful or impossible to get the labs to work correctly on Windows or on Windows Subsystem for Linux (WSL). Use a Mac, or Linux. Install with virtual machines if needed.