What are the books prerequisites?
The book assumes relatively little of the student. It helps to have mathematical maturity of the sort that a traditional discrete mathematics course tries to bestow. The book sometimes mentions the Halting Problem. Motivated students have not been significantly affected by not having had this material before. I continue to remove unnecessary dependencies whenever I encounter them.The book does assume that a student can write rudimentary programs in Scheme. Unlike some other texts it does not begin with a Scheme tutorial because each instructor will tend to have their own preferred way of teaching Scheme. On the Web, you can find a handy list of introductory Scheme programming texts. If you need help choosing amongst these, do contact me.My own course does not expect knowledge of Scheme. I teach it in three introductory Scheme lectures: one on the rudiments, starting with simple expressions up to first-order functions, including recursion; the second on conditionals and data structures;
The book assumes relatively little of the student. It helps to have mathematical maturity of the sort that a traditional discrete mathematics course tries to bestow. The book sometimes mentions the Halting Problem. Motivated students have not been significantly affected by not having had this material before. I continue to remove unnecessary dependencies whenever I encounter them. The book does assume that a student can write rudimentary programs in Scheme. Unlike some other texts it does not begin with a Scheme tutorial because each instructor will tend to have their own preferred way of teaching Scheme. On the Web, you can find a handy list of introductory Scheme programming texts. If you need help choosing amongst these, do contact me. My own course does not expect knowledge of Scheme. I teach it in three introductory Scheme lectures: one on the rudiments, starting with simple expressions up to first-order functions, including recursion; the second on conditionals and data structure