This is the Fall 2009 home page for the course CS 64: Discrete Structures: Introduction to analytic and formal methods of computer science with practical examples, including analysis of data structures, recursion relations, proof methods, and logic programming, (Credit not given for more than one of CS 64, MATH 52 opr 54.) Corequisite: One semester of programming, MATH 20 or 22.

(N.B., the content of this page changes frequently.)

General Information:

Required Textbooks:

During the first twelve weeks of the course we will discuss topics described in Edward Bender's and Gill Williamson's text books, listed below. During the last three weeks (or so), we will study one of the most influential papers in computer science: Alan Turing's “On computable numbers, with an application to the Entscheidungsproblem,” published in 1936. Although, this paper is normally only accessible to graduate students, Petzold's recent commentary helps explain this scientific landmark to the general reader.
  1. Edward A. Bender and S. Gill Williamson, A Short Course in Discrete Mathematics, Dover, Mineola, NY, 2005. (The entire content of this book can be downloaded from the first author's web site: http://math.ucsd.edu/~ebender/DiscreteText1/index.html)
  2. Edward A. Bender and S. Gill Williamson, Mathematics for Algorithm and Systems Analysis, Dover, Mineola, NY, 2005. (The entire content of this book can also be downloaded from the first author's web site: http://math.ucsd.edu/~ebender/DiscreteText2/index.html)
  3. Charles Petzold, The Annotated Turing: A Guided Tour through Alan Turing's Historic Paper on Computatbility and the Turing Machine, Wiley, New York, 2008,
  4. (available at the UVM Bookstore, and from amazon.com, barnesandnoble.com, and borders.com.)

Assigned Reading:

  1. Download the two textbooks by Bender and Williamson in their entirety, and read I:BF1, that is, Section 1 of Unit BF (Boolean Functions) in the first textbook: A Short Course in Discrete Mathematics, by Wednesday, September 2, 2009.
  2. Read I:BF2 by Wednesday, September 9, 2009.
  3. Read the syllabus for CS 64 and UVM's Code of Academic Integrity and I:Lo1 by Friday, September 11, 2009.
  4. Read I:Lo2 by Monday, September 14, 2009.
  5. Read I:SF1 and I:SF2 by Friday, October 2, 2009.
  6. Read Aaron F. Archer's ``A Modern Treatment of the 15 Puzzle.'' [ps], by Friday, October 16, 2009. (Also available from www.jstore.org, via this link. If you are on a computer in UVM's network domain, you should be able to download a pdf image of the published article from the previous site by clicking PDF on the right menu.)
  7. To complete our unit on functions please read II:Fn1, II:Fn2. and II:Fn3, if you have not already done so.
  8. For our discussion on counting tricks review I:SF1 and I:SF2 (Example 12), and read II:CF1, II:CF2 and II:CF3. (The latter section is essentially a rewording of I:SF1 with the addition of multinomial coefficients.) Please try to read these sections by Friday, Oct. 30, 2009.
  9. Read Unit I:NT1 and I:NT2 by Friday, Nov. 6, 2009.

Homework Assignments:

Handouts:

Most handouts are availabe in pdf format, a page description language supported by Adobe Acrobat. If you do not have Acrobat Reader for your personal computer, you can download it for free from Adobe.

Scheme Programming:

Although the emphasis of this course is analytic, it will be convenient on occasion to illustrate our findings with short computer programs. In this regard, I recommend the DrScheme implementation of the scheme programming language.

Other Links:


Copyright (C) 2009 to Robert R. Snapp


Return to Robert Snapp's Home Page or to the Department of Computer Science Home Page

Last modified at 12:09 AM on 9/4/09.