The latest version of this text can be found at https://info340.github.io/.