Chris Stephenson, CSTA wrote:
> I just think that the problems begin long before students
> enter colleges and universities. Because students tend
> to make choices about their educational pathways while
> they are still in high school, I would suggest that what
> happens in high schools is probably more relevant than
> the curriculum choices colleges are making.
This comment strikes a chord with me. What's interesting
about the current high school curriculum is the emphasis
on climbing Calculus Mountain (pre-calc/calc), with the
"technology" being calculators (mostly TIs), while the
elective CS curriculum (again, high school level) bounces
around trying to figure out what language is accessible
enough to not be a huge turn-off (C++ was a disaster,
now it's Java, but a lot of us are suggesting Python'd
be the better choice...).
Without getting into language wars, my point is this: why
don't we have an alternative math track that is more of a
hybrid of CS and traditional topics, but with a discrete math
focus? Instead of so much emphasis on calculus, we could
do more with discrete math algorithms implemented in
some computer language.
Examples:
Build a rational number class and implement continued
fractions with it.[1] Study Euclid's Algorithm and
the extended version. Make a conceptual grasp of
RSA a goal for senior year, instead of integration by
parts and double integrals. This'd be an alternative
*math* track, but with a lot more CS input. Some kids
might do both tracks, but the CS hybrid wouldn't be
2nd tier or "vocational" -- it's just an alternative, and you
can still get to calculus later.
I write about this a lot on the math-teach list at the
Math Forum. Here're a relevant link:
http://www.mathforum.com/kb/thread.jspa?threadID=1150219&tstart=0> Take a guess at how much relevant and recent
> information about careers in computing is easily
> available to high school students. Not much? Right!
A lot of bright kids get their info direct from the net,
bypassing what's offered in school. I've been mentoring
an 8th grader who is far ahead of any of his teachers, in
his understanding of LAMP for example (he customized a
blog for his principal, written in Python -- hosts on a 64-bit
Ubuntu out of his basement, rewrote Pybloxsom to use
Apache's mod_python -- 8th grade mind you).
> I would argue that given the increasingly
> technologically complex nature of our society, a
> fundamental understanding of computer science is
> as important to any educated person as is physics or
> chemisty.
Yes indeed, but we should be clear on what "every layman
should know" versus what's too specialized. For example,
an appreciation of what a database is, and how these are
wired to the web, is generic knowledge. But knowing how
to analyze an algorithm to express its efficiency in
O-notation -- I think that's more specific to hard core CS.
Example of imparting basic/generic computer savvy:
http://www.4dsolutions.net/ocn/geoquiz.htmlKirby
[1] continued fractions using Python:
http://www.mathforum.com/kb/thread.jspa?threadID=1153661&tstart=0[%sig%]