9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* Re: [9fans] Re: the 'science' in computer scienscience
@ 2001-06-12 15:09 presotto
  2001-06-12 21:49 ` Dan Cross
  0 siblings, 1 reply; 10+ messages in thread
From: presotto @ 2001-06-12 15:09 UTC (permalink / raw)
  To: 9fans

> Anyway, how do you teach someone to think?  I have no idea; your
> suggestions are a good first step, but it seems that the `proper mind
> set' outcome is a side effect of exposure with that method; is there a
> way to directly target the thought process?

It was imbred in me by a Latin teacher whose key phrase was
``why use two when one will do''.  The immediate application
was to avoid flowery language but it the rule applies in general.

With programming, constraints that helped.  I inherited
a course at Princeton from Rob.  The thing I liked the best about
it was an assignment he gave to write a shell.  The constraint was
in the size of the shell.  We said what it was supposed to do (no
job control) and took points off for programs exceeding the size
limits.  I reviewed the best solutions with the students.

But when it comes down to it, the real challenge is imparting some
flavor of your taste to the students by example or by the application
of grades.  Some rules help, as long as you can get them to understand
that the rules are guidelines and not hard.  If you're lucky you can
do it in such a way that doesn't cramp originality on their part.

I've also found it useful to review Plan 9 code and Unix code with
them.  That way they can see different solutions for the same
problems.  I actually find things like the toy operating system
more harmful than helpful.  They come away understanding some of
the concepts, perhaps better than reading them in a book, but
totally lose the perspective of the size of the problems and
the necessity to be careful with minutia.

All this is very interaction intensive.  It's easy if you're a hired
gun doing one course and then running back to your real life.  I
couldn't imagine keeping it up semester after semester.


^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: [9fans] Re: the 'science' in computer scienscience
@ 2001-06-12 15:16 anothy
  0 siblings, 0 replies; 10+ messages in thread
From: anothy @ 2001-06-12 15:16 UTC (permalink / raw)
  To: 9fans

//is there a way to directly target the thought process?

of cource there is. it's called "brainwashing". and i've seen
it be very effective for certain groups.
-α.



^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: [9fans] Re: the 'science' in computer scienscience
@ 2001-06-12  0:36 presotto
  2001-06-12  0:47 ` Boyd Roberts
  2001-06-12 14:54 ` Dan Cross
  0 siblings, 2 replies; 10+ messages in thread
From: presotto @ 2001-06-12  0:36 UTC (permalink / raw)
  To: 9fans

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.


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2001-06-13 12:22 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-12 15:09 [9fans] Re: the 'science' in computer scienscience 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
  -- strict thread matches above, loose matches on Subject: below --
2001-06-12 15:16 anothy
2001-06-12  0:36 presotto
2001-06-12  0:47 ` Boyd Roberts
2001-06-12 14:54 ` Dan Cross
2001-06-13 12:05   ` Toby Thain

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).