## Why Can't Math Teaching Be More Like Computer Science?

From elementary to high school I've had teachers who've droned on and on trying to explain minute details about the concepts they're teaching. I've almost always found it more difficult to follow the teacher's train of thought than to just learn the concept myself, so I always just read the book during lecture. I mean "read" in the loosest sense of the word though, as I'd just skim through looking for the equations. From middle-school and upwards, the textbooks were written so as to be incomprehensibly dense to any student not three grade levels higher than the grade the book was intended for. The most peculiar aspect of this arrangement was that I always found that solving the problem always depended on only a few things. Far less than the length of the teacher's lectures would suggest.

When I got to college and took computer science classes we had to document our code. For each function we needed to present a concise explanation of:

1. What the function does
2. What the function's arguments are and how they relate to what the function does
3. What conditions the function requires in order to work properly.

And it hit me. These three things are all you need in order to use any mathematics equation. And so I'm baffled. All the math and science textbooks are designed around the author raising some question about the concept, going through a derivation, and arriving at an equation that answers the original question. Even ignoring the fact that the questions raised by the book have almost always been incomprehensible to me, you still have the fact that this form of teaching results in the important information being strewn all over the place. The explanations on what the variables are could be in any chapter, the explanation of what the function does is written in terms of its derivation and mixed all throughout the section, and the conditions on the function's use are hidden somewhere in the derivation. In the worst case, you have arguments that are only defined in tiny tables in the margins of some page in the last chapter. So this makes me wonder: What is the use in making students go through all this hullabaloo? Why can't a mathematics textbook, for each equation, provide concise summaries of what the function does, what its arguments are and how they relate to the function, and what conditions invalidate the function? I see absolutely no use in making the student skip and hunt around the book every time they want to do a homework problem. I personally find it much easier to understand mathematics by relating the equations to the concepts than trying to piece together some half-hazard imprecise English explanation, or some dense, etymologically sterilized "mathematically correct" explanation.

 PhysOrg.com science news on PhysOrg.com >> 'Whodunnit' of Irish potato famine solved>> The mammoth's lament: Study shows how cosmic impact sparked devastating climate change>> Curiosity Mars rover drills second rock target
 Recognitions: Science Advisor The computer science way of thinking of functions is an absolutely terrible way to approach functions in mathematics. A function should not be thought of as a process you stick numbers into that computes something and then returns another number. This is the sort of thinking that leads to so much confusion over things like "0.999... = 1". A mathematical function is just a 1-to-1 map between sets, that is all. A function doesn't have to be represented by any algorithm or process. Hell, most functions are uncomputable! The things you write in programming code should more properly be called "subroutines", "procedures", or "methods", and it is to the great detriment of proper mathematical thinking that any programming language has co-opted the term "functions" for them. Also, grab a dictionary and look up "haphazard".
 Blog Entries: 8 Recognitions: Gold Member Science Advisor Staff Emeritus Math books actually do what you want. Behond the following notation: $$f:\mathbb{R}^+\rightarrow \mathbb{R}:x\rightarrow x^2$$ f is the name of the function $\mathbb{R}^+$ are the possible input values and $\mathbb{R}$ is what you can expect as output. The $x\rightarrow x^2$ is what the function does. And they couldn't make it shorter then that.

## Why Can't Math Teaching Be More Like Computer Science?

 Quote by Ben Niehoff The computer science way of thinking of functions is an absolutely terrible way to approach functions in mathematics. A function should not be thought of as a process you stick numbers into that computes something and then returns another number. This is the sort of thinking that leads to so much confusion over things like "0.999... = 1". A mathematical function is just a 1-to-1 map between sets, that is all. A function doesn't have to be represented by any algorithm or process. Hell, most functions are uncomputable!
I'm not following you. What does that have to do with 0.999... = 1? As I understand, that expression is confusing because notations involving an infinite number of components are unintuitive.

And frankly, I see no reason why functions should not be represented as algorithms for the purpose of teaching. Algorithms explain the relationship behind the function much more clearly and precisely than someone's lecture or essay.

 Quote by micromass Math books actually do what you want. Behond the following notation: $$f:\mathbb{R}^+\rightarrow \mathbb{R}:x\rightarrow x^2$$ f is the name of the function $\mathbb{R}^+$ are the possible input values and $\mathbb{R}$ is what you can expect as output. The $x\rightarrow x^2$ is what the function does. And they couldn't make it shorter then that.
I've never had any books that used that notation.

Blog Entries: 1
Recognitions:
Gold Member
 Quote by micromass $$f:\mathbb{R}^+\rightarrow \mathbb{R}:x\rightarrow x^2$$
Shouldn't that be
$$f:\mathbb{R}\rightarrow \mathbb{R}^{+}:x\mapsto x^2$$

I've never seen this exact notation, but the following is quite familiar to me:
$$f:\mathbb{R}\rightarrow \mathbb{R}^{+}, f:x\mapsto x^2$$
I read more physics books than math books these days. They don't seem to have a consistent notation for indicating the meanings of the variables, none the less they do make it clear what the variables in an equation mean and any restrictions on those variables are also made clear.

Blog Entries: 8
Recognitions:
Gold Member
Staff Emeritus
 Quote by Jimmy Snyder Shouldn't that be $$f:\mathbb{R}\rightarrow \mathbb{R}^{+}:x\mapsto x^2$$
not necessarily. You're the second to make that remark...

Blog Entries: 1
Recognitions:
Gold Member
 Quote by Strill And frankly, I see no reason why functions should not be represented as algorithms for the purpose of teaching. Algorithms explain the relationship behind the function much more clearly and precisely than someone's lecture or essay.
An example of an uncomputable function in your chosen field:

Function: domain: Turing Machine input strings; Result: 0 if Turing machine terminates eventually, 1 if it doesn't.

A function from strings to a bit value. Completely uncomputable.

 Actually, I agree, I feel that the problem most high school students run into is that the mathematics is too rigorous. Kids see the crap about how a function is a 1 to 1 map between sets, which of course is ultimately the right way to think about it, and freeze up because they haven't gone through enough mathematical language (they don't even care about mathematical language). If all kids get are definitions and algorithms, i.e. this is what this concept is defined as and this is how it fits into math world, they are not going to be interested. As it is taught now, math isn't interesting until calculus. So, I have to say, I agree that math should tone down how rigorous it is to beginners and instead teach students how to reason and analyze with math. Who cares if 99% of the population doesn't think about functions in the proper, pure math way, it's a hell of a lot better than 99% of the population who can't even think about functions!

 Quote by Strill From elementary to high school I've had teachers who've droned on and on trying to explain minute details about the concepts they're teaching. I've almost always found it more difficult to follow the teacher's train of thought than to just learn the concept myself, so I always just read the book during lecture. I mean "read" in the loosest sense of the word though, as I'd just skim through looking for the equations. From middle-school and upwards, the textbooks were written so as to be incomprehensibly dense to any student not three grade levels higher than the grade the book was intended for. The most peculiar aspect of this arrangement was that I always found that solving the problem always depended on only a few things. Far less than the length of the teacher's lectures would suggest. When I got to college and took computer science classes we had to document our code. For each function we needed to present a concise explanation of: 1. What the function does 2. What the function's arguments are and how they relate to what the function does 3. What conditions the function requires in order to work properly. And it hit me. These three things are all you need in order to use any mathematics equation. And so I'm baffled. All the math and science textbooks are designed around the author raising some question about the concept, going through a derivation, and arriving at an equation that answers the original question. Even ignoring the fact that the questions raised by the book have almost always been incomprehensible to me, you still have the fact that this form of teaching results in the important information being strewn all over the place. The explanations on what the variables are could be in any chapter, the explanation of what the function does is written in terms of its derivation and mixed all throughout the section, and the conditions on the function's use are hidden somewhere in the derivation. In the worst case, you have arguments that are only defined in tiny tables in the margins of some page in the last chapter. So this makes me wonder: What is the use in making students go through all this hullabaloo? Why can't a mathematics textbook, for each equation, provide concise summaries of what the function does, what its arguments are and how they relate to the function, and what conditions invalidate the function? I see absolutely no use in making the student skip and hunt around the book every time they want to do a homework problem. I personally find it much easier to understand mathematics by relating the equations to the concepts than trying to piece together some half-hazard imprecise English explanation, or some dense, etymologically sterilized "mathematically correct" explanation.
Any decent mathematics book should do what you are saying.

Sometimes the definitions themselves are found in the Appendix or in part of the preamble of the textbook.

I do agree though that a lot of mathematics books do gloss over things and they do not retain the context that is required for a more intuitive understanding.

Having said this there are, nowadays, a lot more resources and people are realizing that there are people who need the extra context and explanation that is usually stripped out of many textbooks.

If you find a book that outlines all the structural definitions in set notation, as well all the constraints, then that should be sufficient to understand the question completely.

As for working out mathematical problems, that is not so clear cut. Everyone has problems for using results in creative ways, even the mathematical experts. I don't know if there is an optimal way to do this, and I have not come across a universal approach in my readings.

George Polya wrote on this topic in his book "How to Solve It", but I am unaware of any other sources that analyze heuristics in a more general way.

 Quote by PAllen An example of an uncomputable function in your chosen field: Function: domain: Turing Machine input strings; Result: 0 if Turing machine terminates eventually, 1 if it doesn't. A function from strings to a bit value. Completely uncomputable.
What do you mean by "Completely uncomputable"? Do you mean that it cannot be computed for all Turing machines, that it cannot be computed for some Turing machines, or that it cannot be computed for a specific Turing machine? Because for a Turing machine without a rule to terminate, this function would always equal 1.

I get the feeling that this is only uncomputable because it's been defined so as to exclude some of the variables on which its result depends.

 Quote by chiro As for working out mathematical problems, that is not so clear cut. Everyone has problems for using results in creative ways, even the mathematical experts. I don't know if there is an optimal way to do this, and I have not come across a universal approach in my readings.
Certainly, but the purpose of most classes is to give the students a general or at least satisfactory understanding on the current topic, not to teach them every possible way of manipulating an equation. I would argue that teaching students an algorithm provides a base from which they can later understand the more creative ways of working the equations, just as teaching first graders algorithms for arithmetic provides them a base from which they can later understand more complex math concepts.

Blog Entries: 1
Recognitions:
Gold Member
 Quote by Strill What do you mean by "Completely uncomputable"? Do you mean that it cannot be computed for all Turing machines, that it cannot be computed for some Turing machines, or that it cannot be computed for a specific Turing machine? Because for a Turing machine without a rule to terminate, this function would always equal 1. I get the feeling that this is only uncomputable because it's been defined so as to exclude some of the variables on which its result depends.
I was slightly imprecise, because I thought the context was obvious. I mean a Universal Turing Machine with at least one FINAL state.

That it is uncomputable, in principle, by any algorithm, is a fundamental result in computer science. I assumed you would be familiar with this - the example was meant to show you already knew an example of an uncomputable function, that is never the less well defined.

 Quote by Strill Certainly, but the purpose of most classes is to give the students a general or at least satisfactory understanding on the current topic, not to teach them every possible way of manipulating an equation. I would argue that teaching students an algorithm provides a base from which they can later understand the more creative ways of working the equations, just as teaching first graders algorithms for arithmetic provides them a base from which they can later understand more complex math concepts.
This is already done in mathematical teaching, at least in the university environment that I am familiar with.

Having said this, the algorithmic approach needs to be complemented with the mathematical approach. You can not just present an algorithm with no theoretical background.

As a real example, I am doing a course on Bayesian Inference, and we have different MCMC techniques that will simulate the distribution of a set of parameters using specific models and the MCMC algorithms.

Now if you look at some of these MCMC and other similar algorithms, it doesn't make sense intuitively. These algorithms use very powerful and modern theorems to guarantee that they actually work. At least for me, the intuition was not there, and I will be reading these theorems later on to actually understand why you actually get convergence to true distributions and not take it on faith alone.

 Quote by PAllen I was slightly imprecise, because I thought the context was obvious. I mean a Universal Turing Machine with at least one FINAL state. That it is uncomputable, in principle, by any algorithm, is a fundamental result in computer science. I assumed you would be familiar with this - the example was meant to show you already knew an example of an uncomputable function, that is never the less well defined.
Nope, they taught us about Turing machines, but never about universal Turing machines.

Blog Entries: 1
Recognitions:
Gold Member
 Quote by Strill Nope, they taught us about Turing machines, but never about universal Turing machines.
A Universal Turing Machine is simply one that is general enough to emulate any other Turing Machine, therefore able to solve any computable problem. It doesn't take much. There is an example of a cellular automaton with a few simple rules that can function as a Universal Turing Machine.

See http://en.wikipedia.org/wiki/Halting_problem for a description of the famous result. However, if interested, read one of the references at the bottom. The one I studied was:

http://www.amazon.com/Introduction-A...9260470&sr=1-2

However, a colleague recommends Roger Penrose "Emperor's New Mind" as having a fully adequate, more accessible treatment (you may ignore his quantum theory of consciousness; or not; as you choose; not mainstream, but Penrose is no crank).

 Quote by Mindscrape Actually, I agree, I feel that the problem most high school students run into is that the mathematics is too rigorous. Kids see the crap about how a function is a 1 to 1 map between sets, which of course is ultimately the right way to think about it, and freeze up because they haven't gone through enough mathematical language (they don't even care about mathematical language). If all kids get are definitions and algorithms, i.e. this is what this concept is defined as and this is how it fits into math world, they are not going to be interested. As it is taught now, math isn't interesting until calculus. So, I have to say, I agree that math should tone down how rigorous it is to beginners and instead teach students how to reason and analyze with math. Who cares if 99% of the population doesn't think about functions in the proper, pure math way, it's a hell of a lot better than 99% of the population who can't even think about functions!
One of the biggest problems I see is the disconnect that occurs between some of the foundational math concepts and the application. I'm reminded of this in our tutoring center every year. Students are taught identities like 1*x = x, but don't understand why they're taught it (and are having problems conceptualizing the operations to find lowest common denominators).

So, I'm partially agreeing with you but only in the fact that rigor is often being used as a substitute for the instructor connecting the dots between concepts. IMO the foundational concepts are being tossed aside for parroting problems in pre-college math.

 Quote by Strill From elementary to high school I've had teachers who've droned on and on trying to explain minute details about the concepts they're teaching. I've almost always found it more difficult to follow the teacher's train of thought than to just learn the concept myself,

I can relate to what you say. In my own experience I always found theory and practice to be almost two different things.
Practice, that is solving problems and exercise, require the use of formulas that can be used in the way you describe, just like computer "functions". About those functions you just need to know basically what do they take as an input, how to treat the output and their limitations, how to use them.
By doing that, you can really ignore the theory which is behind those formulas, you use them just as tools, and just like any tool, you really can ignore how they've been built, what they are made of, etc.
Quite surprisingly, I have discovered in my school years that in general people find more difficult to solve a problem than to learn pages and pages of theory. That is, I suppose, because people in general learn things by memorizing them to heart, without much understanding the purpose of what they're learning.

Recognitions:
Homework Help
 Quote by Ben Niehoff A mathematical function is just a 1-to-1 map between sets, that is all.
You're not talking about 1-to-1 functions, are you? That's what it sounds like, where exactly one input is paired with exactly one output. If so, then that's not correct, because not all functions are 1-to-1.
{"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 1, "mathjax_display_tex": 1, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0, "url": "http://www.physicsforums.com/showthread.php?p=3572240", "fetch_time": 1369172541000000000, "content_mime_type": "text/html", "warc_filename": "crawl-data/CC-MAIN-2013-20/segments/1368700626424/warc/CC-MAIN-20130516103706-00041-ip-10-60-113-184.ec2.internal.warc.gz", "warc_record_offset": 659152275, "warc_record_length": 16144, "token_count": 4261, "char_count": 20385, "score": 3.578125, "int_score": 4, "crawl": "CC-MAIN-2013-20", "snapshot_type": "latest", "language": "en", "language_score": 0.975688636302948, "file_path": "/sailhome/yjruan/project/latent-lm/data/processed/finemath-4plus/finemath-4plus/train-00023-of-00064.parquet"}