My new job officially started yesterday. I moved to LA a week and a half ago, and have already had a couple meetings about the particulars of my job. For once, I am going write about actually starting a department, and the things I’ve learned and some impromptu thoughts I’ve had.
Surprisingly, not once from writing my application until now did I ask (or was I told) why Occidental wants to start a computer science department. I have my own answers as to why people should be able to study computer science – although I’m still struggling with what it really means to “major” in something – but it still should have occurred to me to ask what other people think, especially since they might have other priorities.The closest I got to such a conversation is when I was interviewing, with several conversations talking about how computer science offers a different way of thinking not found in other disciplines. While this is true and important, I’m not sure that others would consider it the first reason for having a computer science program. I should spend time asking people what they think, if only to better understand what they are expecting of me.
For now, however, the most explicit task for me is to put some structure on the current computer science minor, with the (even) longer term goal of building the base for a major. Historically, Oxy’s computer science minor was formed by grouping computing-related classes from multiple disciplines, then adding some core classes allowed gave students the background necessary. I am hypothesizing here, but I think that’s why there are a number of half-credit courses in individual languages, which serve as prerequisites for the “real” introductory course. This is an arrangement of courses that I would not have considered, although I can see how it arose – students in the individual disciplines can just take the course for the language they need, without necessarily committing to a heavier workload for the semester. The downside is that while students may come out “knowing” a language, they would be missing the skills that even casual programmers should have, both at the lower technical level (eg. debugging) to the higher conceptual level (eg. functional decomposition). Without meaning any malice, it would be like learning to play fill-in-the-blanks in a foreign language, but not necessarily getting the bigger picture of how that language works.
This is where I come in. The organization and restructuring of lower level computer courses is something I have been itching to spend time thinking about since I co-taught the introductory computer science course at Michigan. It amuses me a little to think that this experience wasn’t even in my application materials, which was due at the end of 2014, when my class was in the first four months of 2015. Regardless, seeing behind the scenes of that class gave me a lot of insight into what Michigan – or more specifically, what the lead instructor – thinks students should know. Again, I’m not trying to be disagreeable here, but thinking back on the course now, I agree with all the topics covered but don’t think we spent enough time and provided enough support for students to gain skills. Which is an interesting idea, to separate the goals of a class into things students should know at the end and things they should be able to do. There has to be literature exploring this framing…
I went off topic a little there. The short story is that starting next semester, when I will be teaching a (new) introductory computer science course, I will (in theory) be setting the foundation on which future departmental courses can be built, eventually subsuming the current organization of courses and requirements.
Which brings me to the next topic. When I first entertained the thought of starting a new department, I thought that I will get to work with a clean slate and have the freedom to do (what I believe to be) the right things. This is mostly true with the amount of leeway I have in designing my courses, but I neglected to think of how to deal with the transition, both for the college and for the students. The problems for students are obvious enough, as there will be uncertainty over which system to follow and what the requirements are. On the college side, computer science is growing in popularity and demand, to the point where there is not enough faculty to keep up. This is of course a problem that universities across the country face, but transitioning between curricula is an added challenge. Would it be okay for both the old and the new courses to be offered at the same time? If not, how should the teaching load be split? And this is not even taking into account how the new curricula needs to grow – which means needing even more faculty.
These are all college-level problems that I have no experience with, but luckily, I am not alone in this endeavor, and everyone I have talked to have been more than supportive. Neither the development of a new curricula nor the formation of a new department is a trivial task, and the latter in particular has administrative procedures that must be followed – although, I did learned that it’s possible for a discipline to “accidentally” become a department… For now, this semester will allow me to settle into the college and give time for an advisory committee to form, with whom I will be working in the future on both curricular development and more administrative responsibilities. I suspect I will have a lot to learn.
This is all very exciting, and honestly, kind of scary.