imperialWicket

am i the only croquet-playing computer nerd?

« The real anti-Firesheep The 8pen keyboard for Android »

Open source in higher education - why not?

2010-11-8

Hacker news recently turned my eyes to opensource.com, which I review occasionally, but admittedly do not track as closely as I should. The article is Introducing students to the world of open source: Day 1, and at first glance I thought, What a great idea?! I let that steep, and increasingly found myself more frustrated with higher education than impressed by the ingenuity and motivation of the author and team.

First, I must admit that the last thing I want to do is cast a dim light upon the efforts of the author and others who are working on this event. It is a great idea, and we absolutely need more efforts like this. With that caveat, I have to move quickly to the question of why are these efforts so necessary?

As noted, "Even though programming students can write code, most never see a bug tracker, and very few learn about version control." Project roles, Linux, and IRC are listed as topics that were appreciated by a body of motivated CS students. Allow that to resonate. Is a Computer Science degree really just a piece of paper that says, "This person can write code"? How is it that a CS major pays tens of thousands of dollars for a degree, and has little to no concept of version control, project roles, design documentation, functional specs, or a bug tracker? Oh, and code review - is that how you get graded?

I constantly see posts and flame wars about open source in business/schools, with notes about TCO and ROI. Perhaps I'm reading the wrong blogs, but I seldom encounter any pitches that include the fact that open source offers excellent learning opportunities. Granted there is a full spectrum of open source projects, and some are more accepting of 'n00bs' than others. By and large, my experience is that open source project core teams are willing to take some time to bring a fresh contributor up to speed, and coach them to a level of productivity among the greater team. This activity alone - which is free, self-paced, and in most cases self-motivated, is worth more in my mind than four years of learning code logic and syntax. And it can probably be accomplished in a matter of months or even weeks.

One thing I do see occasionally in my internet travels, that corresponds well, is advice from programmers to CS students who say, participate in an open source project - it offers great experience. I would venture a guess that the better CS students do just that. And they probably go on to be successful developers and quickly advance to higher tier development positions. This is a great scenario, and only hiring the best, most self-motivated and experienced developers out of college would be ideal. But there are a lot more developers graduating with CS degrees who never participated in a project outside of class. If they happened to have an outside pet project, it is often a personal project, that lived exclusively on their development machine. When asked about experience working in teams, these individuals confidently detail the group projects that they had to complete for some final. Did you implement a wiki, bug tracker, or project management system for your group? Probably not, there probably wasn't enough time.

Getting back to my inspiration for this post, the team reporting on opensource.com is doing wonderful things to combat this issue. This is a great action, and I think it will help tremendously for a number of students.

To combat these issues, my dream goes something like this:

A technique for enhancing opensource participation at a young age and increasing the value of CS degrees is to organize CS program sponsorship by existing open source projects. As an optimal example, projects like GNOME and KDE (well-established, well-funded, and mature open source projects) could use existing funds to hire educational project managers, who act as liaisons between student groups and appropriate academic instructors. They help get students rolling, make sure that mentor(s) are available to assist with questions and issues (this could even be over IRC or through forums).

This relatively small investment results in productive CS students who can address whatever bugs and upgrades are requested by the open source team (helping to solve the common problem in open source projects where mundane bugs end up trickling through multiple releases, because no one 'wants' to fix them). Not only does it give open source projects the ability to 'assign' bugs with authority, it also breeds potential developers for future work. If a group of CS students participate in open source updates as part of their required course work, and know that continued open source efforts are spectacular resume highlights, why wouldn't more of them participate for a longer duration than a single course? Forcing the introductory period through an optional CS course forces students through the initial learning curve, a primary concern students reportedly voiced in the opensource.com article. I noted optional, as I think that participation by students interested in doing this of their own volition will result in a better scenario for all parties involved.

There are a few holes in this idea, and it certainly would not be easy to orchestrate. Nonetheless, if University X teamed with RedHat or IBM to finance a few project liaisons to act as go betweens for a single CS elective course that was basically Open Source participation 301, imagine what the press could be like for the involved parties. What percentage of CS students who participate in that course would land desirable positions? How many bugs could the University's elective course-taking CS body claim to have resolved? How much time/money would those students effectively end up putting toward the projects in which they participate? Letters for your CS major home page detailing, "Open Source participation 301 really put me above my competition, I had a choice of jobs after only a handful of interviews...". Higher profile businesses start recruiting more from University X, because they know the students who took OSP 301 are intimately familiar with an open source technology on which they rely. Tech businesses recruit because they know that students who worked on open source project Q during their OSP 301 course are experienced with a particular bug tracker, wiki, vcs, etc. that the business uses in their workflow. RedHat/IBM offer press releases, "Just donated $80,000 to open source project Q and University X to support collaborative education/open source learning and programming efforts."

Who loses here? I realize that the projects/companies I relayed might be out of reach, but the I would think the right pitch could spark interest from a Mozilla project, PostgreSQL, LibreOffice, and countless others.

Opensource, Colleges/Universities, CS majors - Can we make something like this happen? Why not?

11 Responses to Open source in higher education - why not?

Feed for this Entry

8 Comments

  • The phrase is "by and large".

    #7 | Comment by Harleqin on Nov 8, 2010 03:18pm
  • Indeed it is, thanks for the careful eye.

    #8 | Comment by nicholas on Nov 8, 2010 03:47pm
  • I think this is a great idea, teach programming while helping open source, good stuff indeed!

    #10 | Comment by Greg on Nov 9, 2010 08:35am
  • I've advocated open source in all levels of learning precisely for reasons that you stated. I think there is a lot of benefit all the way around for students to learn about how to work with the community for development. They develop a better sense of how to solve problems and work toward goals. The community gets the benefit of better open software which can then be fed back into the program to reduce the cost of teaching students how to write software.

    #11 | Comment by Chris Walden on Nov 9, 2010 03:39pm
  • Great idea! Our NSF-funded project, the Humanitarian Free and Open Source Software (HFOSS) project, is attempting to do just that. See http://hfoss.org. This article from last spring describes the project: http://www.osbr.ca/ojs/index.php/osbr/article/view/1097/1053

  • @RM - Thanks for the great link, and confirming that the idea is possible (and better yet, being implemented).

    For the benefit of anyone else reviewing the post, I also received some links to Bread and Circuits and Open Source @ Seneca - Led by the author of Bread and Circuits. These offer another practical example of Open Source support through education.

  • Actually, what you've described is a pretty big chunk of my job at Red Hat. I'm on the Community Leadership Team, which works within the open source communities Red Hat depends on, and my focus is on helping interested professors get their classes involved in FOSS projects (pretty much any FOSS project, not just Fedora) - largely through hooking them up with mentors from that project online and making sure they know how to use the basic tools (wikis, IRC, version control, etc). so they can communicate fluently with those mentors.

    It's rare for students to be asked to think outside of constrained assignments and on-campus collaborations, and the semester is so short that by the time most students "get it" the term is already halfway over - so that's a challenge, especially the first year or two when there aren't any older students who've "done it" before who can mentor and explain things to the younger ones. I think the earlier we introduce this concept of working in open communities, the more students will be able to do; I've seen folks bring the tools from the communities they work within back into their campus, doing things like using Etherpad for shared notetaking in lecture courses, which is inspiring.

    The problems I see are mostly scaling ones - academia moves and changes much more slowly than the 6-month release cycles of many FOSS projects (it takes at least 3 years to begin to see a FOSS cultural shift) and the paradigm shift to open source culture is so big that it takes weeks of intensive, almost full-time work with an individual professor before they really "get it" - which means I can only hit so many classrooms per year, at this stage. I'd love to talk with you more about what open source community members can do to help with this; I suspect there's much that can be done with local LUG/hacker/etc. group support specifically directed towards university outreach. Ping me?

  • @MC - Thanks for your insight, I'll highlight that I was inspired this week by your 5 mins of improv post which I caught via opensource.com - it's a great crash course, and I'm hoping to document that process from getting started all the way to submitting a patch for a project soon (still not settled on a language or project).

    I also want to add one note regarding your comment about it requiring half a semester before students "get it". I acknowledge that it's difficult, but at that "get it" point in the semester, I would say that the student has "got" more out of the class than they will receive from most of their courses.


About You

Email address is not published

Add to the Discussion

Search