Wednesday, March 01, 2006

What would the ideal computer science department look like?

Starting this fall, my campus will be admitting freshmen for the first time (up till now, we've been only upper division and graduate; don't ask why). As is the custom in Washington State, planning for this commenced approximately a year before the start date. I've been intimately involved in our CS lower division curriculum design, and am now turning my attention to what I will refer to as "educational environment". By this, I mean everything other than classes that contributes to learning and, just as importantly, to making the CS program an inviting, exciting, and comfortable place in which to learn -- that make a department a community.

As I've written before, our profession is in desperate need of new approaches. While part of that involves rethinking our curriculum and how we teach, I think a big part is also non-curricular: activities that students and faculty engage in outside of class, design of laboratory spaces, etc. For example, a typical computer lab is a room filled with desktop computers, all facing the same direction. In the past, this invited students to concentrate on working on the computer, I suppose. Also, it didn't require much design thought on the part of faculty. Nowadays, students have their own computers, so why spend time in a computer lab? The only reason would be if they're forced to, for instance because they don't have some required software. This is pretty much the polar opposite of an inviting workspace, and certainly not the way to encourage participation in the profession by students who are uncertain about their major. Ideally, a computer lab should be a place students want to spend time in, to think about their studies, work with other students, even relax and hang out.

The lab's just one part of the puzzle. There's also the overall environment, including organizations, events, traditions, etc. So, what I'm doing here is soliciting ideas: what do you think would make an ideal CS department? You don't need to assume anything, and you can address any aspect of the department (of course, I reserve the right to pick and choose from your advice). Please contact anyone you know who might have some advice to give and ask them to either comment to this post or email me. I'll even put my money where my mouth is, and give a gift certificate to or a membership to LibraryThing to anyone who submits a "surprisingly great" idea (either $10/1 year membership or $25/lifetime membership, depending on how great the idea is).

I'll summarize the suggestions in a later post, and also let you know what eventually happens (and, in future years, what the impact is, at least anecdotally). Besides all of the non-lab-related matters, I'm also looking for lab design ideas. Currently, we have one lab with around 30 Windows machines and one lab with around 15 desktop Linux machines and a 15-machine Linux cluster (so, basically a room that can hold 30 machines on tables set up in rows, but that only has 15 machines on tables).

Topics: , .


  1. Honestly, I think it depends what you wish to stress in CS. Typically, departments stress what their faculty is good at. So, you get some departments favoring "information systems", others favoring "software engineering", others "mathsie stuff". Depending on the orientation, other elements follow.

    So, you probably want to tell us what you guys are stressing.

  2. I hadn't thought that the nature of the environment would need to be different depending on the exact stress of the department. (Scratches head.)

    Our department stresses software engineering and ties to business and applications areas more than a stereotypical CS department. Students get less math exposure, more systems and project management, but they can still take a pretty good range of "traditional" electives in embedded systems, graphics, image processing, AI, digital signals, etc. Our students tend to take more business electives than students in most CS degree programs. We will soon have a BA degree that requires what is essentially a minor in some area (the difference between it and a minor being that we approve the set of electives, rather than the other department doing so).