Joel Speaks on Computer Science Capstone Projects


Image by opensource.com
submit to reddit
 
(4 votes)

It's good to see Joel Spolsky weighing in on the question of the inadequacies of computer science education. When Joel on Software talks, people listen. It's a great article, of course -- so many of his articles are great -- but here's the essential quote:

"Where are students supposed to learn about version control, bug tracking, working on teams, scheduling, estimating, debugging, usability testing, and documentation? Where do they learn to write a program longer than 20 lines?"

The alleged answer: the senior capstone project.  Almost every CS program requires its students to complete the senior capstone.  In theory, fantastic.  In practice... not so much.

In a way, the problem is simple: time. Learning to be a real programmer requires deep immersion in real problems, and that's not really the purpose of an undergraduate education.  An undergradate education is a survey of many topics, and a student that's taking five or six different courses can't really spend 40 hours a week diving into code.  That's why co-op programs and internships are so important.

Still, the question must be asked: what good is a capstone project if it doesn't actually provide the real world experience it purports to provide?

Because most capstones don't provide real world experiences.  The difference between "the software project that four kids write, part time, in a semester" and "the software project that the new hire will be thrust into" is truly a night-and-day difference.  Real software projects consist of thousands of lines of code, with lots of different hands touching parts of that code all the time.  Learning the tools to survive in that real-world environment is absolutely crucial -- and most CS students just don't learn those tools.

Open source software has the potential to be a game-changer for these students.  And to be clear, it's not open source itself that matters here; it's what open source makes possible.  Open source allows students to see real world code, in real world scale.

Dave Humphrey of Seneca College says it best: the real skill that students need is the ability to be "productively lost".  Open source projects provide the opportunity to develop that skill.

Which is precisely why initiatives like UCOSP and HFOSS and teachingopensource.org matter.  A handful of professors are starting to bring their students into open source software projects.  It's up to us in the open source world to embrace them.  Better for students, better for professors, and definitely better for open source projects.

""
Creative Commons License

4 Comments

naj's picture

The problems with the university education for programmers are one of the reasons why Pete McBreen called for Software Craftmanship in his book with the same title. Craftmanship, meaning learning the trade by working for a master, seems to be a better model for educating programmers.

This seems to have spawned kind of a movement, see http://manifesto.softwarecraftsmanship.org

gdk's picture
Open Minded

Good stuff! I like this quote:

"Software Craftsmen should sign their work. This will enable them to build up a portfolio of applications that can be a basis for their reputation. This will allow the software industry to move away from the various interview games that are played and instead base hiring on an audition model (page 144)."

It's no coincidence, I don't think, that the world of free and open source software is driven by reputation. Craftsmanship and reputation go hand-in-hand. A great recommendation -- thank you. :)

lschneid57's picture

All of this information is well absorbing and fundamentally sound. However, the real problem facing US graduates is global competition. CIO's and mangers don't care how well the portfolio of projects the student accumulates, the bottom line is the 5 for 1 deal you get in India. Financially, one can get 5 programmers for the price of one US programmer and the skill set is comparable or better. Until the US Government passes laws eliminating the open source H1 and L1 visa programs and start taxing corporation going outside the US for slave labor (also known as cheap labor force, outsourcing or offshore) the life of a US graduate in CS programming is a waste of money.

glenn's picture
Community Member

I hope the right people will read this article and by right people I mean people that have the position, the power and the willingness to make this change into students' benefit and indirectly into the benefit of us all. On a more practical note, I recently learned everything about cloud computing and now I decided to change the platform of my business so that I can get the most of it into my benefit. It could happen the same with this program.