[comp.edu] Theory & practice at bachelor level

john@nmt.edu (John Shipman) (07/25/90)

H. Conrad Cunningham (conrad@wucs1.wustl.edu) writes:
+--
| CS curricula should be focussed on principles rather than specific
| technologies.  Emphasis should be given to concepts which cut across
| several areas of technology, instead of arbitrarily breaking CS into
| many technology-oriented subfields.
+--

I agree that a focus on principles is what distinguishes a
``real'' degree.  But when it comes to debating theory vs.
practice, I will always argue for a mixture of the two, at
least for our particular bachelor's program.

Even for those who are strongly oriented toward theory, I
recommend practical exercises as a superior way to learn the
material.  One who has had to rework a grammar to remove
ambiguities is likely to have a much better grasp of how
grammars work than someone who has only read about grammar.

I feel that the New Mexico Tech bachelor's curriculum should
prepare a student equally for industry or for grad school.
A lot of our students aren't sure initially which way
they'll go.  As more of our bachelor's graduates go to
industry than to grad school, I think it would be a bad idea
to exclude practical material from our core program.
Perhaps larger schools can afford the luxury of degrees that
are oriented one way or the other.

+--
| Instead of a core course on "operating systems" why not a
| course on "concurrent programming".  Such a course could
| unify important concurrency-related concepts drawn from
| operating systems, programming languages, database systems,
| networks, algorithmics, computer architecture, computation
| theory, etc.  Couldn't such a course be more useful as well
| as conceptually cleaner.
+--

As it happens, concurrency takes up almost half the lectures
in our OS course, starting with theory and extending through
practical techniques for dealing with concurrency problems.
A lot of related issues in languages, networks and architecture
are discussed here and in our architecture course.
-- 
John Shipman/Computer Science Department/New Mexico Tech/Socorro, NM 87801
(505)835-5301; john@jupiter.nmt.edu

shankar@SRC.Honeywell.COM (Subash Shankar) (07/28/90)

While a discussion on the proper mix of theory and practice has merit, I often
find people defining theory as anything they don't understand.  An ex-roommate
of mine once needed explanation of how to solve equations of the form ax=b (x is
scalar, a and b are numbers), and complained that he was good in applied math
but couldn't handle meaningless theoretical problems like this one (needless to
say, he wasn't a technical major).  I often see the same behaviour among
computer science majors, except for somewhat more advanced problems.  

IMHO, any argument on theory vs. practice needs to first define theory.  Are
data structures and algorithms theory?  How about models of computation (after
all anybody who really understands computer architecture must have an intuitive
understanding of the differences/similarities between program and data).  
---
Subash Shankar             Honeywell Systems & Research Center MN65-2100
voice: (612) 782 7558      US Snail: 3660 Technology Dr., Minneapolis, MN 55418
shankar@src.honeywell.com  srcsip!shankar