[clug] Question: FOSS and Teaching Software Engineering
sjenkin at canb.auug.org.au
Mon Jun 30 01:17:20 GMT 2008
Jacinta Richardson wrote on 29/6/08 11:30 PM:
My thanks to everyone for their kind explanations.
Each has helped shed some light on my poor understanding.
I asked one of John Lions successors what they do now at UNSW, and have
included snippets below.
On the question of continually improving the JL courses:
"Also, I don't agree that reading the source is the right way to teach
OS, which is why we don't. (Among others, it bores the crap out of
students.) It was the best thing in Lions' days, where hacking actual
OS code wasn't feasible."
"The right way is to teach the abstract in lectures (incl all the
tradeoffs which they cannot possibly explore for themselves), and then
let them do it in the flesh, ie on a real OS code base. That's what we
do, and the results seem to show that we're doing something right. (Of
course, 99% of all OS courses never go beyond the abstract. This is
why there's only about 20 unis worldwide that systematically produce
good systems graduates.)"
> > I can suggest that the answer to your question is pretty easy
> > though. Teaching software engineering via "real work" on open
> > source projects is too hard. Or at least it's much harder than the
> > current task of getting a group of 20 to work through the SDLC and
> > implement a project where the project academics have access to all
> > the revision history, email, documentation etc etc.
This ('too hard') notion is supported by my friend:
"I don't think it happens, because it isn't practicable. Students by
and large wouldn't cope being thrown at a large code base. This is a
clear case where uni teaches fundamentals, and industry has to
complete the hands-on training."
> > I'm fairly certain that I didn't have the skills to do what you're
> > suggesting when I started my final year software engineering
> > project. I was a fairly diligent student, I also tutored and ran
> > labs for first and second years, worked in the first year learning
> > centre (lunch time assistance for first (and occasionally second)
> > year students) and did a bunch of related volunteer work. I could
> > understand the code of my peers very well (sometimes better than
> > they did - more eyeballs do help find bugs). But all of my learning
> > that far had never involved learning how a massive project works.
My friend agreed and went a little further: postgrad degrees:
"Experience (and I think also studies)
show that it takes an average gifted individual about 10 years to get
there, which can't be fit into a uni curriculum. The ones who get
there during uni days are typically the ones who've been hacking code
since age 10. We can't teach CS or SE for students who've got 6 years
experience before getting into uni. (Btw, US Unis tend to offer SE
only as a postgraduate degree. I think they are right.)"
> > You are assuming that the students have enough time, motivation and
> > smarts to learn how to work with the assigned project and actually
> > produce something. I agree that people need to learn how to pick up
> > projects and see how things interact, but - it's weird to say - I'm
> > not actually sure this is something that's easily *teachable*.
> > Adding this as an extra level of complexity (especially if it's the
> > student's first experience of it) on top of an already hard project
> > will be unpopular. The university probably wouldn't like that.
Long time since I was an undergrad, and then I didn't have the usual
experience - did most of it part-time.
Two things I learnt from this exchange:
- My experience wasn't typical
- Things *have* evolved and the teaching I've seen isn't all there is...
> > All the best,
> > J
Again, Thanks to everyone who took time to shed light on my ignorance :-)
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