I’ve done both with teaching R. I don’t have any data, but I far prefer the 
top-down approach.

My version of top-down is to give them code that works to make a standard plot. 
That lets them make something tangible in the first 5 minutes. I then have them 
look at the code and ask how they would change colors, plotting symbols, etc. 
Then I ask them how they would make a new plot using a different column from 
the data file. I then wash, rinse, repeat building in new programming concepts 
to do different analyses and methods of visualizing data. I far prefer this 
approach over building up from “Hello World” because they get going immediately 
and because that’s how many of us learned to program. At least for me, I 
learned by taking code that someone else generated to do a task and hacked at 
it to suit my needs. Whenever I find a new package, I take their vignette and 
hack at it to learn how the functions work.

It seems like most programming books are bottom-up while more domain-specific 
materials are top-down. I agree that it would be very interesting to hear other 
opinions and whether there are any data supporting one strategy or another…

Pat


> On Nov 11, 2016, at 3:07 PM, Peter Teuben <teu...@gmail.com> wrote:
> 
> 
> forgive me if this is something covered before but I'd like to contrast two 
> opposite ways of teaching a language
> 
> What i mean is to teach something like python, you can go through the 
> rigorous language elements (which can be pretty boring) and build up your 
> skills to the level that you can program. This I would call a bottom up style.
> 
> The other approach is you pick a problem in the field of your students (in my 
> case astronomy, so my example may not work for biology students), and disect 
> it and teach them the language elements as you go. I would call this top down.
> 
> Has this approach been tried and has it been found at least equally good?  Of 
> course the huge drawback is that it only applies to a small group of 
> students. I'm curious to try this.
> 
> 
> - peter
> 
> _______________________________________________
> Discuss mailing list
> Discuss@lists.software-carpentry.org
> http://lists.software-carpentry.org/listinfo/discuss

_______________________________________________
Discuss mailing list
Discuss@lists.software-carpentry.org
http://lists.software-carpentry.org/listinfo/discuss

Reply via email to