schaffer@topaz.rutgers.edu (Schaffer) (07/14/87)
To me personally, computer science is exciting because it is based on some of the most intellectually earthshaking i d e a s of the 20th century. About 18 months ago, I began thinking that it ought to be possible to present those ideas, and convey the excitement of them, to relatively unsophisticated college freshmen. Moreover, I saw two compelling reasons to make the effort: 1. For prospective majors, an introductory course serves as an invitation to the field. We want to make it as exciting as possible, to attract bright students, and, at the same time, we want to discourage hackers who believe computer science is a synonym for programming. 2. For non-majors, an introductory course is the o n l y course. It is our single chance to give nontechnical students an inside look at the technological world they inhabit, to impress upon them the beauty and powerful consequences of analytic thinking. The problem, as I saw it 18 months ago, was that available textbooks made it nearly impossible to run a course of the kind I envisioned. Technical books presented technical material dryly. Nontechnical books avoided substance almost entirely in favor of breezy computers-can-be-fun material. Neither attempted a general coverage of the core ideas that underlie our field and, certainly, no text that came into my hands caught the excitement and interest of these ideas. In the interim, then, I have been engaged in writing a new kind of textbook, one to fill the gap I have been describing. The book is due to be released by Prentice Hall in late December and is described in the catalog entry reproduced below. I write this, in part, because I would like to make sure that review copies of the book are sent to my likeminded colleagues. To request a copy, please send me an e-mail note and include a surface mail address. My Usenet address is: {...harvard,pyramid,seismo,nike}!rutgers!topaz!schaffer Two last comments. First, what I have written is a technical book. Unlike computer literacy texts which often talk a r o u n d technical ideas, mine plows straight through. At the same time, I have been extremely concerned to make the presentation accessible. From my experience, very few college freshmen are comfortable with the kind of mathematics used in most introductory texts. My approach, then, has been to t e a c h necessary math rather than assuming it. As a result, while the book is quite mathematical, it can be used with an audience familiar with nothing more advanced than arithmetic. Second, I hope no one will be put off or misled by the conservative title and table of contents. This is, frankly, a kind of marketing ploy to induce conservative faculty to have a look at the book. I'm confident, however, that these same faculty will be shocked when they begin to look more closely. I can't presume to say that the book is a good one, but I will stake my name on the fact that it isn't like any of the others on the market. I look forward to hearing from many of you privately, both now, to request review copies, and later with comments about the text. I would also hope that this posting might incite public discussion on the proposed philosophy of computer science education which I have advocated. Cullen Schaffer@topaz.rutgers.edu PRINCIPLES OF COMPUTER SCIENCE Cullen Schaffer, Rutgers Univ. > The s c i e n c e of computer science < > from digital logic to complexity analysis < > and from bootstrapping to uncomputability < A novel slice through the computer science curriculum: for majors, an overview and framework for further study, an exciting lineup of topics to draw bright students into the discipline; for non-majors, a serious introduction to a technical field, in language any student can understand and a b s o l u t e l y without mathematical prerequisites. FEATURES: * A careful d e v e l o p m e n t to show how disparate elements from architecture to artificial intelligence form a cohesive field. * Emphasis on a n a l y s i s rather than coding. * Exciting, important topics: recursion, data structures, bootstrapping, uncomputability, complexity, translation, feedback and more. CONTENTS: 1. Logic with Electricity 2. Memory 3. Arithmetic 4. An Arithmetic and Logic Unit 5. Control and Programming 6. Programming and Solvability 7. Searching and Sorting 8. Data Structures 9. Stacks, Subroutines and Recursion 10. Translation 11. An Algorithmic Language 12. Practicalities 13. Machine Intelligence
schaffer@styx.rutgers.edu (Schaffer) (09/17/87)
I am reposting this because of the enthusiastic response to the initial posting early this summer. Thanks to all the people who have already contacted me. Examination copies are due to be sent out in January. . . . . . To me personally, computer science is exciting because it is based on some of the most intellectually earthshaking i d e a s of the 20th century. About 18 months ago, I began thinking that it ought to be possible to present those ideas, and convey the excitement of them, to relatively unsophisticated college freshmen. Moreover, I saw two compelling reasons to make the effort: 1. For prospective majors, an introductory course serves as an invitation to the field. We want to make it as exciting as possible, to attract bright students. At the same time, we want to discourage hackers who believe computer science is a synonym for programming. 2. For non-majors, an introductory course is the o n l y course. It is our single chance to give nontechnical students an inside look at the technological world they inhabit, to impress upon them the beauty and powerful consequences of analytic thinking. The problem, as I saw it 18 months ago, was that available textbooks made it nearly impossible to run a course of the kind I envisioned. Technical books presented technical material dryly. Nontechnical books avoided substance almost entirely in favor of breezy computers-can-be-fun material. Neither attempted a general coverage of the core ideas that underlie our field and, certainly, no text that came into my hands caught the excitement and interest of these ideas. In the interim, then, I have been engaged in writing a new kind of textbook, one to fill the gap I have been describing. The book is due to be released by Prentice Hall in late December and is described in the catalog entry reproduced below. I write this, in part, because I would like to make sure that examination copies of the book are sent to my likeminded colleagues. To request a copy, please send me an e-mail note and include a surface mail address at your college or university. My Usenet address is: {...harvard,pyramid,seismo,nike}!rutgers!paul!schaffer Two last comments. First, what I have written is a technical book. Unlike computer literacy texts which often talk a r o u n d technical ideas, mine plows straight through. At the same time, I have been extremely concerned to make the presentation accessible. From my experience, very few college freshmen are comfortable with the kind of mathematics used in most introductory texts. My approach, then, has been to t e a c h necessary math rather than assuming it. As a result, while the book is quite mathematical, it can be used with an audience familiar with nothing more advanced than arithmetic. Second, I hope no one will be put off or misled by the conservative title and table of contents. This is, frankly, a kind of marketing ploy to induce conservative faculty to have a look at the book. I'm confident, however, that these same faculty will be shocked when they begin to look more closely. I can't presume to say that the book is a good one, but I will stake my name on the fact that it isn't like any of the others on the market. I look forward to hearing from many of you privately, both now, to request examination copies, and later with comments about the text. I would also hope that this posting might incite public discussion on the proposed philosophy of computer science education which I have advocated. Cullen Schaffer@paul.rutgers.edu PRINCIPLES OF COMPUTER SCIENCE Cullen Schaffer, Rutgers Univ. > The s c i e n c e of computer science < > from digital logic to complexity analysis < > and from bootstrapping to uncomputability < A novel slice through the computer science curriculum: for majors, an overview and framework for further study, an exciting lineup of topics to draw bright students into the discipline; for non-majors, a serious introduction to a technical field, in language any student can understand and a b s o l u t e l y without mathematical prerequisites. FEATURES: * A careful d e v e l o p m e n t to show how disparate elements from architecture to artificial intelligence form a cohesive field. * Emphasis on a n a l y s i s rather than coding. * Exciting, important topics: recursion, data structures, bootstrapping, uncomputability, complexity, translation, feedback and more. CONTENTS: 1. Logic with Electricity 2. Memory 3. Arithmetic 4. An Arithmetic and Logic Unit 5. Control and Programming 6. Programming and Solvability 7. Searching and Sorting 8. Data Structures 9. Stacks, Subroutines and Recursion 10. Translation 11. An Algorithmic Language 12. Practicalities 13. Machine Intelligence