The question of how to better integrate computer science with mathematics at the introductory level is very important, and I think many different solutions will be (already have been) tried, with varying degrees of success.
Because computers are essential to the core functions of large technological societies, students should have some insight into how they operate, but these insights should point back to general ideas in mathematics as well.
The use of computers may add to student understanding of mathematics completely independently of students' learning how computers work. However, some discussion of the internals of computers provides an ideal entry point into many overlapping topics and historical narratives, all of which will shed light on the shared world in which our students will be growing to adulthood and, we hope, prospering and mentally maturing.
I will give three examples of how computer science and mathe- matics might be taught together, in the same integrated curriculum:
1. The use of symbols as primary keys to track objects
The fact that symbols may be permuted in various ways to form unique strings or symbols, which may, in turn, be used to identify objects, as in the case of serial numbers or passport numbers, provides a useful introduction to cardinality -- the use of numbers as identifiers. This leads to a discussion of how many permutations might be required if the only symbols or values at the most primitive level are 1 and 0. How shall we map all the symbols in the Chinese language, and other languages, to permutations of 0 and 1? This question leads to an investigation of the unicode solution.
2. The use of logical operations in circuit function and design
Binary logic with operators such as XOR, AND, OR, NOT make sense to children, if properly presented. These operators may be investigated independently of their applications in the design of integrated circuits, in the form of propositions which may be true or false. However, the application to circuit design should be discussed.
3. The use of variables in coded, general purpose algorithms
The coding of an algorithm such that it may be applied to many cases, depending on what gets passed to it in the form of parameters or arguments, helps students appreciate the importance and power of variables. Some exposure to a programming language, in which variables are used as place- holders, provides a good foundation in which to later develop more complex algorithms, such as matrix multiplication or vector operations. I would go further and suggest that students should develop an appreciation for the object-oriented approach to programming, as this will provide many benefits in math learning, such as when we represent vectors or matrices as objects defined by their common template or class.
This was not meant to be an exhaustive list of course. One additional example of an application for computers which is making a lot of headway in my home state of Oregon at the high school level is the introduction to dynamic system modeling, mostly using STELLA software. Sym*Bowl, a regional gathering for students participating in these classes, is set for May 2nd at the local science museum.
I do not think the integration of computer science and mathematics teaching will occur overnight and without many false starts and dead ends. Appropriate teacher training is currently in short supply, and computer hardware, if available at all, may not be properly configured for use in the math- learning classroom.
In the United States, computer science is often taught completely independently of mathematics courses. To my way of thinking this promotes waste and redundancy, is a misallocation of resources, as at the introductory level there's no good reason to separate these disciplines -- it's a symptom of overspecialization that we do so today. Math provides a fertile and interesting territory in which to apply one's growing programming skills, and comprehension of the underlying mathematical ideas improves as one is faced with capturing them in the form of working programs (we may think of them as "math poems").
Also, whereas computer science teachers of course demand computers, math teachers seem content to accept their second class status such that their students must purchase calculators even when a fully equipped computer lab exists just down the hall.
I am hopeful that math faculties will eventually break out of this "calculator ghetto" situation and graduate to classrooms equipped with real computers, as these will provide richer educational experiences and opportunities for their students. Perhaps China is in a position to leap-frog the calculator phase and go more directly to the computer-endowed math classroom still on the horizon in this country. Having one computer for every student is unnecessary. More important is to have a teacher who knows how to use the computer effectively, and some way of projecting the computer's display for the whole class to see at one time.
If the system is market-driven in the sense that students and parents have some choice in the matter, then this may lead to a speedier adoption of a "math through programming" approach in more schools, as the benefits to students will be obvious, and schools not offering it will find themselves less attractive to would-be customers.
This economic motivation for moving towards a more techno- logically-informed curriculum is what will bring about the necessary reforms. Without these market forces, teachers will find it comfortable to teach in about the same way next year as they did this year, and the present day status quo, which many of us regard as unacceptable, because too irrelevant to real student needs, will persist indefinitely.