On Schools of CS using only “useful” laguages…

Approximate Reading Time: 4 minutes

This is an older post I’ve been hanging on to, and since I have forgotten why I was hanging on to it, I no longer see any reason to keep it private.

This stems from a post Mark Guzdial did last year (August 2009):

Lisp and Smalltalk are dead: It’s C all the way down.

There was quite an interesting discussion around this. For the original comments, check Mark’s blog. The comments are all public. I’ll quote a few bits here along with some of my responses:

Patrick Widener: Katrin, Steve Yegge from Google wrote up a great blog post once illustrating that very point: some of their interview candidates would take a problem that practically screamed to be solved via awk/sed/perl, and try to write 250 lines of C++ on a whiteboard in 45 minutes because it was the only hammer in their toolbox.

ME:

I had the same experience in a 3rd year data architecture course. I had my students create a client-side search utility that required them to generate a data file containing their search data that they could send over to the client. It had to be small and the first step was to crawl around their website to build this data file. I told them they could use any language they wanted to. My sample solution (I always solved their assignments myself before they got them) was about 20 lines of SED and UNIX script. Almost ALL of them wrote their solution in C++ – over 2000 lines of code.

They didn’t believe me when I told them it would only take a few hours to learn enough SED & shell script to solve the problem. They didn’t believe that it was possible to learn just a bit of a language because none of their professors told them. Instead they spent many more hours than that writing programs in a language that was not well suited to the problem at hand.

Fred Martin: When I was an undergrad, the MIT AI Lab was filled with Symbolics Lisp machines. So of course undergrads had to learn Scheme, if they were going to be useful in the research labs.

A big part of the problem here is that none of us (or few of us) actually *use* these languages in our research work. E.g, my two big build-and-study projects are based on web apps, and we use the obvious language/techn choices (Java, JS, PHP, MySQL).

Fred Martin: Mark you’d probably be an exception to this with your work with Squeak. But how many of us — other than language researchers — actually use these languages in our work? Robot people don’t program in Lisp anymore, etc. I’ve been teaching our PL course (based on Sussman/Abelson SICP) — it’s still offered and still required. I added a project module to the last part of the course, and I think it really helps make the ideas useful to students.

Still — if we’re not dog-fooding the stuff in our labs, classes can only go so far…

ME:

With a few exceptions, most of the faculty I knew at my former institution didn’t actually *use* ANY language – they have grad students for that. I seriously doubt whether many of even can write a working program to do something useful any more.

What we teach, especially in the 1st & 2nd year of a 4-year program, should not be determined by what we personally use, nor by what is currently popular in industry. It should be determined by whether or not it helps to build a good foundation of knowledge & understanding.

Re dogfooding: All faculty should be able to teach ANY 1st or 2nd year course (given some prep time). If they can’t, they shouldn’t be there.

Re Ian’s lament about lack of interest in our own history is absolutely true. We had Mike Williams in our department- probably *the* world expert in computer history – no-one paid him much attention or give him the respect he had earned while he was faculty. He has the very bestest stories. When I was a student there, these stories helped to give me a sense of place and of connection to my profession. The lack of interest in our past may also explain why most people in CS are so Ferengi today.

Fred Martin: I think I wasn’t very clear — what I meant was, there used to be more fac teaching cool languages and also using them in their research labs (even if it was the grad students doing the coding). Now even the fac who love and teach languages, probably aren’t using them unless they’re also language researchers. So students don’t get to see many instances of real-world projects using modern languages (I’m including fact research labs as being real-world, vs. pedagogical content). I think that makes our task even harder — if we’re not using these languages ourselves in our projects, it’s harder to show they really matter.

ME:

You’re right. So, as faculty, we SHOULD be writing code in these languages.Like Bjarne Stroustrup said, “You can’t teach what you don’t practice.

Part of the reason we used to use cool languages was because they were interesting, and learning how to use them broadened our minds. They mattered because they had something to teach us, not because they were being used in industry or research.

When I was doing my undergrad, most of the languages I learned were not useful for ‘real’ work because we didn’t have the horsepower. So, along side Fortran, PL/1, Simula, APL and JCL (useful at the time), I also learned Snobol, Lisp, Algol68, Ada, Pascal, Basic, and many other not-useful (at the time) languages.

I think we often loose touch with the notion that a university degree should be different from a professional certificate. Sometimes the reasons for teaching something don’t have anything to do with whether students will be able to use this directly in their future jobs. Students absolutely have the right to ask, “Why am I doing this?” and “What is it good for?”, and faculty absolutely should have answers to these questions, but they DON’T always have to relate directly to the jobs these people might do when they graduate.

Example: I’ve never written a single line of assembler for anything”useful”, but I learned a lot about how the machine works from learning to program in assembler.

That’s the thing – I don’t think you do have the ‘wrong’ idea (I didn’t think that when I was teaching CS either). I think most schools of computer science have the wrong idea. It’s the CS departments that keep saying, “No, we don’t do that.” “And, we don’t do that either. Nor that. Let’s have more math, more theory, more algorithm analysis more silly seng….”

(Thing is: I know some *real* software engineers – they don’t do the stuff you learn in school.)

Most of CS @ school is now a waste of good talent – no wonder the good talent ends up getting other degrees (or none at all).

Be the first to like.

Is Computer Science Dead?

Approximate Reading Time: 2 minutes

Just heard on Mark Guzdial’s blog that “Georgia Tech’s College of Computing is now considering a proposal to remove Smalltalk from the required curriculum in favor of C++.”

This is another nail in the coffin of CS.

There is great value to learning many languages, not the least of which is that those who do come to understand the concept of ‘language’ and ‘programming’ better than anyone who only knows one language ever can. This makes them better programmers and better problem solvers.

There are those who feel CS is a dying discipline, and the more that CD departments contract in their view of what they should be doing, the more likely it is to come true.

Interesting and creative people are leaving CS departments, leaving behind …. can you guess? Theoreticians, mathematicians, and academic software engineers who haven’t written a real program, well, ever. These are the kind who say we shouldn’t be teaching about and with games, because “It gives the wrong impression.” (I actually heard these words from influential members of my former department). I can tell what impression it gives if you do things like games: THAT YOU ARE INTERESTING.

I once gave an assignment to a 3rd year CS class that involved building a client side search engine. The 1st step involved getting a complete list of file names and creating a format that would retain the names and directory structures in as small a space as possible.
They could use what ever language they wanted to. They had all learned C/C++ in 1st & second year.
Almost all chose to write a 2000+ line C++ program, over learning how to write the 20 lines of SED and Unix that would do the same thing, only better.

That’s what happens when they only learn one language.

CS at the university level is not about job training.


Be the first to like.

Verschränkung: The Internet is a Schrödinger Device

Approximate Reading Time: < 1 minute

The Internet is a Schrödinger device.

On the interweb, after a while, things are simultaneously there and gone. They might be there, or they might not, depending on some earlier random event.

On Kindle, when we look in the box, we see the book either there or gone, not a mixture of there and gone (just like the cat).

For webpages, they too are either there or gone – sometimes they even stay there long after they’re gone.

There really is no way to predict which it will be until we look.

Be the first to like.

More Trouble in River City

Approximate Reading Time: < 1 minute

Here’s a well-written explanation for why most of the media-effects studies really don’t tell us anything:

WHY VIDEO GAME RESEARCH IS FLAWED

By CHRIS LAVIGNE

Studies that spread the idea that video games are harmful to children are conducted by researchers whose knowledge about video games is embarrassingly poor.

May 25, 2009

What do 23 martial-arts fighters have in common with a talking Australian marsupial? According to one team of video game researchers, they’re identical.

Last year, the journal Aggressive Behavior published a study by a group of Dutch psychologists examining gaming and violence in children. As in most video game research, a lack of fundamental video game knowledge led to a study no gamer would consider credible.

Read the whole article here

Be the first to like.

Be professional enough to do a decent literature review…

Approximate Reading Time: 2 minutes

SHEESH!

I get a lot of papers to review in Game Studies; Serious Games; Educational Games., etc.

I used to learn a lot from reading these papers.

Not anymore.

Not only is much of what I read “old news” (i.e. it’s been done or discussed and mostly published before), but FAR too many of the papers I read now don’t even cite the other works. What’s going on?

I am finding more and more submissions (journals, conferences, etc.) from authors who have not done a thorough lit review. Many papers I’ve read appear to come from authors who are relatively new to the field, did a quicky lit. search (1st 2 screens in google scholar, or for many of the Education papers I see, it looks as though they simply went to 2 or 3 education websites (AERA, AACE, AECT) and searched a subset of the journals there. This leaves people with a fairly restricted view of what’s been done and what is known.

What’s the problem? Do people not know how to perform a lit. review anymore? Do they not care? Are they naive enough to believe they’re the first ones who thought of this?

Continue reading

Be the first to like.

On: On Sheep Dogs and Wolves

Approximate Reading Time: 7 minutes
Working Sheepdogs

Working Sheepdogs

I don’t usually do this, but this is a response to another blog, found here.  The piece I am commenting on is part of a larger post about what Canadian troops are doing in Afghanistan. It is in support of our Canadian Military and repeats a sheep and sheepdogs metaphor written by Dave Grossman. My own thoughts about the military (well, some of them) are below. The quote however, demonstrates Grossman’s ignorance once again. Having been in the military does not, in and of itself, qualify you as the last word on the subject. Not only does he have no real clue about videogames, but he now demonstrates he has no real clue about sheep, sheepdogs, or wolves. If you are going to use a metaphor, at least use one that doesn’t show off your lack of insight. That kind of defeats the purpose.

Continue reading

Be the first to like.

Have we really evolved beyond the days of throwing the Christians to the Lions?

Approximate Reading Time: < 1 minute

By now almost everyone online is familiar with the wonderful story of Susan Doyle.

There are many interesting dimensions to this story, like the one discussed by Henry Jenkins having to do with how quickly the world came to know about her (in How Susan Spread and What It Means). Like most people I’m sure, I too am happy for her current good fortune. It always makes me happy when something nice happens to someone – all the sweeter if they appear to be decent, deserving people. And there’s the rub, isn’t it?  We (i.e. the great unwashed) were very quick to pass judgment on this lady and then changed our judgements when we discovered she really could sing.

Well, here’s an article that offers another way to think about it: What if Susan Boyle Couldn’t Sing? by Dennis Polumbo

How would the story be different if her voice had been unremarkable, or even ‘worse’ (interesting how that seems an appropriate adjective) flat or scratchy or off?

What does this say about us? It makes me ashamed. I was caught up in the hubub too. Don’t get me wrong, I don’t think there is anything wrong with being happy for her. The problem lies in how we judged her beforehand, AND with the fact that somehow it was OK to do that.

Think about it.

Be the first to like.

Look out SMART Technologies – the writing may be on the wall, and it isn’t yours.

Approximate Reading Time: < 1 minute

In Today’s MIT Tech Review: A Better, Cheaper Multitouch Interface

A new pressure-sensitive pad could improve large and small touch screens.

I’ve thought for some time that the SMART Technologies’ White Board which is marketed so vigorously to Alberta schools relies on physical technology that has become obsolete. Note the Wii mote stuff developed by Johnny Chung Lee. That technology’s been known for a few years now.

As if that’s not enough, Ken Perlin and his crew have come up with this. SMART Tech isn’t even mentioned in the article.

C’mon SMART, any chance you can try and live up to your name?

Be the first to like.