IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New The three hardest things to teach

- Basic problem-solving (That is, breaking the problem down into smaller pieces and then solving the smaller pieces. It also involves solving the problem *before* you sit down and code.)

- Basic debugging skills (Your code doesn't work. Now what? Many of my students panic and break out in flop sweat, not knowing even where to start.)

- Research (By this I mean, digging and digging through anything you can get your hands on until you come up with the (or 'an') answer.)


Maybe these aren't skills that can be taught. Some days I'm not sure, and this is one of those days. (In school for fourteen hours today and ended my night class by getting reamed out by one one my students who has chosen this moment to complain that the last nine weeks didn't make any sense to her and that it was entirely my fault.)

Tom Sinclair
Speaker-to-Suits

Sometimes it's better to light a flamethrower than curse the darkness.
-- (Terry Pratchett, Men at Arms)
New There's a fourth and a fifth.
4. Keeping state in your head.

I often finding myself working on several pieces of code more or less at once, usually because one piece is called by several others. Keeping track of where you are up to in at least four or five disparate places is something that was nevered mentioned when I (many years ago now) did programming classes. But then, I can't think how on earth you would teach it!

5. Code modularity.

This I learned through sheer experience. IMHO, it is the only way to learn it.

Wade.

"All around me are nothing but fakes
Come with me on the biggest fake of all!"

New Good ones!
Tom Sinclair
Speaker-to-Suits

Rincewind could scream for mercy in nineteen languages, and just scream in
another forty-four.
-- (Terry Pratchett, Interesting Times)
New Code modularity
5. Code modularity.

This I learned through sheer experience. IMHO, it is the only way to learn it.

For the first two or three years out of college, I programmed haphazardly. I suffered the common affliction of many people who enters the work force: an attack of amnesia about stuff they may have tried to teach in college. I found myself writing routines with hundreds of lines of code, lots of global variables of course, routines doing several different unrelated things...

A coworker happened to have Yourdon and Constantine's Structured Design on his bookshelf. Even then it was years old, and out of print, but I started reading it, and after having worked for a couple of years, all of a sudden a lot of the concepts they'd tried to pound into my head in college made sense.

And like you, I think most people need experience before they can properly appreciate the concepts.
"Beware of bugs in the above code; I have only proved it correct, not tried it."
-- Donald Knuth
New Oh, aye.
I first realized what I was doing when I was learning how to write Win16 programs in C after quite a few years doing them for DOS. After three or four programs (projects), I setup a skeleton program to give me a head start every time I started a new one. Then I noticed repetitive code to do things like colour dialog box controls (e.g. for a splash screen), or handling DDE. After I created include files and libraries for that, I realized this was because I had taught myself modular programming.

You need the bad experiences to know why it is A Good Thing. But you need to have then developed your own systems to know How To Do It. And then you need several different environments and/or languages so you get to Do It A Different Way. Only then are you ready to work with Someone Else's Idea Of Modularity. :-)

Wade.

"All around me are nothing but fakes
Come with me on the biggest fake of all!"

New Oh sigh
And then you need several different environments and/or languages so you get to Do It A Different Way.

Sigh. It's difficult to crack the concrete one gets snared in it. I like Perl for this reason, in that it's hard to get set in the concrete, but the more I get into Perl the more I am horrified about it. Call it an old crusty C programmer blather, but Perl shorthands curl my remaining hair.
"Beware of bugs in the above code; I have only proved it correct, not tried it."
-- Donald Knuth
New Well, if you do "5" right, "4" isn't so much of an issue
If your pieces are small enough, you should never need to change more than one at a time. Whenever I find a problem that requires changing more than one class at a time to fix, I break something out into a new class, because obviously the functionality wasn't properly isolated. (Modulate this for "fix it now" vs. "fix it right" of course.)
We have to fight the terrorists as if there were no rules and preserve our open society as if there were no terrorists. -- [link|http://www.nytimes.com/2001/04/05/opinion/BIO-FRIEDMAN.html|Thomas Friedman]
New You mean it's less of an issue.
I am currently employed doing PHP programming for a HTTP application. The code is actually fairly modular, but in only two weeks I have lost track of the times I've had to modify or extend some other module whilst working on two other (related) things at once and then had to repair some slight breakage because of my lower-level repair. Thank God for GNU screen and split windows in vim! :-)

Wade.

"All around me are nothing but fakes
Come with me on the biggest fake of all!"

New How to make it even less of an issue.
Write your unit/regression testing for everything as you go.

When you make any change, run all the tests. Either a previous test will catch some breakage (most of the time), or you will find some new interesting border-condition breakage (write a new test to cover that too), or nothing will have broken at all.

This kind of testing methodology makes even large-scale system changes very impact-free.
Regards,

-scott anderson
New that's pretty crappy
Hope you explained to her that you're not psychic and that it's her responsibility to ask for help and/or clarification of things she didn't comprehend.

Darrell Spice, Jr.

[link|http://home.houston.rr.com/spiceware/|SpiceWare] - We don't do Windows, it's too much of a chore

New When you get stuck...
...seek help early.

Negative slack accumulates. The best way to head it off is at the beginning. I'd have had a heart-to-heart with the student telling her that the lesson she should take from the class is the one she's coming to you with: the time to bring up problems and issues is at the beginning of a project, so that you can rejigger your plan or actions. The end of class (or day before project deadline) is far too late for that.
--
Karsten M. Self [link|mailto:kmself@ix.netcom.com|kmself@ix.netcom.com]
What part of "gestalt" don't you understand?
New I think she's her own worst enemy

She seems very inflexible in her thinking. The ironic thing is, she's quite intelligent and if she had spent as much time working on the material as she did complaining about it, she could've breezed through the course.

Tom Sinclair
Speaker-to-Suits

Getting an education was a bit like a communicable sexual disease. It made
you unsuitable for a lot of jobs and then you had the urge to pass it on.
-- (Terry Pratchett, Hogfather)
New Is it typical youth response?
"That old fart can't possibly know what he's talking about, and he's sooooo unfair not to have noticed me having problems."
"Beware of bugs in the above code; I have only proved it correct, not tried it."
-- Donald Knuth
New Well...
There's a certain amount of the would-be martyr in most people of that age (18-25 or thereabouts) but I've found it doesn't show up in the classroom that often.

My personal philosophy (and one that's shared by the school, thank goodness) is one of 'tough love'. That is, I'll bend over backwards and do whatever I can to get a student through their class (and ulimately their program) if they show a willingness to make even a token effort. However, a student is ultimately responsible for their own education and therefore freedom to succeed also means freedom to fail.

Fortunately most students I've met are concerned with doing well in class and for the classes I teach that means understanding the material and doing the work. In my classes, you get the grade you earned.

Tom Sinclair
Speaker-to-Suits
New Exactly. I only got to do this once...
I absolutely agree that CS, like math, is cumulative. Make a habit of always reviewing fundamentals, and the rest falls in place. Furthermore questions on current material usually arise from problems in fundamentals. Partial understandings look at the time like they work, but it is not until they are pushed later that you can really see what you are missing...

A story I may have told before.

Just once have I had the guts and opportunity to teach kids like I think they should be taught. Suffice it to say that fellow grad students and faculty thought the final was insanely hard. They aced it. From several accounts they didn't study for it either - those who tried quickly realized that they knew it cold. 6 months later they said it stuck. So it seemed to work.

But they hated me for it. Hmm...there may be a moral here.

Some of the key points?

  1. Cumulative daily homework. The homework is in thirds. 1/3 easy questions from today. 1/3 medium questions from the last week. 1/3 hard questions from any topic so far covered. Hard questions are tailored towards points I think there is some weakness.
  2. Homework is not accepted late. No ands, ifs, or buts. A fixed number of homeworks are not counted in the grade, and that rather generous number was picked to cover all of the routine sickness, lateness, needed to study for a test, etc that comes up in a term.
  3. 15 minute question and answer session to start each class. The ground rules are that someone will ask questions and someone will answer. You don't want that someone to be me. :-) Questions that came up did, of course, influence the homework session.
  4. Lots of class interaction. I tried to ask each person a question at least every other class. (Class size 15.) Questions were not unreasonable. They were things like, "What should I do next?" before a routine step. (I was making sure they were following, not trying to stump them.)

If I had to do it again, what would I change? Probably the amount of class interaction. But stressing that the material was always cumulative was good. The homework policy worked great. (Several friends have borrowed that with some success.) The opportunity (and incentive!) to fill in holes in past knowledge served an important need. But asking them to stay awake made them work harder than they wanted to.

OTOH the class interaction was probably the key to having them learn the material so completely...

Cheers,
Ben
New ::chuckle::
Everything I know I either (a) learned from teachers I hated or (b) dug out on my own, cursing all the while because I wanted to do something else and needed that to get on with it.

Conclusion: If the students love the teacher, the teacher isn't teaching.
Regards,
Ric
New Hmmm...
>Conclusion: If the students love the teacher, the teacher isn't teaching.

Well, *I* feel better now....

Tom Sinclair
Speaker-to-Suits

Just because it's not nice doesn't mean it's not miraculous.
-- (Terry Pratchett, Interesting Times)
New Watch it. That law isn't commutative :-)
New Not necessarily true.
My mother was a Spanish teacher in the middle school that a lot of my classmates in high school came from. She was probably the favorite teacher that a lot of them had - and they were all so fluent in Spanish by the time they got to high school, that they were able to skip right on to the AP Spanish class instead of taking Spanish I over again, like all the other students who had studied Spanish before.
"He who fights with monsters might take care lest he thereby become a monster. And if you gaze for long into an abyss, the abyss gazes also into you." - Friedrich Nietzsche
New Depends on the student
My favorite teacher in high school was the English teacher I argued with all year. No animosity, just disagreeing on interpretations. The thing I liked was that she actually allowed a student to challenge her in class and deal with the criticism. Got good grades and aced the AP exam. I still think she was wrong, BTW.
We have to fight the terrorists as if there were no rules and preserve our open society as if there were no terrorists. -- [link|http://www.nytimes.com/2001/04/05/opinion/BIO-FRIEDMAN.html|Thomas Friedman]
New That depends
If the students don't want to learn but they learn anyways, they won't like the teacher.

If they want to learn, they will.

That said, I don't know how to get someone else to want to learn. It has never been a problem for me, so I don't know how to address it in someone else.

Cheers,
Ben
New Actually...

When she complained that she hated OOP and couldn't possibly understand it, I just said, "Hey, welcome to the 21st Century. Good luck with C++ next term."

Bear in mind, though, I had been there for fourteen hours straight.
Tom Sinclair
Speaker-to-Suits

The Patrician was a pragmatist. He never tried to fix things that worked.
Things that didn't work, however, got broken.
-- (Terry Pratchett, Soul Music)
New Bryce's sister?
jb4
(Resistance is not futile...)
New Mmmmmmaybe...
She didn't mention anything about tables, though, so it might be a distant relation.

There is a spiritual link, in any event.
Tom Sinclair
Speaker-to-Suits
New Code Complete, Ch. 32
It's the chapter that summerizes the book. It covers the issues you describe here, as well as others mentioned (and not) by others. By Steve McConnell, Microsoft Press, 1991.
--
Karsten M. Self [link|mailto:kmself@ix.netcom.com|kmself@ix.netcom.com]
What part of "gestalt" don't you understand?
     Giant Question: who is competent in IT ??? - (Ashton) - (38)
         Looks like I found me a new line of work. - (nking)
         We had that debate circa 1990 in Alaska - (boxley) - (2)
             NJ tried that with programmers, I think -NT - (tjsinclair)
             Too many political issues - (nking)
         *giggle* Nice connundrum! - (jb4)
         The answer is obvious . . - (Andrew Grygus) - (32)
             So I tell my students... - (tjsinclair) - (30)
                 Re: So I tell my students... - (wharris2) - (29)
                     Thanks! - (tjsinclair) - (28)
                         Where to look things up - (wharris2) - (27)
                             The three hardest things to teach - (tjsinclair) - (24)
                                 There's a fourth and a fifth. - (static) - (7)
                                     Good ones! -NT - (tjsinclair)
                                     Code modularity - (wharris2) - (2)
                                         Oh, aye. - (static) - (1)
                                             Oh sigh - (wharris2)
                                     Well, if you do "5" right, "4" isn't so much of an issue - (drewk) - (2)
                                         You mean it's less of an issue. - (static) - (1)
                                             How to make it even less of an issue. - (admin)
                                 that's pretty crappy - (SpiceWare) - (14)
                                     When you get stuck... - (kmself) - (10)
                                         I think she's her own worst enemy - (tjsinclair) - (2)
                                             Is it typical youth response? - (wharris2) - (1)
                                                 Well... - (tjsinclair)
                                         Exactly. I only got to do this once... - (ben_tilly) - (6)
                                             ::chuckle:: - (Ric Locke) - (5)
                                                 Hmmm... - (tjsinclair) - (1)
                                                     Watch it. That law isn't commutative :-) -NT - (Ric Locke)
                                                 Not necessarily true. - (inthane-chan)
                                                 Depends on the student - (drewk)
                                                 That depends - (ben_tilly)
                                     Actually... - (tjsinclair) - (2)
                                         Bryce's sister? -NT - (jb4) - (1)
                                             Mmmmmmaybe... - (tjsinclair)
                                 Code Complete, Ch. 32 - (kmself)
                             Re: Where to look things up - (lister) - (1)
                                 Same here - (SpiceWare)
             Re: The answer is obvious . . yes, it is. - (Ashton)

But if you're not fond of offal, they're prolly not good.
177 ms