[clug] Question: FOSS and Teaching Software Engineering

steve jenkin sjenkin at canb.auug.org.au
Sun Jun 29 04:53:04 GMT 2008

Here's something I Just Don't Get, and wanted to hear Comments or Good
News from this community...

'Software Engineering' is different from Computer Science because, in
part, it is about "Programming In The Large".

Beautiful New Algorithms and insightful new approaches are CS.
The problem of producing Big Software is pure SE.

Has anyone seen/heard of an SE course that comprises a chunk of real
work on some large (>>100KLOC) bit of code?
[Versus the usual 'final year group project' of knocking up something
from scratch. At best 1-5KLOC]
i.e some actual P-i-t-L experience.

There are any number of *definitive* FOSS projects out there that are
open-ended and ideal candidates for this.
Off the top of my head:
- gcc and other compilers [e.g. port to a new platform or O/S]
- linux, *BSD kernels
- PERL, TCL, Python, Ruby, PHP, SWIG - modules/objects, porting,
features, ...
- Apache
- Mozilla, Thunderbird, ...
- OOo

I won't accept as an answer that "IP and copyright issues" prevent this.
In contributing to something like the Linux source tree, you get to
copyright your code, just on in a *commercial* product.

This leads to another puzzlement of mine:
    If Programming is, like {Music, Art, Surgery, Flying}, a
"performance discipline", why don't students and practitioners required
to develop & present a "portfolio"???

Open/Transparent source code, as in FOSS, makes this possible - at least
for students.
What could be more advantageous to recent graduates than a strong
portfolio to present to employers??

I've puzzled over non-teaching of P-i-t-L- for years - I got to learn
about O/S's at Uni by reading *the source*, and wondered why it isn't
now the norm, but even worse - why academe seems to have regressed and
moved away from it.

In computing, Prof. Andrew Tanenbaum invented 'Minix' for exactly this
Since the BSD source agreement and the free 'Ancient Unix' licence, 
plus the 1996 re-publication of the "Lions Commentary", there is no lack
of teaching materials.

This approach is pedagogically definitive:

 - you can't do better learning about something than by working on 'the
real deal'
   [Could you imagine teaching surgery, dentistry or flying aircraft

 - if students can't cope with the complexity/difficulty of the real
thing, they need to find another field of interest, not have the work
'made easy' for them.

I was reminded of this question by watching the TED video of Yochai
Benkler on "Open-source economics" and on Friday I heard this interview
with Paul Zak (originator of neuro-economics), editor of " Moral
Markets: The Critical Role of Values in the Economy".

[It runs from around 1:15 to 16:30.]

He makes the point that 'efficient markets' rely on people being
"Trustworthy, Fair and Honest".
I.e. our society and Common-Wealth are built precisely on our mostly
trusting one another and behaving reasonably towards each another...

He also talks about the role of the neuro-transmitter, oxytocin, and
links their laboratory studies to:
  "Virtue is its own Reward".

Which is not dissimilar to the FOSS ethic of "Social Good".

Why give work and Intellectual Property away?
    Because it makes you Feel Good!
    [and we now have the neurochemistry to show why :-)]

Steve Jenkin, Info Tech, Systems and Design Specialist.
0412 786 915 (+61 412 786 915)
PO Box 48, Kippax ACT 2615, AUSTRALIA

sjenkin at canb.auug.org.au http://members.tip.net.au/~sjenkin

More information about the linux mailing list