Readings

This list will be revised and annotated as the semester progresses to reflect, in particular, the topics and papers selected based on class discussions.

Assigned
1.
George D. Gopen and Judith A. Swan. The science of scientific writing. American Scientist, 78:550–558, November-December 1990.
2.
Ian Parberry. How to present a paper in theoretical Computer Science: A speaker’s guide for students. http://larc.unt.edu/ian/pubs/speaker.pdf, 2000.
Other
1.
Sudarshan S. Chawathe. Capstone project proposals—suggestions for deeper explorations. Department of Computer Science, University of Maine. http://cs.umaine.edu/, February 2008.
2.
Gordon Harvey. A brief guide to the elements of the academic essay. Harvard College Writing Program. http://writingprogram.fas.harvard.edu/, 2009.
3.
Atmel Corporation. AVR220: bubble sort. http://www.atmel.com/, May 2002. Atmel 8-bit AVR Microcontroller Application Note.
4.
Herb Sutter. Measuring parallel performance: Optimizing a concurrent queue. Dr. Dobbs Journal, 34(1):37–44, January 2009.
5.
Timothy Furtak, José Nelson Amaral, and Robert Niewiadomski. Using SIMD registers and instructions to enable instruction-level parallelism in sorting algorithms. In Proceedings of the 19th Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA), pages 348–357, San Diego, California, 2007.
6.
Jon L. Bentley and M. Douglas McIlroy. Engineering a sort function. Software–Practice and Experience, 23(11):1249–1265, November 1993.
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.
Bingsheng He, Ke Yang, Rui Fang, Mian Lu, Naga K. Govindaraju, Qiong Luo, and Pedro V. Sander. Relational joins on graphics processors. In Proceedings of the 28th ACM International Conference on Management of Data (SIGMOD), Vancouver, Canada, June 2008.
9.
Naga K. Govindaraju, Jim Gray, Ritesh Kumar, and Dinesh Manocha. GPUTeraSort: High performance graphics coprocessor sorting for large database management. In Proceedings of the 26th ACM International Conference on Management of Data (SIGMOD), Chicago, Illinois, July 2006.
10.
Daniel Cederman and Philippas Tsigas. A practical quicksort algorithm for graphics processors. Technical Report 2008-01, Department of Computer Science and Engineering, Chalmers University of Technology and Göteborg University, Göteborg, Sweden, 2008.
11.
Sang-Won Lee and Bongki Moon. Design of flash-based DBMS: an in-page logging approach. In Proceedings of the 27th ACM International Conference on Management of Data (SIGMOD), pages 55–66, Beijing, China, June 2007.
12.
Gilad Bracha. Generics in the Java programming language. Tutorial. http://java.sun.com/, July 2004.
13.
Ken Thompson. Reflections on trusting trust. Communications of the ACM, 27(8):761–763, August 1984.
14.
Mark C. Hamburg. Two tagless variations on the Deutsch-Schorr-Waite algorithm. Information Processing Letters, 22:179–183, 1986.
15.
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.
16.
Jon Bentley and Don Knuth. Programming pearls: Literate programming. Communications of the ACM, 29(5):364–369, May 1986.
17.
Jon Bentley, Don Knuth, and Doug McIlroy. A literate program. Communications of the ACM, 29(6):471–483, June 1986.
18.
Paul E. Black. Dictionary of algorithms and data structures. http://www.nist.gov/dads/, September 1998.
19.
Lloyd Allison. Suffix trees. http://www.allisons.org/ll/AlgDS/Tree/Suffix/, 2008.