Readings

1.
Sudarshan S. Chawathe. Capstone projects and courses: A guide for Computer Science majors. Department of Computer Science, University of Maine. http://cs.umaine.edu/, September 2007.
2.
Gilad Bracha. Generics in the Java programming language. Tutorial. http://java.sun.com/, July 2004. This tutorial is highly recommended for everyone, but especially for those planning to use Java for their projects. The concepts explained here are essential for making good use of generics in Java and it is very painful to learn them the hard way (e.g., while debugging your code).
3.
Ken Thompson. Reflections on trusting trust. Communications of the ACM, 27(8):761–763, August 1984.
4.
Mark C. Hamburg. Two tagless variations on the Deutsch-Schorr-Waite algorithm. Information Processing Letters, 22:179–183, 1986.
5.
Jon L. Bentley and M. Douglas McIlroy. Engineering a sort function. Software–Practice and Experience, 23(11):1249–1265, November 1993.
6.
Martin E. Hellman. An overview of public-key cryptography. IEEE Communications Magazine, 50(5):42–49, May 2002. Originally published in 16(6), November 1978.
7.
Derrick Coetzee. An efficient implementation of Blum, Floyd, Pratt, Rivest, and Tarjan’s worst-case linear selection algorithm. http://moonflare.com/, January 2004.
8.
Jon Bentley and Don Knuth. Programming pearls: Literate programming. Communications of the ACM, 29(5):364–369, May 1986.
9.
Jon Bentley, Don Knuth, and Doug McIlroy. A literate program. Communications of the ACM, 29(6):471–483, June 1986.
10.
Paul E. Black. Dictionary of algorithms and data structures. http://www.nist.gov/dads/, September 1998.