Computer Science Education, was Re: UVSC BYU U of U etc
levi at cold.org
Tue Feb 20 20:44:34 MST 2007
"Alex Esplin" <alex.esplin at gmail.com> writes:
> I actually meant more so "we" than "you".
> Not that I terribly mind the lengthy discussions we've had over the
> last little while. It's given me lots to think about and I've learned
> a few things to boot, which is why I'm here to begin with.
Well, one of the reasons I pipe up in these threads is that I think
this is incredibly important stuff. I realize that tossing emails
about on a local users group list is not likely to produce any
measurable effect on the state of computer science education, but at
least it provides a few people an opportunity to think about it.
I think that my primary idea through this thread is that although it
is entirely possible to separate theory and practice in computer
science, it's a bad idea to try to teach it that way, especially at
the undergraduate level. I don't think that this principle only
applies to computer science, either, which was the gist of my argument
against the supposed physics/computer science difference.
I also think that computer science education should involve a great
deal of practicality, since solving real-world problems with computers
is a pressing need. However, I believe there is a distinction between
practicality and tool-specific training, which I don't believe is
within the purview of a computer science degree. Teaching students to
be able to apply their knowledge to the use of any set of tools should
be paramount, and is ultimately more beneficial to both student,
future employers, and the computing community in general.
Certainly some specific tool-related skills must be taught in order to
provide the means with which to apply the theory in a somewhat
realistic manner, but the tools optimal for learning and the tools
currently in industry favor may not be the same. In these cases,
different schools may make different trade-offs, but I believe
focusing on the tools that best enable the learning of the principles
involved is ultimately the best choice.
This does leave a bit of a gap between what a graduate with a computer
science degree knows and what employers want their employees to know,
which typically includes detailed knowledge of a particular tool set.
I believe that, given two reasonably equivalent people, the one with a
solid foundational computer science education as I envision it but
without the particular tool knowledge will be a better investment in
general than a person with good tool skills but a weaker computer
science background. The former will require some initial training in
tools, but the latter needs to change patterns of thinking in order to
be able to solve the same kinds of problems.
This, of course, completely leaves out the self-taught individuals,
who may well be the best qualified of all. I won't deny that for a
moment, nor do I believe that education requires attending classes.
It's simply beside the point; I would love for a good computer science
curriculum to be identified and made available to these kinds of
self-teachers. In fact, I've compiled quite a few resources myself,
if anyone is interested.
Anyway, sorry for the essay; I only meant it to be a couple of
paragraphs. I will refrain from further comment on the topic unless
someone else wants to continue. :)
More information about the PLUG