Mozilla @ Seneca: how it really works
March 26, 2009 § 1 Comment
I’ve written before about Dave Humphrey‘s Mozilla course at Seneca. Why? Becuase it shows how a traditional college and an open source project can link up to create a killer immersive learning experience for students. It’s a model I’d love to see other colleges adopt.
Despite my past posts, I don’t think I’ve done a good enough job explaining the nuts and bolts of Mozilla @ Seneca. I asked Dave if I could share one of the great ‘how it all works’ email messages that he sends to other professors as a way to fix this. He said, ‘yes’. Here it is:
Didier Courtaud wrote:
> How may students per year are involved ?
It really depends. We typically have class sizes of ~40, but right now, for example, I have 12 doing the second Mozilla course. Over the past 3+ years we’ve had hundreds go through the courses.
> What is the level of these students ?
When I get them they are 3rd or 4th year undergrads. They have taken 3 courses on C/C++, Java, Web (client + server side), DB, etc. In other words, they are already as good at programming as one can be in 3 years of education, and are ready for some real work. As such I don’t teach them languages, but rather how to work within Mozilla, XPCOM, etc.
> What do they do ?
Many *different* things. One of my goals has been to try and match students with work that would really motivate them, since I push them very hard and expect a lot–never mind how hard Mozilla development is on its own.
I tell the students, “None of you is ready for this work yet, so don’t pick a project based on what you know, but rather on what you want to learn.” I help them see that learning, experimenting, not knowing how to do things, asking for help, relying on the community and each other, etc. — these are the normal way of working in a project like Mozilla.
I do not let students pick their own projects, but rather they must pick from a list of predetermined projects that I have found in consultation with the community. This way they are working on things that will have value, and therefore the community is more likely to help with things.
> … only contribute to the Mozilla code?
Yes. Some of my students are working directly on Firefox, Thunderbird, Fennec, the Mozilla build system, buildbot infrastructure, etc. I have students working in XUL/JS/CSS, others in C++ and Makefile, others in Python and JS, and everything else you can imagine.
> … the same + writing extensions?
Yes. I have students also writing extensions for Firefox, Thunderbird, and Songbird. As you know, many projects won’t get accepted as changes to the core code, and have to be done as extensions. I teach the students how to work both ways, for example:
These labs help them learn the different approaches. You can see my week-by-week approach here:
> … or do they apply the Mozilla technologies to other applications?
Yes. I have some (fewest in this category, since I like to work within the mainline community) working on Prism, XULRunner apps and packaging, etc.
> Are there evaluations of their work at the University level?
Yes, here is how I teach the first course:
I expect them to release code just as all other Mozilla contributors. In the first course they must pick a project (e.g., bug) and work through 3 releases (0.1 – 0.3). We expect them to pick something large enough that they will not get finished, and have the next course for taking it from 0.4 to 1.0:
I have had good success with this approach. Here are some examples:
- Tony is rewriting the DOM code to allow script resizes/moves of the window to be controlled similar to how we do pop-ups. Here is his blog about the work: http://twlai1.blogspot.com/ and here is his bug: https://bugzilla.mozilla.org/show_bug.cgi?id=413792
- Sid is working to fix a whole bunch of bugs in the hgweb interface Mozilla uses to display check ins and repository history. See his blog here: http://blog.sidkalra.com/
- Anthony is writing a bittorrent extension for Songbird, wrapping an existing library (libtorrent) in XPCOM and adding UI to the application. See his blog here: http://ashughes.com/
There are lots more examples like this, but this gives you a sense.
> I will join you on IRC as soon as I can !
Great, I’m humph on irc. Let’s talk there when you have a chance.
My colleague, Chris Tyler, has written a paper describing our method that you can get here:
I would also encourage you to join the growing community at http://teachingopensource.org, which is meant to supplement what we are doing at Mozilla Education and help us to connect with other similar efforts at other institutions/projects.
My hope in posting this is that both professors and Mozilla contributers will get a better sense of how the Seneca course works and why it is valuable.
Dave is putting a huge amount of his time these days into helping other colleges use this approach. If you’re interested in working with Mozilla to teach open source — or you are a Mozilla contributor who wants to mentor — you should get in touch with Dave.