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 Where to begin?
Much of programming is just mechanics of various idioms - so teach them idioms.

Plus - good programmers are likely to be self-motivated. If you give them touchy-feely instruction they will resent it and more, they will see right through the BS. I always taught for the best students and hoped they'd pull the rest up a level - and it worked.
-drl
New Details?
What's your approach for newbies?

What kind of academic setting was this?

Tom Sinclair

"Man, I love it when the complete absence of a plan comes together."
- [link|http://radio.weblogs.com/0104634/|Ernie the Attorney]
New Re: Details?
I taught calculus and linear algebra to 1st and 2nd year engineering students at Ga. Tech - that's how I paid for school :) Because everyone had to take core math classes at a non-trivial level, the sections were huge - a 5 hour class consisted of a professor lecturing 3 hrs a week to 200 or so students, while 5 or so teaching assistants would conduct the other 2 hrs as problem solving, test discussion etc. Since what we did was more or less up to us as long as we covered the appropriate sections of the book, I used at least half the time explaining the ideas in practical terms and illustrating with zillions of examples, particularly from physics which gave them a head start on the core physics courses to come the next year. I made them do hundreds of problems which made a lot of extra work for me, but it was well worth it because my students were *good*. We almost always topped the list of TA sections. I never coddled them but my door was always open. I explicitly used Feynman's advice to aim at the best students - when you do this a weird "symbiosis" takes over, the mental climate of the class gets more charged, and the middle students do better - so the main things were lots of mechanical work - idioms - practical explanations, and aiming at the top students.

In the context of programming - if it's a beginning class then what they most need to master is the mechanics of making programs - understanding what a compiler does, what a linker does, generalities of machine architecture etc. Then throw algorithms at them and have them implement them in the language of choice. If they are comp-sci majors they can handle C as a first language - like cranking out multiple integrals and eigenvectors, the very process of working with C will provide a firm basis for higher level work. "Pair programming", "XP" and all that BS at an early stage sounds too much like "new math". If you had time to prepare (this can't be overstressed in teaching - preparation is everything) you could work out a step by step program for writing a complete, non-trivial application, say, a Rolodex, a comp-sci calculator, etc.

In short - in the early stages, play God, be God, live God. They want to be instructed. The NEED to be instructed.
-drl
New Good points, thanks
I'm not trying to teach XP at this point, just brainstorming about new ways to approach an introduction to programming.

Westwood is not a traditional college, but a technical/vocational school that offers four year degrees as well as associate certificates. Therefore, our student demographic consists mainly of folks who would not do well in a traditional university setting. Therefore, while we certainly use most of the usual teaching techniques, we also try to think about creative ways to present the material to our students.

So, we keep lecturing to a minimum, hands-on practice to a maximum. The reason I was thinking about pairing students up was two-fold:
- Our class sizes are usually fairly small, from 9 to twenty students, so the team work would be manageable from my perspective.
- One of the common issues we face is where students get stuck right at the beginning, either with little idea how to proceed or so anxious that the code they write or algorithms they design won't be 'perfect' the first time out of the gate that they get incredibly frustrated. (We've occasionally had one or two students burst into tears when the compilers reported errors in their code.)

My thought was that pairing them up would take some of the pressure off them as individuals and create a situation where each member could encourage and motivate the other.

But like I said, it was just a thought. I'm not married to it.

-Tom Sinclair

"Man, I love it when the complete absence of a plan comes together."
- [link|http://radio.weblogs.com/0104634/|Ernie the Attorney]
New How about teaching them how to template?
I rarely start a new program from absolute scratch. Instead, I have a "template" which is the bare bones of a working program which I copy and then proceed to modify. I found this very necessary when writing programs for Windows 3, as there was maybe 150 lines of overhead that every program had.

Wade.

Is it enough to love
Is it enough to breathe
Somebody rip my heart out
And leave me here to bleed
 
Is it enough to die
Somebody save my life
I'd rather be Anything but Ordinary
Please

-- "Anything but Ordinary" by Avril Lavigne.

New Good idea
We'll be using Visual C++ 6 in class so we'll be starting with a built-in template but it's a useful skill nonetheless.

It also helps you get past the "blank screen" syndrome if you can start writing some things right away.
Tom Sinclair

"Man, I love it when the complete absence of a plan comes together."
- [link|http://radio.weblogs.com/0104634/|Ernie the Attorney]
     Pair programming for coding newbies? - (tjsinclair) - (27)
         Could be interesting. - (static) - (4)
             Good points - (tjsinclair) - (3)
                 Like Alex says below - (drewk) - (1)
                     Got it - (tjsinclair)
                 Separation of thinking and typing. - (static)
         I found PP a skill that's hard for me. - (Arkadiy) - (2)
             Bingo. - (a6l6e6x)
             Agreed - (tjsinclair)
         Re: Pair programming for coding newbies? - (JimWeirich) - (1)
             They'll be next to each other - (tjsinclair)
         Another idiotic software idea - (deSitter) - (16)
             Beg to disagree... - (hnick) - (11)
                 With one minor difference in my case - (tjsinclair) - (8)
                     Where to begin? - (deSitter) - (5)
                         Details? - (tjsinclair) - (4)
                             Re: Details? - (deSitter) - (3)
                                 Good points, thanks - (tjsinclair) - (2)
                                     How about teaching them how to template? - (static) - (1)
                                         Good idea - (tjsinclair)
                     Ok, to extend my point - (hnick) - (1)
                         My thoughts as well -NT - (tjsinclair)
                 Consider it as parallel processing - (Arkadiy) - (1)
                     That was my thought as well -NT - (tjsinclair)
             Re: Another idiotic software idea - (JimWeirich) - (3)
                 Re: Another idiotic software idea - (deSitter)
                 Speed and pair programming. - (static)
                 Re: Another idiotic software idea - (neelk)

Man... licensed to kill gophers.
51 ms