Preface A quick look at the Introductory books for Computer Science classes using Java quickly leads me to a number of them that are 1000 to 1500 pages. The mere size can be daunting for a new Computer Science. This is a much shorter book that is suitable for an introductory Computer Science course. We want students to learn the core fundamentals of Computer Science and save the esoterics of a programming language for later. Ruby is a programming language well suited for this task. It is completely object-oriented, interpreted and it is relatively straightforward. The good news is that instead of being purely academic it is now growing to be heavily used in industry. We intend for the book to be covered from Chapter 1 to Chapter 10 in sequential fashion. Each chapter assumes the material from the preceding chapter has been mastered. To focus the discussion we have done our best to ignore GUI issues and I/O issues as we believe these to be ancillary to the core of Computer Science and they are certainly covered in depth in a variety of other courses. It is our intent that after completing a course using this book that students would be well positioned for a second semester course teaching data structures such as Linked Lists, Heaps, Trees, etc. We also think it would be a good idea to teach them a language other than Ruby in the second semester just to continue to prove to students that programming languages are just tools that can easily be swapped in or out as necessary. It is our hope that the concepts taught in this book will provide students with a sufficient foundation to to learn new programming languages, data structures, and more complex algorithms. Also, we hope to instill a core appreciation for algorithms so students will solve problems with elegance and inspiration rather than simply plowing ahead with brute force.
|