I’ve been meaning to talk about the changes to Oxy’s computer science curriculum, and at the end of the semester things seem to have moved so quickly and yet not at all. On one hand, I submitted a curriculum proposal to the relevant faculty body close to two months ago; on the other hand, I have yet to hear back (I heard they decided to focus on other issues as a result of the student protests on campus; I don’t blame them). Still, even though what I’m writing about may not be what is actually implemented, I want to reflect a little on what I proposed and the thought that went into it.
The first question that I should answer is why I’m doing this in the first place. Oxy already has a computer science minor, so it seems I should be focusing on creating a major instead. In some respects, the answer is obvious: the current curriculum starts off with a two unit course (so what students can learn and take away are limited) and the curriculum overall skims on the applications in favor of technical details. These, I think, are sufficient justification to rethink the program. The problem is not that students are not minoring in computer science – there are over thirty juniors and seniors declared as computer science minors – but that it’s a particular kind of student who does: physics and math majors, white or Asian, mostly male. You might say that the current students are there in spite of the curriculum, not because of it, and that is what I want to change most of all.
What’s funny is that I don’t remember ever being explicitly asked to create a new curriculum. Looking back through my emails and journal entries, I was somehow invited to curricular planning meetings where a redesign was assumed, and it’s almost as though I just took the responsibility by chance. I say this because I can’t find an obvious source of inspiration for what I ended up producing. I did look at the curricular of other schools, even though I already had a good idea of what they were. But mostly, I approached the problem from the faculty’s perspective – what computational skills are missing from our students’ repertoire, and how we can create courses to build those skills up. Previously I listed five user stories that I thought the curriculum should accommodate, but I as just as much influenced by faculty who lamented the inability of their students to do computational research.
The result is the following structure for a minor:
- One of either intro to computer science courses, focused on either media or data
- Data structures and algorithms
- Discrete math
- Three electives
Everything from data structures on up is standard, so I want to talk more about the two intro courses. The idea is that the two courses would cover the same standard content in a first course – variables, loops, basic data structures – but in the context of either digital/new media or data generation/visualization. The former was probably inspired by some of the work on media computation, as well as the projects that were used in Michigan’s intro course. As for the latter, it is partly driven by the kinds of computational research that faculty do, but also by students’ lack of awareness of the role that computers play. These two are of course not mutually exclusive – the current plan for the media course (which I’m teaching this coming semester) will likely involve a web interface for course schedule data (an idea I stole from Michigan), while I would like the data course to end with a piece of data-driven journalism where users can explore the data themselves. In both cases, the hope is that even from just one course, students can take what they learned and use it in whatever their major is, whether it’s visual arts or economics.
I first drafted the proposal in the last half of September, which means it has been at least three months since I had given serious thought to this curriculum design. Looking back now and writing this blog post, I’m not sure how I feel about this design anymore. Many of the reasons I listed above feel post-hoc and unconvincing, and I worry that I won’t be able to develop the courses to the satisfaction of both my students and myself. I can convince myself that it’s not a bad idea, since it’s an improvement over what Oxy has now; I just can’t yet convince myself that it’s a good idea. I don’t know of other curricula that have a similar topic-based divide (although Harvey Mudd has a special biology-focused intro course), and I worry that there’s some reason for its failure that I have yet to discover.
I guess I’ll find out when the semester starts. I have a rough schedule for the course planned out, but will still have to do a lot of work as assignments need to be released. With luck, teaching actual computer science will be more familiar territory than doing it in a cognitive science context.