MATE 4995 - Temas en Matematicas: Literate Programming

Course Annoucement

MATE 4995 - Temas en Matematicas: Literate Programming

Rationale

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.

Description

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.

Professor

Humberto Ortiz-Zuazaga

Term

Spring semester 2012

Credits

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

Prerequisites

CCOM 3034 - Data Structures

Course Schedule

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

Outline

  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.

Textbook

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

ISBN:
978-0-596-51004-6.
ISBN 10:
0-596-51004-7.
Ebook:
December 2008.
Ebook ISBN:
978-0-596-15843-9.
Ebook ISBN 10:
0-596-15843-2.

Evaluation

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
humberto@hpcf.upr.edu

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