Undergraduate Capstone Open Source Projects

Archive for August, 2009

Two Readings for ElmCity

Posted by Greg Wilson on 2009/08/28

I spoke yesterday with Jon Udell about goals for ElmCity for this fall. He has since posted two very cool things:

  1. Using FriendFeed to manage a loosely-coupled team. Pulling project members’ own blog postings, Facebook status updates, tweets, and the like together in one place is probably as cost-effective a way to manage a team as the usual mailing list + IRC channel.
  2. A lengthy description of how to make elmcity and WordPress play nicely together. A calendar aggregator plugin for WordPress would be very cool (think about a blog for your city that aggregated and displayed events harvested from neighborhood-level blogs), but Jon’s description of how it works is a good intro to elmcity for would-be curators.

Please check them both out and let him know your thoughts.

Posted in ElmCity | 1 Comment »

Thirty Nine!

Posted by Greg Wilson on 2009/08/26

More good news: Minnesota State and the University of the Virgin Islands are putting in two students each, and we’ve had one more from Michigan State sign up (project yet to be determined). That means that Basie, ElmCity, MarkUs, RoboCup, and WikiDev are fully staffed for the fall; we just need to fill in the Eclipse4Edu, Ingres, and Thunderbird teams and we’ll be ready to go (for some value of “ready”, of course 🙂 ).

Project Alberta Laval MNSU/UVI MSU SFU UBC UT UTM UTS UVic Waterloo Total
undecided 3 4 2 9
Basie 1 2 2 1 6
Eclipse4Edu 1 1
ElmCity 2 2 1 5
Ingres 1 1
MarkUs 1 1 2 4
RoboCup 2 3 1 6
Thunderbird 1 1 2
WikiDev 2 1 2 5
Total 3 3 4 4 6 1 9 1 1 1 6 39

Posted in Status | Leave a Comment »

Survivor Bias

Posted by Greg Wilson on 2009/08/25

Jason Cohen of SmartBear recently posted an article about “survivor bias“. His basic message is that you have to look at failures as well as successes in order to get a fair picture of what works and what doesn’t. By some estimates, 95% or more of the projects on open source portals like SourceForge and Google Code are inactive; looking at why they didn’t pan out is at least as informative as looking at the few that did. The problem is, it’s much harder to do: magazines aren’t as interested in failure as they are in success (unless the failure is really dramatic), and it’s much harder to track down people who’ve walked away from a project than it is to make contact with ones who are still actively involved.

We try to address this by having a post mortem at the end of every undergraduate project. Everyone who has been involved has to say what went right and what went wrong, i.e., what we should repeat next time and what we should fix or avoid. What comes up most often in the second list is, “Better time management.” Because students have fixed deadlines for assignments in other courses, but are setting their own goals in this one, it’s very easy for them to keep pushing their project aside (“I know I need to work on it, but Stats is due Thursday and the AI midterm is Friday”). This is one of the reasons we’re moving to two-week Scrum-style iterations: students get to decide what they’re going to do during each one, but they will then be graded against the goals they themselves set.

Posted in Education | Leave a Comment »

A Rough Guide to Programming (In)competence

Posted by Greg Wilson on 2009/08/25

This post titled “Signs that you’re a bad programmer” isn’t backed up by any empirical studies, but it still rings true. What do you think the author missed? What do you look for when deciding whether someone can or can’t build usable software with reasonable effort?

Posted in Education | 1 Comment »

Three from Laval

Posted by Greg Wilson on 2009/08/25

We’re pleased to welcome our first three students from Université Laval in Quebec, bringing the total to 33. There’s just two weeks to go until projects start up!

Posted in Status | 1 Comment »

Contact Early, Contact Often

Posted by Greg Wilson on 2009/08/24

Ellen Ko’s post on the Google Summer of Code blog is good advice for students doing cross-country projects as well: making contact with your project lead early, and staying in contact regularly during the term, greatly improves your chances of success.  Gopal Kapur’s advice on how to report status is worth reading too: the more direct you are, the more quickly your project lead and teammates can help you.

Posted in Education | Leave a Comment »


Posted by Greg Wilson on 2009/08/23

The idea of running cross-country projects was inspired by the work of many other people. Looking at what they’ve done might help students and faculty understand what we’re likely to accomplish, and why we’re doing things the way we are.

First up is Google Summer of Code, “…a global program that offers student developers stipends to write code for various open source software projects.” 2500 students have done GSoC since its inception in 2005; each student is matched with an existing open source project and a mentor, and works full-time for 12 weeks on something specific.  The big differences between GSoC and what we’re doing is that we’re putting students into teams, and that our students are doing this as one course among several.

Second is the software engineering course that Dragutin Petkovic and colleagues teach at San Francisco State University. Each team is split 50/50 between SFSU and Fulda University in Germany, so that students have to deal with language, culture, and time zone issues right from day one. They have found that this gets students using collaboration tools earlier and more effectively; we’re hoping the same will be true for our projects.

The third main inspiration is David Humphrey‘s work at Seneca College. In the two-course sequence he has created, students effectively join the Mozilla project: they work on its code, talk on its IRC channels, use its bug tracker, and so on. It’s a wonderful experience, but given Mozilla’s size, students really do need two terms to get up to speed and move something forward. Since we only have one, our projects are smaller in scope.

Many other people are experimenting with ways of enriching the student experience. If you have any favorites, we’d welcome pointers.

Posted in Education | 2 Comments »

Hello Minnesota and the Virgin Islands

Posted by Greg Wilson on 2009/08/22

A big hello to the Computer Science departments at Minnesota State University and the University of the Virgin Islands, where Prof. Steven Case is now trying to recruit a few students to join us for the fall.  Two weeks ’til we launch—we have a lot of organizing to do, but it’s going to be fun.

Posted in Status | 2 Comments »

Where the Puck is Going to Be

Posted by Greg Wilson on 2009/08/19

One of the most interesting parts of this course for me is watching students decide what projects to work on. When answering their questions, I frequently find myself quoting something that Wayne Gretzky once said when asked what made him such a great player: “A good hockey player goes where the puck is. A great hockey player goes where the puck is going to be.” Five years ago, when Napster was making headlines, students typically wanted to write peer-to-peer filesharing tools; today, many of them want to do Ruby on Rails, social networking, or iPhone development.

But that’s where the puck is, not where it’s going to be. The social network market has already matured and is rapidly consolidating—just look at Facebook’s acquisition of FriendFeed. Rails is cool, and will probably still be as widely used ten years from now as PHP is today; similarly, the iPhone is here to stay, so learning its ins and outs is a pretty safe career bet, but both are likely to be awfully crowded job markets in 2-3 years.

So where’s the puck going to be? What are going to be hot markets and technologies in 2012? 3D printing is now on a Moore’s Law curve, which means that three years from now, 3D fabricators are going to start appearing in copy shops in major cities. What’s going to be the equivalent of MacWrite (the first mass-market WYSIWYG editor) for that domain?  What about wearable medical monitoring devices?  Collecting the data is (almost) a solved problem; collating it and bringing problems to a human being’s attention is definitely not. (Imagine half a million people in the Greater Toronto Area wearing heartrate and blood pressure monitors, all reporting data in realtime—what would you do with it?)  All of these things are going to go from science fiction to whiz-bang demos to everybody’s-doing-it; the trick is to get on board in time for the whiz-bang stage.

And yeah, the odds are that you’ll pick the wrong one. In the 1980s, for example, I was sure that the next generation of computers were all going to be parallel; turns out I was off by two decades. In the mid 1990s, I joined a startup doing 3D visualization of business data: good 3D graphics cards were just hitting the market (driven primarily by the demands of gamers), and we thought we could leverage their capabilities to give financial types on Bay Street and Wall Street new insights into their data. Turned out we were wrong, but as someone other than Gretzky once said, if you don’t play, you can’t win.

So: what do you think the hottest technologies of 2012 are going to be? What could you be mastering now that will make you a sought-after recruit for grad school, or a desirable hire, in three years’ time?

Posted in Uncategorized | 10 Comments »

Ingres Project(s) Are Up

Posted by Greg Wilson on 2009/08/19

Our final project(s) for the Fall 2009 term are now on the web. There’s an “s” in parentheses because it’ll be up to the students to decide which of the two we’ll take on.  One involves working with geospatial (map) data; the other is to extend Django‘s object/relational mapping layer (the goo that stuffs objects into database tables and restores them as necessary) to work with the Ingres database. Both will give students a chance to work with some very cool technologies; I look forward to seeing who picks them up.

Posted in Ingres | 1 Comment »