Paul Hudak Introduction to the different concepts, techniques, and applications of computer science.
Examples stress the importance of different problem-solving methods.
After Computer Science 112a or b or equivalent. Details about course coverage can be found in the syllabus . This book should be available now at the Yale Bookstore. It will be supplemented with other material. On the other hand, programs are concrete manifestations of many abstractions underlying Computer Science, and thus it is helpful to use a programming language to convey many of the ideas in this course.