Ana RamÃrez Chang
CS 302
Assignment 8 (Textbook selection)
- I looked over the following books as I was selecting a textbook:
- How to Design Programs: An Introduction to Programming and Computing by Matthias Felleisen et .al. MIT Press, 2001
- Structure and Interpretation of Computer Programs by Harold Abelson et .al. MIT Press, 1996
- Introduction to Programming Using SML by Michael R. Hansen & Hans Rischel. Addison-Wesley, 1999
- The Functional Approach to Programming by Guy Cousineau and Michel Mauny. Translated by K. Callaway. Cambridge University Press, 1998
Based on the table of contents, The Functional Approach to Programming (Caml book) looks like it covers my topics best, and it uses Caml which is another flavor of ML (I have been using SML in my examples) so it would match the exercises and exam I have written, but I was not able to track down a copy in time to review it for this assignment. For this assignment I reviewed How to Design Programs (Dr. Scheme book) .
How to Design Programs is the book Ras was talking about when he came to our class. Matthias Felleisen and his group at Rice created a programming environment that uses Scheme as the base for teaching introductory programming and computer science concepts. The environment supports a set of mim-scheme languages, each one a subset of scheme, with progressively more constructs from Scheme. As students learn more constructs in Scheme, they write code in a mimi-language that supports more constructs. This way, when the student gets an error message, it will not refer to a construct she has not learned about because she is using a language that has the same constructs she has learned.
- completeness of coverage of your course material
The Dr. Scheme book does not cover my topics very well, it is missing OOP, streams and lazy evaluation. Structure and Interpretation of Computer Programs (SICP) does the best job covering my topics with the exception of types. The SML book has a similar coverage to the Dr. Scheme book.
- consistency with your approach to teaching the material and with the course activities you have designed
Based on the table of contents, I think the Caml book follows my approach best. The Dr. Scheme book mostly follows my approach, but it introduces types very late in the book.
- innovations that you might take advantage of
The set of mimi-scheme languages Dr. Scheme supports sounds like a great idea. This would help students learn to read the error messages from the compiler without getting frustrated with many error messages that refer to constructs they have not learned about.
- clarity of examples and explanations
The examples are well motivated with real-world problems. The examples are broken down into small easy-to-follow steps with the code pieces in the text.
- quantity and quality of exercises
There are a good number of exercises, and they are of different types (recall, application, etc.)
- supplementary course material or software that you might use
As mentioned before, I would make use of the programming environment provided. In addition to the programming environment, the authors also provide the full text online, as well as solutions to the exercises as well as extra exercises.
- usefulness as a reference
The book is not formatted to be a reference book. It would work ok as a reference for a student who studied it when taking the course, but not as well for a student who did not read it to begin with.
- usability in subsequent courses
Since the book is not great as a reference, it would not be as useful in subsequent courses. Also, subsequent courses would probably not be taught in Scheme, so it would not be as useful on that side either.
Evaluation of Criteria
I agree with the ordering of criteria above if the lectures are to follow the textbook closely. If the course will rely on lecture slides or supplemental notes more heavily, I would reverse most of the ordering. Perhaps relying more heavily on the slides is just an artifact of not being able to find a textbook that matches the course well. Perhaps to add to the bottom of the list (least important) I would also look to see how many other similar courses use the textbook.