This is a bunch of homework for my N211 class. Feel free to use and modify this as you see fit.