Homework 2

For homework 2, you will implement a gopher server! Why? Because it’s important to keep the dream alive and it’s a great way to get into a wide variety of open source technology and tools. While you may discuss technical challenges with your colleagues, this is an individual assignment. In terms of implementation languages you will have several choices:

  • Python (3.5)
  • Ruby
  • Go
  • C/C++
  • Java
  • Scala
  • Any open source Lisp dialect

I’m also open to alternate suggestions for implementation languages. Just check with me first.

The program you write for this homework will be graded based on how much of the spec it implements and general ambitiousness. For example, a blocking, single-threaded program written in a common scripting language that implements the spec completely may receive the same grade as an async program written in a more obscure language.

You will also include a makefile in your submission that has two targets: make compile and make serve.