SI 413 Fall 2023 / Project

This is the archived website of SI 413 from the Fall 2023 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.


Go is a programming language that was developed by Google and realeased just in 2009. The basic goals of Go were to havethe speed of C combined with the ease of programming of Python. That is, to be able to compile really, really fast code, but not have to worry about seg faults and all the other nasties that normally come with it. Go also has built-in support for concurrency with what are called goroutines.

Useful Links


For this project we'll use golang version 1.10, the go package maintained in the ubuntu repositories.

Everything you need is already installed on CS department lab machines.

To install on your virtual machine, follow these steps:

  1. Run sudo apt install -y golang

How I will run your code

Put your program in a file called proj.go. I will run it using the universal "go" command, by typing

go run proj.go

from within the CS linux environment.

Phase 1 Requirements

For this language, you need to implement modifications B, C, D, F, G, H, and I. See the Phase 1 page for details on what this means.

Phase 2

See the Phase 2 Page for the list of suggested problems. Of the ones listed, I recommend the following as being most well-suited for go:

  1. Make
  2. Image Creator
  3. TODO list
  4. Game with hidden agenda
  5. Sports Ticker
  6. Rock, Paper, Scissors
  7. Music Maker
  8. ??? (you choose!)