Re: CG: Re: SUO: What the marketplace needs from us.
Bill,
Your points are very well taken, and with
minor qualifications, I agree with everything
you say. My only major qualification (or
addition) to your comments is about logic:
1. Logic should be the centerpiece of the
CS curriculum, not a cursory survey in
a general mish-mash course followed by
optional courses on esoteric topics.
2. This approach might sound revolutionary,
but it is the most conservative and
traditional imaginable. When the
foundations of the modern university
system were laid (12th to 16th centuries),
logic was the first of the "Seven Liberal
Arts". For an intro to logic as it was
traditionally taught, I recommend _The Trivium_
(reference below), which was taught to English
majors at St. Mary's College. I would be
delighted to find CS majors who were as well
grounded in logic as those English majors.
3. Today, logic has gone far beyond Aristotle,
but only an insignificant minority of students
ever learn any of it. And most CS graduates
and professors, who were exposed to it as
in point #1, are not in that minority.
4. As evidence of the low-grade understanding of
logic by most CS professors, I would cite the
following evidence:
a) When Doug Lenat interviews job applicants
at Cyc, he gives them a short quiz in which
they have to translate a few English sentences
to first-order logic. The overwhelming majority
of CS graduates (including CS professors) fail.
b) I had the same experience when I taught a graduate
course in the CS department at a university located
in Palo Alto. The only prerequisite was "knowledge
of FOL", and for the first homework assignment, I
gave them six English sentences to translate to FOL.
Out of a couple dozen students, only two got all
six correct, and the average was about 2 or 3
correct translations with many errors on the others.
When I did something similar at other places, the
results were even worse -- with rare exceptions,
I was lucky to get any correct answers from anybody.
Sister Miriam Joseph's students might not know FOL
notation, but they could do the hard part: analyze
the English sentences and break them down into
predicates and logical connectives.
5. As further support for the need for understanding
how logic is expressed in natural languages, I would
cite two well-know computer scientists: Don Knuth and
Edsger Dijkstra. When Knuth was in grammar school (at
a time when they still taught grammar), he loved the
idea of diagramming sentences in English, and he looked
for ever bigger and more complicated senteces to diagram.
Unfortunately, schools no longer teach sentence diagramming
because it's "too hard" -- in other words, the teachers
don't know how to do it. And Dijkstra said that when
he was interviewing students for CS courses, his first
criterion was how well they could express themselves
in their own native language. Neither one of them
explicitly mentioned logic in their commentary,
but that is because they did not learn logic from
Sister Miriam or somebody equally qualified.
6. Recommendation for revising the CS curriculum:
a) Include much of Sister Miriam Joseph's approach
in the introductory logic course and follow it
with a translation to various notations, including
the algebraic notation for predicate calculus,
graph notations such as EGs and CGs, and various
computer notations, such as BNF, SQL, and UML.
b) Emphasize the logic foundations in every CS course.
In teaching compilers, point out that every BNF rule
is an example of a Horn clause with the left-to-right
sequence implicit in the notation. Then show how
the compilation process is a mapping that preserves
logical invariants, and optimization is another
mapping that preserves the same invariants while
observing additional constraints intended for
improving performance.
In teaching data structures, show how different
options preserve the same logical invariants while
making various trade-offs in performance. In database
theory, start with FOL and show how every feature of
SQL relates to logic. In automata theory, emphasize
how logic relates to every class of automata. It is
typical for such courses to relate automata to formal
languages, but it takes only one more step to relate
both the languages and the automata to logic.
c) And most imporetantly, show how software tools can
map definitions and axioms in logic into computer
programs, into database definitions, into object
oriented definitions, etc. And then teach the
students how to write programs that do those
translations.
I'll admit that some "advanced" courses do some of these
things, but they do it in such esoteric notations that
most students avoid those courses like the plague.
I would rather see them taught at a more elementary level
so that everybody would get the point -- in the style
of Sister Miriam and with a minimum of hairy notation.
I agree with your remarks:
> While your suggestions on how to achieve better products
> are very good, I fear that it will not come to pass.
> Engineering is not in control of software - marketing gurus,
> incompetent managers, and ignorant consumers are! Even if
> we were to pursue your course of events, development
> organizations would drop it before it could prove itself
> useful. The mistakes of thousands of ignorant developers
> would overwhelm the positive results of the handful of
> knowledgeable ones.
But I am less worried about ignorant managers and marketers
than I am about ignorant CS professors. And most CS
professors really don't want to be ignorant. But their
problem is that they never had an opportunity to learn
logic the way it should be (and used to be) taught.
John
___________________________________________________________
Recommended reading (available for $11.87 at Amazon.com):
_The Trivium: The Liberal Arts Of Logic, Grammar, And Rhetoric_
by Sister Miriam Joseph Rauh.
Cover blurb:
Opening the door for beginners who seek a thorough grounding
in the first arts of human understanding, this book explains
the nature of logic, grammar, and rhetoric -- the first three
of the seven liberal arts -- and how they relate to one another.
In Renaissance universities, the trivium (literally, the
crossing of three part way) formed the essence of the liberal
arts curriculum. Examined are topics such as the nature and
function of language, distinguishing general grammar from
special grammar, the study of logic and its relationship to
grammar and rhetoric, and applying the concepts of logic,
grammar, and rhetoric to literary works.
Miriam Joseph, C.S.C, was a professor of English at
St. Mary's College in Notre Dame, Indiana. She first
published The Trivium in 1937.