Linked by Thom Holwerda on Wed 11th Apr 2007 16:35 UTC, submitted by ShlomiFish
Thread beginning with comment 229694
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/21/13 22:06 UTC
Linked by Thom Holwerda on 05/21/13 21:45 UTC
Linked by Thom Holwerda on 05/21/13 15:53 UTC
Linked by Thom Holwerda on 05/20/13 22:43 UTC
Linked by Thom Holwerda on 05/20/13 21:50 UTC
Linked by Thom Holwerda on 05/19/13 23:15 UTC
Linked by Thom Holwerda on 05/19/13 23:11 UTC, submitted by Drumhellar
Linked by Thom Holwerda on 05/18/13 21:06 UTC
Linked by Thom Holwerda on 05/18/13 7:37 UTC
Linked by fran on 05/18/13 1:38 UTC
More News »
Sponsored Links



Member since:
2006-03-20
i believe that the first approach should be a multi-pronged approach.
introduce youngsters or students to each of the following at the same time:
* PRACTICAL programming - python, perl, shell, whatever makes its easy to get easy results fast. there is no point scaring people away with lots of boilerplate code, however virtuous, that doesn't appear to do a lot.
* UNDER THE HOOD programming - the most valuable lesson I ever learnt was tot understand what really happens inside the computer - bits, bytes, stack pointers, instruction pointers, accumulator registers, caches and memory scans... this way you'll appreciate what your higher level language is really doing and what it is hiding from you. why? it helps to choose approaches you know will be more efficient if there is more than one way of doing it. many students or youngster don't know why naive sort is not as good as quciksort or other sort algrithms... they're all just as fast in their world. this feeds also into logic or functional coding too where it is very useful to know what is really happening - tail recursion is an option but it makes the difference between make or break for some data sets.
by the way this doesn't have to be done with real assembly coding - i learnt it at age 11 using a hypthetical CPU (the zap-1) which our teacher introduced us to illustrate instruction fetch, load and execute, register manipulation and memory lookups and so on ... (whils on this topic the ARM assembly language was very clean, logical and learnable, in contrast to 8086)
* GOOD DESIGN PRINCIPLES - its worth teaching at the same time good design principles - and not just enforcing them using a language that enforces them - but explain WHY. try getting one student to fix or debug another student code - or even work out what it does!!