In addition to three faculty lines and and an operating budget, our founding donors funded the creation of two teaching laboratories. This post concerns the design of Whitman’s CS lab classrooms; a later post will address lessons learned from their first year of use.
Design of our teaching labs was already underway when I signed a contract with Whitman. Two rooms had been identified: A public computer lab next to one of the main entries to the Olin Building, and a small windowless classroom on the second floor that could be combined with a small windowless office to make a slightly larger classroom. The College had already engaged a local architect, Jim Stenkamp. My colleague Albert Schueller, then Chair of the CS Steering Committee, took the lead on working with the architect, getting my input via email, and occasionally coordinating my participation via Skype. Visiting professor Allen Tucker was there to provide input from a CS perspective.
Our first concerns: How many desks? How many computers? How will they be arranged? What operating system will we use?
I will start with the choice of operating system, since there’s not much to say. This decision was made in a 90 minute meeting with system administrator Kevin Kelly, security officer Brian Griffith, director of Instruction and Learning Technology David Sprunger, and math colleagues David Guichard and Albert Schueller.
Most campus workstations run Windows. We never seriously considered that as an option for the CS labs: I am just not that familiar with Windows as a software development environment, and I find it cumbersome. Beyond this, it’s valuable for students to be exposed to working with the command shell in a UNIX-like environment. If we had chosen Windows, we would probably have still end up running Linux VMs for some classes.
There are also some Macs on campus, and I have been using a Macbook Air as my personal computer for over ten years now. But I quickly learned there was little infrastructure or support for the campus Macs, and in particular, no support for sharing login profiles across multiple workstations.
The math department—in particular, David and Albert—were already maintaining a Linux cluster with a shared filesystem for their departmental computer lab. In the end, expanding the math Linux cluster to include the new CS lab computers was the most straightforward solution with the least friction for everyone involved. (Except perhaps Dustin Palmer, our CS & Math Technical Specialist, who has had the privilege of learning Linux on the job.)
The larger lab downstairs was built primarily for teaching CS1. Based on my experiences at Grinnell, I wanted to support pair programming in the classroom, and I wanted to limit class size.
The basic setup of the lab is based on Grinnell’s CS labs: rows of desks facing each other, perpendicular to the front of the front of the classroom. Here’s one of Jim’s early sketches:
In this sketch, you can see a large whiteboard at the front of the room (right), large windows (bottom) facing out of the building over Ankeny Field, an office for our technical specialist (lower left), and a printer cabinet in the entry to the classroom (left). A private study room (upper left) was eliminated; the old walls are shown in dashed lines. I didn’t realize the window into the hallway (upper left) would be eliminated during the construction process. As sketched above, you must pass through two doors to get into the office or the classroom. We eliminated the outer door for easier passage.
The arrangement of desks allows faculty (and student mentors or lab assistants) to circulate around the classroom, see what students are working on, and interact with them. Students sitting at a desk together are naturally paired. There are also a couple of challenges with this overall arrangement: Students at the back of the room have to lean back or stand up to see past other students to the bottom of the projection screen. The desks are too deep to readily form groups of four over the desks, so students instead turn their chairs around to face each other in the aisles, which works well for the students but impedes circulation of the faculty.
With CS enrollments booming nationwide, Allen pushed for squeezing in as many seats as possible. We considered a range of different desk widths. Ultimately, I insisted on 72″ desks. In teaching intro CS at Grinnell, I learned that odd numbers of students or student preference often meant there were some groups of three working together. I would also sometimes sit or kneel next to my students to have a conversation with them. A 72″ desk is barely large enough to accommodate three; it’s hard to see how a smaller desk would work. A six-foot desk also allows even larger students to have some elbow room and personal space when working with another student.
Using 72″ desks means a 30 seat classroom, as shown above. While I wouldn’t have minded having one more desk, I’ve observed there is a “phase transition” when a class goes much over 30 students. It gets harder to learn students’ names, to notice when students are absent, to include everyone in a class discussion. It’s also harder for students to get to know each other, which is important to me.
By making this architectural choice, I also committed myself and my colleagues to an organizational policy. If student demand for CS1 cannot be accommodated in the planned number of sections, we cannot allow those sections to significantly over-enroll, because there is not space for additional students. Instead, we must add additional course sections. That’s already happened twice now due to pent-up demand for CS1: last spring among first-year students who were unable to take the class in the fall, and this fall among seniors who have not had the opportunity to take the class in the past. I’m hopeful this pent-up demand will dry up with the addition of a third section of CS1 in the fall, but we’ll see what happens. Like my colleagues in the Liberal Arts Computer Science (LACS) Consortium, we may find ourselves needing to give priority to first- and second-year students so they can complete a CS major, which may not leave much space for juniors and seniors.
There is one problem in the sketch above that we were able to fix before purchasing furniture: The desk in the very back of the classroom (far left) faces into a wall. By replacing three 72″ desks in the back corner with 60″ desks, we were able to turn the odd desk to face the front of the classroom, which is much more congenial.
Here are some photos of the lab in action.
Note the desks allow the computers to be hidden when not in use. This is an innovation introduced at Whitman by Kelly McConville, who taught statistics for three years. Although students have to be taught to put the computers away correctly, it is so nice to be able to tell them to put the computers away.
Note also there are two computers at each desk. I had initially proposed only one computer per desk, as in Grinnell’s labs, to facilitate (force?) pair programming. But I was persuaded to place a pair of computers at each desk, partly for greater flexibility, and partly to maximize use of the available funding.
Finally, note the projection screen centered in front of the whiteboards. The instructor podium shown in the final photo is barely visible at the far left of the third photo; it’s in front of the longer row of desks shown in the second photo. I did not devote enough attention to the whiteboards, screen, and instructor podium as part of the design process. All have shortcomings that we may be able to address in the future.
The upstairs lab is smaller and is intended for smaller, upper-level classes. Inspired by a lab at Grinnell, this lab has computer desks at the edge of the room and reconfigurable tables in the center of the room. Both arrangements are intended to seat 16, though not at the same time.
Again, here’s an early sketch by Jim. The triple dashed lines near the top show a wall which was moved up by 5′ to borrow space from a study area on the other side of the wall. The double dashed lines near the right show the wall separating the original office from the original classroom. Single dashed lines show desks and tables.
Here is the classroom as I arranged it for the first day of class:
Note the reconfigurable tables arranged for a large conference at the center of the room. Also note the computer desks around the edge of the room (foreground and background). The chairs and desks are identical to the larger lab in the larger classroom on the first floor. Note also the projection screen centered in front of the whiteboards and the instructor podium in the corner, in front of the printer (hard to see, but important). Rather than a carpet, this room has a hard floor to avoid static buildup and to make it easier to move the furniture around.
Here’s a picture from later in the fall semester of Yaping Jing’s CS2 class:
The desks have been arranged in several pods of two tables each. These pods accommodate students in smaller groups facing each other or facing the whiteboard. Note that several have laptops or tablets out. The instructor desk (actually just a table) has been pushed into a corner of the room.
Before plans were finalized, I asked for a window on each side of the classroom. One is visible on the far right side of the photo above. It’s dark because it looks into an interior hallway. There was little opportunity for these windows to bring light into the classroom, but I hoped for them at least to provide some connecting views.
This post is long overdue. I originally intended to critique the design of the labs based on our initial experiences. This proved daunting—especially as there were always new things to add—and I kept putting it off. I intended to include those critiques in this post, but I ended up leaving them out for the most part. First, this post is already long enough. Second, I discovered some points need to be illustrated in more detail. I don’t have the necessary photos, and I can’t just go take them because the Olin Building is under construction. The downstairs lab is being used as a temporary office, so nothing is where it belongs, and the upstairs lab is still under shrinkwrap from a recently finished asbestos removal project.
I will follow up with another post on lessons learned. Each lab has some problems and shortcomings that we have already fixed or hope to fix in the future. If you’re an experienced teacher (or student), you may be able to guess at some of them. Feel free to comment below!