On 2/16/07, Daniel C. <[EMAIL PROTECTED]> wrote:
On 2/16/07, Alex Esplin <[EMAIL PROTECTED]> wrote:
> If you want to learn to write code you go to ITT or whatever tech
> school has a less painful, less long program and learn how to
> write code.
> The idea behind learning Computer Science ... is that if you
> learn to think about computing and why we do things the way
> we do, and learn how to code as you do so you are
> prepared to solve new problems by applying the theory.
What I meant to say was that application of theory is partially
implementation agnostic. A stack is a stack whether it is implemented
as a linked structure or an array. The theory is that you have a data
structure where the last thing on is the first thing off. However,
and I think we are in agreement here, it's very hard to learn much
about the theory of a stack without having an idea of how you would
implement it.
I would argue that you can't learn to code without learning the
reasoning behind it to some extent. That learning to code and
learning the theory behind your code goes hand in hand - you can't
learn one without also learning the other. Since code and the ideas
behind it are so closely joined, you shouldn't be able to learn a
theory without it's application in code being transparent.
This is why I have such trouble with the idea of the Science part of
CS being removed from the implementation. If you don't know how to
computationally solve a problem you can't code up the solution. More
on this below.
Which brings us back to "Why say that you're studying Computer
Science, with capital letters, when the science and application are so
closely joined that you can't have one without the other"? Unless
you've got math envy and secretly wish you were there instead of here.
Because the original argument of "anybody who's any good at CS would
never settle for a professor's salary" implied that the theory and the
code were much more loosely coupled (if coupled at all) than they are.
I would say that those who learn how to quickly whip up an
application in IDE x and language y are not those who will be solving
the major computing problems of the future because all they know how
to do is write code for problems that have already been solved with
computers, not how to use a computer to solve a problem that
previously hasn't been solved in computing.
--
Alex Esplin
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/