[comp.edu] A really NEW way to introduce CS

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