1) Mathematica, or a comparable CAS, should suffice for all the basic
educational technical computing requirements in universities.
2) Students who are not capable of handling university material and
performing at university level should not be there.
1) In my view, Mathematica is not just another in a mix of computer
languages (C++, Perl, Java, Mathematica, microassembler, AutoCAD,
SolidWorks, Labview, etc). That list makes no more sense than (calculator
operation, penmanship, mathematics, greek alphabet, typing, decimal
operations). Mathematica is a general and broad tool for applying
mathematics in any technical field that uses mathematics. By and large
Mathematica works at the level of mathematics. Mathematica will handle
students general mathematical requirements in all their courses.
Yes, in special fields other computer tools will be required. Students in
computer science will require C, and assembly language, assemblers,
hypothetical languages that illustrate various constructs, the technology of
logic gates and other subjects. But students in other fields don't need to
know this any more than students of my day had to know the technology of
engraving graduations on slide rules and bonding ivory to wood.
I'm sure there are many special purpose computer systems that apply to
specialized fields. But these are 'Industrial Level' programs. Let students
learn them later, when they actually enter a field that utilizes them.
Give students a tool, one tool, that will fulfill their mathematical
computing requirements at the university level. And give it to them early.
The tool is there and it's not going to go out of date or evolve any faster
than mathematics goes out of date or evolves. The schools are behind the
curve. (And let Mathematica, and other CAS's be subjected to all the
criticism they deserve - it still doesn't change the basic facts.)
2) Everybody knows that secondary education in the United States is a total
disaster that leaves every student behind. The net result is that it
probably does more harm than good. Because of politics there will be no
solution until the effects are felt on a wider scale. In the meantime the
universities shouldn't try to 'remediate' the unprepared students. The rot
at the secondary level will only seep through the university level. Stick to
the task at hand for those capable of it.
From: email@example.com [mailto:firstname.lastname@example.org]
Learning a language in depth in college indeed shows good intentions.
But is it feasible?
When I did my graduate work at Berkeley (64-66) there were only two
languages: Fortran IV and IBM assembler. (Well, COBOL was
out but that was for a different school.) Engineering students
learned FIV in one-semester courses taught mostly by EE instructors
(CS didnt exist) which went fairly deep; e.g., 2-level
storage management. One interesting aside is that many of the
computer-savvy faculty at the time were experts in assembler
and could read octal dumps - they had started before Fortran I came
out in 58. That frame of mind can be seen in Don Knuth's early books.
Contrast the situation today. By edict from curriculum committees,
which indirectly receive industry inputs, an engineering undergraduate
must be "reasonably proficient" in a panoply of languages that include
C, Excel, a matrix language, a webmaker, and a WP. Languages
from a second tier (C++, Perl, Java, Mathematica, microassembler,
AutoCAD, SolidWorks, Labview, etc) is taken as per major, or elective
choices. (Fortran disappeared in '97.)
Can they go deep in each language? For the majority, no way.
No background, no time, no instructors. Few of the
instructors are able to teach beyond the barest of basics.
As for background & time, 30-40% of undergraduate
education is remedial. Kids coming from the public HS system
can barely write a complete sentence or divide two numbers
by hand, let alone understand what a "dispatch table" is.
And the graduate level is a similar story.