Dear All, On Fri, Nov 28, 2014 at 07:13:24PM -0500, Greg Wilson wrote: > Hi Kai, > > Our experience is that trying to get learners who have little > previous training in programming all the way to defining classes in > half a day (which is all the time we usually have for Python in our > workshops) fails badly. If they leave understanding that they > should break their programs into short, readable, testable, reusable > functions (and that those are all actually the same thing), that's a > big step forward, and as far as we can reasonably expect to get. > > And yes, the lesson on functions is mostly about scoping. Our > experience shows that's what confuses people most, and it's > difficult to debug code without a solid understanding of what a call > stack is. I'm adding more discussion of this (our collected > pedagogical content knowledge) to the next run of the instructor > training course; I hope that will convince you that what's in our > core lessons is already very ambitious.
I think I agree with both sides of the argument here -- on the one hand, it's better to have a procedural mental model of computing than to have no real mental model at all, but on the other hand, an OO informed model is better than a purely procedural one. On a practical perspective, having a good grasp on the procedural basics will enable people to use e.g. biopython -- the biopython tutorial doesn't require readers to know about writing classes or even extending existing ones. My guess (perhaps a bit biased, me being a computational biologist) is that people taking SWC may workshops often want to use things like biopython, so getting them up to speed with a procedural model of computing will fit their expectations. Personally, I'd be inclined to mention in courses a few times that OO concepts exists, that they're not really too complicated for anyone with a science background so people should be encouraged to explore them on their own after the workshop, and that some software systems (most notably web applications) should preferably be developed on an OO basis. Best regards, Jan > Thanks, > Greg > > On 2014-11-28 6:54 PM, Hsi-Kai (Kai) Yang wrote: > >Sorry, there is typo in my previous email. > >To be accurate, I meant "scoping" rather than "name space." > >-kai > > > >On Fri, Nov 28, 2014 at 2:54 PM, Hsi-Kai (Kai) Yang <h...@uw.edu > ><mailto:h...@uw.edu>> wrote: > > > > Teaching polymorphism in the basic workshop could be overkill. But > > it might be worthwhile to add object-oriented concepts. When I > > browsed V5 of SWC’s Python teaching material during this holiday, > > I could only find ‘function’ which was introduced as an > > encapsulation mechanism (among others) although the code example > > there was more about name space than encapsulation. > > > > > > My two cent. Thanks. > > > > -kai > > > > > > On Thu, Nov 6, 2014 at 2:19 PM, Greg Wilson > > <gvwil...@software-carpentry.org > > <mailto:gvwil...@software-carpentry.org>> wrote: > > > > I've just added a short post to the teaching blog [1] that > > includes an example of a well laid out lesson from Byron Weber > > Becker (an instructor in Computer Science at the University of > > Waterloo whose work I've admired for a while). It certainly > > gives us something to shoot for... > > > > Thanks, > > Greg > > > > [1] > > > > http://teaching.software-carpentry.org/2014/11/06/an-example-of-a-well-written-lesson/ > > > > -- Dr. Greg Wilson | > >gvwil...@software-carpentry.org > > <mailto:gvwil...@software-carpentry.org> > > Software Carpentry | http://software-carpentry.org > > > > > > _______________________________________________ > > Discuss mailing list > > Discuss@lists.software-carpentry.org > > <mailto:Discuss@lists.software-carpentry.org> > > > > http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org > > > > > > > > -- > Dr. Greg Wilson | gvwil...@software-carpentry.org > Software Carpentry | http://software-carpentry.org > > _______________________________________________ > Discuss mailing list > Discuss@lists.software-carpentry.org > http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org _______________________________________________ Discuss mailing list Discuss@lists.software-carpentry.org http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org