MATE 4995 - Temas en Matematicas: Literate Programming

Course Annoucement

MATE 4995 - Temas en Matematicas: Literate Programming


I believe that the time is ripe for significantly better documentation of programs, and that we can best achieve this by considering programs to be works of literature. Hence, my title: "Literate Programming."

Donald Knuth. "Literate Programming (1984)" in Literate Programming. CSLI, 1992, pg. 99.

Architects study successful designs, as do engineers. Poets and musicians study, alter, imitate pieces by other authors. Programmers seldom read any code, but we expect them to demonstrate extensive skill in their chosen profession. This course will study programs as pieces of literature, and provide tools for critical analysis of the students own and other programs.

These ideas have been long been espoused by Richard P Gabriel, including designing a Masters in Fine Arts in Software. This course will bring parts of this approach to the undergraduate program in computer science.


The student will read, write, and critique fairly large programs. Students will discuss techniques for improving program design, implementation, construction, and maintainance. The "Writer's Workshop" technique will be used to jointly examine and discuss program fragments. The students will develop critical thinking skills, and their creative writing skills.


Humberto Ortiz-Zuazaga


Spring semester 2012


3 hours per week, 3 credits, Pass/Fail grading


CCOM 3034 - Data Structures

Course Schedule

Class will meet Monday and Friday, 11:30 AM - 1:00 PM in NCL A-141.


  1. What is literate programming?
  2. A writer's workshop.
  3. Regular expressions (Chapter 1, Kernighan)
  4. Quicksort (Chapter 3, Bentley)
  5. BioPerl (Chapter 12, Stein)
  6. Gene Sorter (Chapter 13, Kent)
  7. Python dictionary (Chapter 18, Kuchling)
  8. MapReduce (Chapter 23, Dean & Ghemawat)
  9. Software Transactional Memory (Chapter 24, Peyton Jones)
  10. Solaris Turnstiles (Chapter 22, Cantril)
  11. Lisp colinearity (Chapter 33, Hayes)
  12. Emacspeak (Chapter 31, Raman)
  13. eLocutor (Chapter 30, Mehta)
  14. Project presentations and discussions.


Beautiful Code. Andy Oram, Greg Wilson, eds. O'Reilly Media. June 2007.

ISBN 10:
December 2008.
Ebook ISBN:
Ebook ISBN 10:


Assigned works will account for 60% of the grade, participation in class for 10%, and a final project for 30%.

Troglodita approved!

Humberto Ortiz Zuazaga

Most recent change: 2012/1/22 at 06:56
Generated with GTML