9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: presotto@plan9.bell-labs.com
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Re: the 'science' in computer scienscience
Date: Mon, 11 Jun 2001 20:36:08 -0400	[thread overview]
Message-ID: <20010612003610.3980A199E9@mail.cse.psu.edu> (raw)

Granted that I haven't done circuit design in years, but, modulo
a few fires here and there, it didn't seem that much different than
programming.  There were little tricks like using resistance ratios
to keep the gain on transistor circuits less temperature dependent,
general rules on stage coupling to keep transients in one part of
a circuit, ...  There were rules of thumb, absolute no-no's, etc.
For that matter, I spent a good chunk of my adolescent life laying
bricks and things weren't much different there except that I felt
a lot more tired a the end of the day.

Both science and engineering involve solving problems with
the tools at hand.  Both can be predictive.  With a finite
element analysis of a bridge, I can say pretty definitively
what loads it will take.  The main descriminator is that when
the thinking involves figuring out problems set to us by the
nature of the universe, it tends to be called a science.
When we are thinking about building something, it's called
engineering.  The line is pretty fuzzy unless you are firmly
embedded in one camp or the other.

Mathematics circles both camps.  Mathematics is the
tool used to solve most engineering and science problems.
I like the OED's definition here:

	  (a) in a strict sense, to the abstract science which investigates
	deductively the conclusions implicit in the elementary conceptions
	of spatial and numerical relations, and which includes as its
	main divisions geometry, arithmetic, and algebra; and 

	  (b) in a wider sense, so as to include those branches of physical
	or other research which consist in the application of this abstract
	science to concrete data.  When the word is used in its wider
	sense, the abstract science is distinguished as pure mathematics,
	and its concrete applications (e.g. in astronomy, various branches
	of physics, the theory of probabilities) as applied or mixed
	mathematics.

Some of the best physicists and computer scientists I've met called
themselves mathematicians.  To a certain extent, a scientist or an
engineer is a mathematicion with boundary conditions.

Computer science/engineering/whatever is unique in that the
boundary conditions seem to change a bit faster than in the
other disciplines (though biology may be passing us).
Most disciplines only change due to a new
concept or discovery coming along.  CS has that too; caches,
virtual memory, recursion, type theory, quantum computing
(if it happens), ...  However, we have a constant churn of
our design rules and engineering points caused by Moore's
law and its offshoots.  We're working in a discipline where
everything changes exponentially in time, and a small time
constant at that.  Today's rules are usually out the window
next year.

So bringing this back to education...

This means that we have a hard time imparting anything
from generation to generation that can really be useful
except for how to reason about problems.  The only three
ways I know of doing this are 

(1) studying in depth programs that you believe are
elegantly done, i.e., easily understood, built
with the minimum effort to do the job, and
extensible.
(2) guiding them through programming assignments to
do the same, showing them a better way if they didn't
find it themselves.
(3) get a degree in another discipline so they at
least have a balanced viewpoint.

This is in addition to the fundamental concepts of
programming and design.  However, there are countless
books to teach them that, they could stay home and
read them instead of going to class if that is all
they'ld walk away with.

P.S.  You can tell I'm avoiding real work, can't you.


             reply	other threads:[~2001-06-12  0:36 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-12  0:36 presotto [this message]
2001-06-12  0:47 ` Boyd Roberts
2001-06-12 14:54 ` Dan Cross
2001-06-13 12:05   ` Toby Thain
2001-06-12 15:09 presotto
2001-06-12 21:49 ` Dan Cross
2001-06-12 22:50   ` Boyd Roberts
2001-06-12 23:19     ` Jim Choate
2001-06-13 12:22       ` Matt
2001-06-12 15:16 anothy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010612003610.3980A199E9@mail.cse.psu.edu \
    --to=presotto@plan9.bell-labs.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).