Has anyone tried as an additional technique the "fill-in" method?
This is based on the tried and tested method of teaching called "reverse chaining". To illustrate it, if you are teaching a child to put on a vest, you do not throw it the vest and say put it on. Instead, you put it almost on, and ask the child to do the last bit, and so succeed. You gradually put the vest less and less on, the child always succeeds, and finally can put it on without help. This is called error-less learning and is a tried and tested method, particularly in animal training (almost the only method! ask any psychologist, as I learned it from one).
So we have tried writing out a proof that, say, the limit of the product is the product of the limits, (not possible for a student to do from scratch), then blanking out various bits, which the students have to fill in, using the clues from the other bits not blanked out. This is quite realistic, where a professional writes out a proof and then looks for the mistakes and gaps! The important point is that you are giving students the structure of the proof, so that is also teaching something.
This kind of exercise is also nice and easy to mark!
Finally re failure: the secret of success is the successful management of failure! That can be taught by moving slowly from small failures to extended ones. This is a standard teaching method.
Additional points: My psychologist friend and colleague assured me that the accepted principle is that people (and animals) learn from success. This is also partly a question of communication.
Another way of getting this success is to add so many props to a situation that success is assured, and then gradually to remove the props. There are of course severe problems in doing all this in large classes. This will require lots of ingenuity from all you talented young people! You can find some more discussion of issues in the article discussing the notion of context versus content.
My own bafflement in teenage education was not of course in mathematics, but was in art: I had no idea of the basics of drawing and sketching. What was I supposed to be doing? So I am a believer in the interest and importance of the notion of methodology in whatever one is doing, or trying to do, and here is link to a discussion of the methodology of mathematics.
Dec 10, 2014 I'd make another point, which is one needs observation, which should be compared to a piano tutor listening to the tutees performance. I have tried teaching groups of say 5 or 6, where I would write nothing on the board, but I would ask a student to go to the board, and do one of the set exercises. "I don't know how to do it!" "Well, why not write the question on the board as a start." Then we would proceed, giving hints as to strategy, which observation had just shown was not there, but with the student doing all the writing.
In an analysis course, when we have at one stage to prove $A \subseteq B$, I would ask the class: "What is the first line of the proof?" Then: "What is the last line of the proof?" and after help and a few repetitions they would get the idea. I'm afraid grammar has gone out of the school syllabus, as "old fashioned"!
Seeing maths worked out in real time, with failures, and how a professional deals with failure, is essential for learning, and at the reasearch level. I remember thinking after an all day session with Michael Barratt in 1959: "Well, if Michael Barratt can try one damn fool thing after another, then so can I!", and I have followed this method ever since. (Mind you his tries were not all that "damn fool", but I am sure you get the idea.) The secret of success is the successful management of failure, and this is perhaps best learned from observation of how a professional deals with failure.
This is a long comment; hence, community wiki status.
Gamification is not the embedding of educational content into a game. Gamification is the construction of elements typically found in games around a traditional paradigm, whether it be education, training, marketing, etc. This mistaken understanding is a common fallacy and a big reason why there are so many failed attempts at "making learning fun."
Believe it or not, games aren't fun because they're interactive, or have good graphics, or involve knocking things over or shooting things, or anything else like that.
Games are fun because they happen to satisfied a user's intrinsic psychological needs. In fact, most gamers will encounter exceptional frustration at their favorite games. This is certainly not the description of "fun" that most people have!
What games do is they create a framework in which self-actualization is possible. Games synthesize a progression structure in which a user is able to demonstrate competence. Good games also allow a user to dictate their own courses of action, giving them autonomy. And great games allow us to be social with them, creating a sense of relatedness.
Consider any great student: aren't they proud of themselves when they solve a hard problem, even if it frustrated them for hours? Aren't they the ones that like to read three chapters ahead and stay with you after class? Aren't they the ones that like to show their peers the "tricks" they've discovered?
This is what games do. Any mathematical area can be gamified if you do it right. Doing it right is exceptionally hard, which is why most math games are exceptionally boring.
Does adding a colorful graphic make a cosine more fun? No. Does spinning a graph with a mouse make learning about graph theory more fun? No.
None of these things are fun and interesting unless the user is already motivated to see where it goes. To most students, they don't care, so a video game is just a different flavor of worksheet.
If you want to gamify math, don't make the game math. Make the game something else. Make it a story. Give them something to care about, and make mathematics the gateway. Gate rewards behind problems. Scale rewards based on difficulty. The game should have almost nothing to do with mathematics, but rather should motivate students to use the mathematics to uncover the things they're intrigued about.
The star pupil is motivated by learning, and that's great. But the average student doesn't have this motivation, so we need to give it to them somehow. And if you're really clever, you can then tie that story into math, but don't feel like it has to be math. Make it feel like the student can achieve their own goals. Make them want to solve difficult problems and overcome frustration.
If the student hates math, the solution isn't to make the reward more math.
Best Answer
As a comp sci major who dabbles in math, let me throw my perspective into this.
Debugging math is a completely different experience from debugging programs. The difference is that while we have programs, they (tend to be) imperative - that is, they list out a series of steps that need to be followed.
(I know that this is a gross generalization, and that Haskell/LISP/Scheme/Functional Programming languages exist and they aren't that way, but most "general" programming languages are imperative.)
In math, you generally have a set of statements that you "bring together" to get a solution. It's more of an expression than a recipe if that makes sense to you.
However, the nice part is a lot of the intuition of debugging carries over.
Some principles that carry over very nicely:
Isolate a problem, get the minimal failing example. This works in both math and compsci. If you have a general formula, substitute small values like $0$, $1$, etc. as a sanity check.
Breaking things gives you a better understanding of how they work. When you read a theorem or code anything, always push the boundaries of what you're doing. Ask yourself - "what would happen if I do not have this statement in my proof"? "What if I eliminate this line"? "Is this assumption really necessary"? Playing with math and trying to break it often helps in learning it as well.
Also, some branches of math are just straight up weird, and require you to build intuition about them - You won't find the ideas intuitive at all when you begin (topology was like this for me when I began learning it), but you gradually pick up styles of thinking that complements the branch of math you're studying.
Another great "debugging tool" is to plug in good examples into theorems / problems whenever you face something too generic. Always arm yourself with at least 3 to 4 examples for any topic, so you can quickly fact-check about things (and refer back to those examples). It's also nice to have non-examples to things to know the difference.
If you've taken calculus, then knowing your examples would be
There are books such as counterexamples in topology that will arm you with a whole bunch of examples to think about. Things like these are super useful the more abstract you get in math.
One last thing you can do as a programmer is to actually write code that checks a hunch you have - this is a huge advantage and don't be afraid to exploit this. Think something is true but feel too lazy to check it? Code it! It's not only practice, but it often teaches you some really cool math facts as well.
Hope this helps as a rough guide on how to debug math :)