This is the 1998 version of the S-Q course book, which is supplementary material for S-Q, an introductory course in data structures and algorithms. This is not meant to be a stand-alone text, but instead is meant to augment another texts. The project book is intended to be supplemented by programming language textbooks and course handouts. Each chapter is reasonably self-contained, except for chapter 7, which revisits questions raised in chapter 4.
The S-Q course book was written by Daniel and Penelope Ellard in 1997 and 1998, but was updated in 2003 to use a more recent version of LaTeX and fonts that generate smaller output and better PDF.
This is the 1995 version of the CS 51 course project book, which is the textbook for CS 51, including background material and exercises. The project book is intended to be supplemented by programming language textbooks and course handouts.
CS 51 is defined as a course that begins by teaching LISP, ends by writing a LISP interpreter in C++, and in between covers some great ideas of computer science expressed in either LISP or C++. CS 51 also includes a brief study of assembly language. The course emphasizes teaching students how to reduce algorithms to code, by giving exercises in coding small but non-trivial algorithms.
The CS 51 Course Book was written by Jason Abrevaya, Sanjoy Dasgupta, Daniel Ellard, Abolade Gbadegesin, Mark Immel, Harry Lewis, Jon McAuliffe, and Bob Walton. Many of the sections are based on the original lecture notes for CS 51, which were written by Harry Lewis. The assembly language and data representation chapters were originally written as a separate document by Daniel Ellard. Bob Walton is largely responsible for recruiting the authors, coordinating their efforts, and putting everything together. This is really his book; without his unflagging effort and diligence this book would be little more than a collection of lecture notes.
This is a rewrite of Chapters 6-9 of the CS 51 coursebook for a different audience.