@Jan Numpy indeed provides both "procedural model" and "OO informed model." When I first read Numpy, I was a little surprised at the redundancy but then I quickly realized the reality and the need. I remembered the first API I designed was also "procedural model" based, considering my users were mostly Visual Basic programmers. -kai
On Sun, Nov 30, 2014 at 3:18 AM, Jan T Kim <jtt...@googlemail.com> wrote: > 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 >
_______________________________________________ Discuss mailing list Discuss@lists.software-carpentry.org http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org