Project Learning

Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

Project Learning

  • Comments 4

Joel Spolsky is an interesting guy with strong opinions about software development and the education of people going into software development. Recently he posted a blog article called Capstone projects and time management which is pretty critical of university computer science/software engineering programs. For example:

It is amazing how easy it is to sail through a Computer Science degree from a top university without ever learning the basic tools of software developers, without ever working on a team, and without ever taking a course for which you don’t get an automatic F for collaborating. Many CS departments are trapped in the 1980s, teaching the same old curriculum that has by now become completely divorced from the reality of modern software development.

Mark Dennehy  has a reply posted called Joel Spolsky, Snake-Oil Salesman that makes all the expected academic rebuttals. For example:

Undergraduate courses in CS and CEng are not there to teach industrial tools, but basic principles

No student is expected to graduate and be able the next day to walk into an industrial role without supervision or training, and no student has ever been expected to do that in Engineering since the first undergraduate course started in TCD in 1841.

And well you probably know the rest though I have to say this is one of the bests collections/explanations of the issues I’ve read in  a while. So what is the right thing to do? I have some ideas (why blog if otherwise? :-) )

I stand with a foot in industry (employed by a company) and a foot in education (by inclination,experience and the focus of my work). I’ve taught students who have gone on to careers in industry and I’ve worked with many recent graduates throughout my career. It seem that often industry doesn’t understand what academia is trying to do, can do, and thinks they should be doing. Likewise many in academia seem to care little about what industry thinks they need in new hires and recent graduates. Plus academia doesn’t have time to teach everything they would like let alone what industry would like them to teach. Compromise is the word of the day.

It’s hard, very hard, to fit large projects into a curriculum. In high school, in university and even in graduate school the semester or the quarter is the rule and that is not enough time for a really large project. Emphasis on individual students learning concepts in a deep may make all but small team projects are difficult to manage, to grade and even to conceive. I think there is some room for projects outside of class though.

Unfortunately a lot of students have to work jobs to help pay for their education and that takes up a lot of time. The full-time student in the old sense of the word isn’t as common as it once was. But I think that when students can they should think about creating projects outside of their course work. At the university level, the Imagine Cup is one potential opportunity. I think that students could also look at service projects for local organizations may also be possible. Non-profits often cannot afford professional work but may be willing to accept help from teams of students. 

The benefit to students are that they are forced to develop scheduling and time management because projects that are done the day before a deadline are not likely to meet the needs of clients. many competitions that are project based, such as the Imagine Cup, have intermediate deadlines that also have to be met. Students also gain experience that they can talk about during interviews. Companies are impressed by students whose learning and achievement goes beyond what is required by course work.

While none of this is necessarily a magic bullet there is a chance for students to go beyond what they are learning in class.

  • Only point:  Academia exists for two purposes:

    1. To do research that benefits businesses (and indirectly society) into creating new products. (I would argue that this shouldn't be a purpose, but it is so sigh.)

    2. Produce employees for business.

    The problem with the educational system is that everyone has forgotten who the real customer is (and who should be paying for it)

    Business is the customer of academia, not the employee. They benefit from the education, much like the mechanic that undergoes training from the car company that he works for, but it is the business that materially benefits and thus is the customer.  Getting a PHd in cow sexual reproduction is useless to everyone involved unless there is a job at a business that can use this skill.  It doesn't benefit the employee and it doesn't benefit the business.

    Yes, yes, you can argue that the knowledge has intrinsic value (it does not, it only has value if it has utility just like everything else, even if it is just to impress your girlfriend and thus get her pants off). But the knowledge has to materially improve your life (be of value) to be worth something. Knowing the mechanics of cows having sex, unless you are in the cattle breeding industry doesn't have any use, thus it's pointless waste of time. The demand for the knowledge will determine it's worth and thus determine how many universities would be teaching that course if businesses were the customers!

    Academia does not listen to business and the results are obvious.  CS is an excellent example of this.  What they teach is completely divorced from reality. (i.e. I got taught Scheme in first year... which exactly 0 people use...even those doing AI)  Make me useful in my chosen career. Enable me to make more money because I'm more useful to business. Make businesses want me more because I can make them more money.  That is the purpose of higher education. Not to learn abstract crap that doesn't have any material value (i.e. ability to improve one's life).

    (oh and tech me in fields that I can actually get a job in, not "Ancient english literature which assures that you're only job is working in the same department that you went to school in.)

    There is no compromise.  Schools work for business, PERIOD.

  • Alfred,

    You know how much of a fan I am of the Imagine Cup!  I'm doing again this year, but this time as a mentor for the MangoBunnies.  Either way, I just wanted to point out the students in high school can do the Imagine Cup too!  I think the age cut basement is 16, so that's at least juniors and seniors!

    I completely agree with you about the interest level of this topic.  I definitely read both blog posts, comments, and discussions.  Everyone seems to be making really really good points.  It's likely that something needs to happen with the categorizing of CS subjects.  It's almost as if the system is so broken (for students going into industry) that no one really wants to take on the huge project to fix it!

    --ed

  • John,

    You're mistaken about academia in two ways. Firstly, the purpose of academia is not to do research solely for the benefit of business; pure research is also vital. Applications of pure research are not always immediately apparent. The discovery of the electron was initially hailed as being of no real benefit to anyone, don't forget.

    Secondly, the real customer of academia *is not business*. The real customer of academia *is the student*. It is to them that the duty of care is owed, and it is an ethical responsibility of the universities to teach the students what will benefit them the most in the long term. Industry's wishes in this are *very* much in second place and should never be any other way because industry has no duty of care to anyone bar industry!

    (BTW, you weren't taught Scheme to teach you Scheme. You got taught Scheme because it forces your head to work in a different way to the way C forces it to work, or the way Haskell forces it to work. You were being taught the mindset, not the language).

  • And BTW, when I did my undergrad degree (some 15-16 years ago now), we not only had a long-term solo project at a high difficulty level, we also had several team projects per year, and we had entries into several external projects like the IEEE Micromouse project. All that Joel would have asked for and thought novel today, has been happening in decent schools for longer than Joel's been programming himself...

Page 1 of 1 (4 items)