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

Reply via email to