Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Select Page

Concrete Abstractions: An Introduction to Computer Science Using Scheme

Concrete Abstractions: An Introduction to Computer Science Using Scheme

The book features thorough integration of theory and practice, and presents theory as an essential component of practice, rather than in contrast to it. Thus, students are introduced to the analytic tools they need to write effective and efficient programs, in the context of practical and concrete applications.

Significant programming projects are included that actively involve students in applying concepts. Each chapter ends with an application section, in which the concepts from that chapter are applied to a significant, interesting problem that involves both program design and modifying existing code.

The authors present development of object-oriented programming, one concept at a time. Each of the component concepts that constitute object-oriented programming (OOP) is introduced independently; they are then incrementally blended together.

In keeping with modern curricular recommendations, this book presents multiple programming paradigms: functional programming, assembly-language programming, and object-oriented programming–enabling the student to transition easily from Scheme to other programming languages.

The final chapter provides a transition from Scheme to Java. Providing this transition within a single book allows Java to be explained by comparison with Scheme, including showing an example program in both languages. Java also supports exploration of event-driven graphical user interfaces and concurrency.

In summary, this book is designed to introduce you to how computer scientists think and work. We assume that as a reader, you become actively involved in reading and that you like to play with things. We have provided a variety of activities that involve hands-on manipulation of concrete objects such as paper chains, numbered cards, and chocolate candy bars. The many programming exercises encourage you to experiment with the procedures and data structures we describe. And we have posed a number of problems that allow you to play with the abstract ideas we introduce.

Our major emphasis is on how computer scientists think, as opposed to what they think about. Our applications and examples are chosen to illustrate various problemsolving strategies, to introduce some of the major themes in the discipline, and to give you a good feel for the subject. We use sidebars to expand on various topics in computer science, to give some historical background, and to describe some of the ethical issues that arise.

Concrete Abstractions: An Introduction to Computer Science Using Scheme

by Max Hailperin, Barbara Kaiser, and Karl Knight (PDF, Online reading) – 15 Chapters

Concrete Abstractions: An Introduction to Computer Science Using Scheme by Max Hailperin, Barbara Kaiser, and Karl Knight