[ Date Index ][
Thread Index ]
[ <= Previous by date /
thread ]
[ Next by date /
thread => ]
Tony Atkin wrote:
Sorry, but I felt obliged to change the subject header On Wednesday 04 February 2004 14:22, James Wonnacott wrote:We were having a discussion on this topic today at the school where I work. Some of the students want to start to learn some programming:
Abstract concepts are the thing to teach, and only a little bit of the mechanics. If you understand why modularisation is a good thing, or information hiding, or inheritence, you can easily discover how to use it on a particular language or system. My problems with programming mostly stem from not covering enough general concepts. Also too much emphasis on procedural programming languages hurts - they should learn SQL (or similar) - so at least they understand programs don't have to look like C/Basic/Fortran - but perhaps also a scripting language (bash/Perl). I never mastered much of the list processing languages (except maybe LOGO), nor functional programming languages, and I fear it shows. Maybe you can even leave language choice to the students, if they discover a better language to solve a particular exercise in that is worth a few extra points (I think). Also ask them to (constructively) critique their own solutions and if that fails each other.
we have staff willing to learn and want to know what language to use. As we have a system where most of our PCs will boot into Linux or windows I suggested using a C on Linux, however the question which arose was what help/ teach youself/getting started is there.
I've still to find a good book on C programming - it is messy - and to teach it without teaching bad habits is I fear challenging unless your a C guru. Even plagarising bits of the GNU "Hello World" package got me into trouble, as it used some out of date syntax in places.
I'm not a progammer myselfand have no experience of using C but said I'd post on this list for any advice you could give. I'm trying to increase the use of Linux here and demonstrate its advantages so please, any help would be great.
One of the big pluses is the vast amount of source code you can read - some of it is very good. But I fear much of it is C.
I'm not an educationalist so maybe someone else can describe what I am trying to say a little better, but I think the question is about reward. If you are trying to learn something then it helps if your learning is rewarded by results - feedback loops start occurring. The problem with C, is that you have to learn so much before you can start writing code which will give you some really interesting results.
That is why LOGO had a turtle - even the most novice programmer got a clear graphical output - even if it was only a line going off the screen. LOGO is far more than a toy language. http://www.linuxgazette.com/issue43/silva.logo.html http://www.cs.berkeley.edu/~bh/ And at the end of it they'll be able to program EMACS - or at least make a far better stab at mastering LISP than I ever did.
Attachment:
pgp00022.pgp
Description: PGP signature