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