Recursion is really frequently a tough one for people – even many otherwise good computer science (and math) students. Generally, the time you use recursion is when you have a subproblem that needs to be solved before the main problem OR when your subproblems are the exact same problem as your main problem (but smaller). For instance, the definition of a Tree data structure is actually that there’s a node with zero or more “children” that are also trees, so when you solve a problem with a tree and you haven’t arrived at a solution, the “obvious” method is to just try to solve the problem again on your children, as if they weren’t even attached to the node you were just testing at all.
But really don’t be discouraged, recursion really is a bitch. Especially mathematical analysis of recursive functions – it’s easily one of the more gnarly branches of analysis, especially because a lot of standard techniques aren’t even guaranteed to yield an answer. In fact, I’m fairly confident in saying that there exists no technique guaranteed to yield a solution in the general case.
I’m actually pretty sure there are several computer science people who are happy you don’t understand recursion, there’s a lot of prejudice against it in some circles (mostly due to performance concerns that can be alleviated by restructuring the problem to not be recursive).
After my own experiences with programming, and my recent attempts to teach logic, I have been starting to think that recursive thinking is one of the most important skills a person can bring to bear on life. I was playing around with designing a course together with one of our computer science profs called something like “Recursion and the things you care about.” Kind of a “how to think like a programmer” course about non-computer-themed problems.
Both save the document. If you click “save,” the document keeps its current name. If you click “save as,” the document gets a new name and a copy with the old name remains on the disk.
Someone who can’t understand that can’t understand simple, basic English! How such a person could not be a “dummy” I do not know.
Face Blindness was mentioned above. [url=http://www.faceblind.org/facetests/ff/ff.php]Here’s a test for it.
I’ve always half-wondered whether I may have a weak form of it, but I passed this test with flying colors. There was one person I couldn’t identify, but I was a lot less familiar with them than any of the others.
I found identifying faces without hair to be kind of challenging. For a few of them I had to think about it for several seconds. Is it challenging for everyone?
No. The cops and teachers taught kids to ride with the traffic on the road in the 60’s and 70’s. Use your hand signals too. Riding against traffic seems to have become epidemic around here for the last couple decades. Included with this is having no lights or reflectors and riding in the road at night.
One of my friends was slender for a while, then very overweight, went on Weight Watchers and dropped 52 lbs, then gained it all back later. Now she eats all the wrong things, eats dinner in the middle of the night/early morning (usually heavy stuff) and then goes to bed, but can’t figure out why the weight isn’t coming off since she goes to the gym a few times a week.
She was a college classmate of mine who never, ever, should have been allowed to pass to second-year in that particular major. She had a good literal memory, but her graphic ability was even worse than her people skills (and by the time a bunch of engineers describe a classmate as being people-null, you know they have to be mind-boggling); she would have done well in the Humanities, but in Chemical Engineering she fit as well as… as I would have in Law School, which is not at all. We’d give her a wood figure, show her a symmetry element describing how it worked (“the half of the cube that’s on this side of the plane is the mirror image of the other half, see, this point matches this one, this face matches this other one and so forth”), ask her to look for another element of the same type, and she’d turn it over around andaroundandaround, faster and faster, as if she was expecting it to be written on the object.
I can understand having some difficulty finding the symmetry elements on an irregular prismoid, but on a cube or a sphere?
She couldn’t. She just could not. Explaining color to a blind person is easier than explaining geometry to Her.
I don’t understand why people complain about the cost of going to a sporting event and then, to prove their point, factor in buying hot dogs, beer, programs, etc. and spending $300 or more…I buy a cheap bleacher seat and get out of there for about $25-30.
People thinking hoarders are just lazy, instead of mentally ill.
After years of a TV show where we have seen people keeping live and dead animals in the hundreds, buckets of human feces, etc, inevitably someone will still say man how can someone be that lazy.
When I had to write a FORTRAN program for a class, I just wrote it in BASIC (which I’d learned with a much-better teacher) and cleaned up the only syntax error I got. The loop I used was a “for… next”, which the FORTRAN teacher hadn’t taughts to us but which I understood better than the “do… while” he’d taught. I think one of the reasons so many programs / languages have more than one way of doing things is that different people understand one way best. So, it’s important to explain more than one.
You’d think! I even went to the effort of duplicating the whole process with real pieces of paper. “Save As” means copying the paper (laboriously by hand) and storing it in a new location (literally and physically in his file cabinet.) He still didn’t get it!
Yet…he’s a trained engineer, a manager, a good speaker, reads widely, an ex-Navy pilot. (Navy pilot! I guess it’s not impossible to be one and to be a dummy, but, wow, that’d be a tough combination!)
I think it just comes down to a weird mental blind spot, and I think this thread suggests that a lot of us have those.
Wouldn’t you want to see if the person coming up on you is aware of you (swinging out wide to pass) or if they’re going to run you over? 50 vs. 65 relative speed won’t make a difference, you’ll be dead either way, but being hit vs. not being hit…that will make a difference.
But drivers don’t expect to see people heading towards them in their own lane. They do expect to see traffic (including cyclists) ahead of them going in the same direction. If I tried something as dumb as riding towards incoming traffic it would cause total chaos. Horns blaring, cars swerving out of the way, quite possibly someone stopping and clouting me for being a moron.
On a bike you are part of the traffic flow. Riding against traffic instead turns you into some kind of lunatic trespassing in the road.
I first learned to do recursion in an assembly language class. And this was on an older machine (a Control Data 6400) that didn’t have any native support for stacks in its instructions set – you had to do it all yourself!
Programmers learning to do recursion with a high-level language that manages a stack and memory allocation for you aren’t learning the half of it!
And BTW, Jragon and Frylock, you can count me as one of those programmers, I’m with that crowd that believes that the excessive and knee-jerk reliance on recursion is an abomination. It can certainly make certain kinds of algorithms easier to code, but for some kinds of problems, it comes at the expense of being profoundly inefficient (compared to any iterative algorithm) – The typical recursive coding of the Fibonacci function is a prime example. For programmers who rely to heavily on recursion, it becomes a crutch to lean on instead of, you know, actually solving the problem.