Month: May 2015

The hardest question I was asked during my interview at Oxy was how I think computer science fits into the liberal arts. The answer I gave depended on who I was talking to. Sometimes I focused on how knowing a little bit of computer science is necessary in the modern technological society (even if I’m vague on what the “little bit” is); other times I focused on giving students the computational skills they need for whatever disciplines they are actually interested in. Both these answers focus not on the technical aspects of computer science, but on how computer science integrates what other topics.

These are good answers, but I’ve never been entirely satisfied with them. For one, in the extreme, focusing on the usefulness of computer science would lead me to treat the subject in a vocational manner, which is not something I want to do. This is a slightly different question than the one I’m asking now, and how to balance teaching students to be a good developer versus being a good computer scientist is something for another post.

Instead, I want to examine my thoughts on what computer science has to offer a liberal arts education. The problem, as I see it, is that for most scientific fields, as a student progresses into the more specialized topics, they are necessarily dissociated from most other fields of knowledge. This is most obvious in math, where the subjects very quickly lose obvious applications, but the same apply to chemistry and physics, and most of the other hard sciences. That this is universal across schools, liberal arts or not, suggests that perhaps being part of the liberal arts does not matter at this level of expertise.

I see more for computer science. One comparison that I enjoy making is that while math is the study of structure – of how things relate to each other and the logical consequences of that relation – computer science is the study of process. The relations of the real world are rarely interesting to math, but problems that the processes of computer science is trying to solve are often rooted in the real world. This is especially true for artificial intelligence – a subfield which I am biased towards – but I think is also true of ideas in parallel processing or security.

Which brings me to the last point. I believe computer science, as the study of the organization and processing of information, contains a lot of useful abstractions for students to apply to other fields. For example, the testing and debugging cycle is a very concrete example of the scientific process, of how to methodically figure out a phenomenon you don’t understand. More philosophically, the uniform binary representation of code and data, as well as the many layers we build on top of it, lends itself well to discussions about representations and map-territory distinctions. That AI often leads to many more discussions in the philosophy of mind is not worth mentioning.

These connections are unique to computer science, and something I would like to take advantage of. More than the obvious usefulness of its applications, I think computer science has a role in the liberal arts because of how directly its thinking can be applied, and the common structure that it reveals in everything else we do.

One thing I learned about myself in grad school is that I’m much better at a task if I think about why I’m doing it first. I mean this in the teleological sense – for example, what is the purpose of making students submit a proposal of their intended thesis topic? A failure to consider the question led to an additional month of work writing an “appendix” to my proposal document. To be fair, the list of experimental parameters is now coming in extremely useful for my thesis, but it was none the less wasted time. I would like to avoid this trial and error process for something as important as starting a department. While no plan survives first contact with the enemy, it is the planning and not the plan that is crucial anyway. The purpose of this post (see what I mean?) is to identify, if only to myself, all the different roles I think I will be playing at Oxy, and the responsibilities associated with them.

Instructor The obvious role that I will be playing is as a teaching faculty. In fact, I already know the courses I will be teaching: half of intro to cognitive science (I will be co-teaching the course) and a Topics in AI class for the fall; again half of intro to cog sci and two credits of CS 1 for the semester after. The obvious responsibility for the obvious role is that I have to make sure the students actually learn something. I’m fairly comfortable with this – teaching is not a new responsibility for me – although I’ve had a lot more thoughts on how this fits into a small liberal arts college, which will be the topic of the next several posts.

Researcher The goal here is two-fold: I have to both publish enough that I have a strong case for tenure, but also involve undergraduates in research. The exact overlap and contradiction between the two is not yet clear to me. I’ve heard from multiple sources that involving undergrads in research is often hit-or-miss, and that getting a publication out of a project is an exceptionally good outcome. This picture is further complicated by the fact that I am starting a department – meaning that there will not be computer science majors for me invite for research. This is the aspect of my job that I spend a lot of my free time on: how can I simplify my research such that an undergrad can contribute, yet have it be sophisticated enough that I can publish with the results? I suspect I won’t have a good answer until several semesters in.

Mentor Another role I have to play is as a mentor to undergraduates looking to major in, or at least interested in, computer science. Part of this is advising students as to the courses they should take; this should not be an issue, as long as I spent time understanding Oxy’s graduation requirements. But I also want to be more ambitious here: what can I do to help my students developing into interesting and awesome people?

Faculty The role of being a faculty is subtly different from being just an instructor. Being a faculty means I am part of the college system, and will have to work with other faculty on various administrative duties. I’m not yet sure what this entails.

Department Chair And finally, the namesake of this blog. Off the top of my head, the role of the department chair is to deal with issues that affect the bigger picture. Some of this is about curriculum, although for a small liberal arts college, I suspect that responsibility is more distributed than at a research university. Other aspects of this role are common across disciplines: making sure there are enough faculty for the courses, dealing with hiring new faculty, organizing departmental events. But the ones I spend the most time thinking about are more specific to computer science: developing a welcoming atmosphere for minorities, providing support for students unused to computer science, all building towards a diverse student population in the major.

This list is not exhaustive, but it’s a solid foundation for further consideration of my goals. I expect I will explore many of these responsibilities in future blog posts; then, when I actually start at Oxy, we can see how it holds up to reality.

It’s rare these days for a college not to have a computer science department. During my job search, I’ve only found two. Occidental is one of them, the other being Whitman College in Wallawalla, WA. There are some others others with new CS departments – Franklin & Marshall, for example – and of course a number of others that are not looking to hire people.

Ever since I saw the Whitman posting – which was back in early September, way before my application materials were ready, although I later learned that they already had someone in mind – I enjoyed the fantasy of starting a new department. Every programmer has had a case of not-invented-here syndrome, the desire to build something from scratch and the (blind) optimism that the result will be superior to the existing products. I don’t think my desire to start a department was that exactly, but I think some of the novelty of a new project definitely applies. In retrospect, if I had known that Whitman was considering someone who was already a tenured professor elsewhere, I might have been more apprehensive of the opportunity.

If you’re looking for advice when applying to academic jobs, I’m afraid I don’t have much to say. That I got the offer at all required some luck on my part. The first piece of that luck is that my computer science position is being extended by the cognitive science department, unlike most new computer science faculty, who would join the mathematics department. Since my research is much more cognitive than it is mathematical, this meant I spent my time thinking about many of the same things that the faculty of the hiring department did. This pairing is also something I wanted, as one of my backup plans was to get apply to postdoc positions in cognitive modeling, to bolster my credentials in that field; with Occidental’s large cognitive science faculty, I can both have my cake (get a tenure-track faculty position) and eat it too (learn to be a cognitive scientist).

There is a second element of luck – at least, I think it was in my favor – in that for my visit, my teaching demonstration came before my research talk. From what I can tell, it’s common teaching demonstrations to go better than the research talk, if only because it’s more widely acknowledged that audience participation is a good thing. That I did really well – my subject was algorithms and search, and I focused on the universality of search to diverse problems – which I think made me more confident for the more lackluster research talk. That said, I think my interviews with individual professors went well as well, although I would be hard pressed to tell you wasn’t what I did that led to that result.

The chance to start a department from scratch, and the opportunity to work with cognitive science people – these two reasons make Occidental a good fit for me. The many conversations I’ve had during my visit also convinced me the college as a whole is putting the correct emphasis on computer science, and that the discipline will have a place in the college’s future. This gives me hope that, despite my inexperience, I can actually do something useful for both my students and for the college.

Which, when it comes down to it, is more than one can ask for in a job.

So, in celebration/preparation for my upcoming position as a computer science faculty at Occidental College, I’ve decided to start a new blog.

I thought, as a first post, I would just answer some questions about this new venture:

Who are you?

My name’s Justin Li. I did my undergrad at Northwestern, and my PhD (well, I’m doing my PhD) at Michigan. I will be joining the faculty of Occidental College in the fall of 2015. I have a separate personal website where you can read more about me.

I see that your website already has a blog. Why are you starting this one?

That is actually a good question. The answer is that I’m not sure, but I can give some partial answers:

Oxy is is unique as an opportunity for me in many ways, the least of which is that I get to start a computer science department from scratch. Talking to many of the people at Michigan, it seems that many computer science departments are burdened with multiple historic artifacts: either from a dated curriculum, or the lack of data about what students go through the program, or diversity issues. Starting a department is a rare chance to tackle these issues from scratch, and I hope that other people may learn something from my experience (and mistakes).

I am coming into the position at Oxy as a fresh PhD, and I hope that my story will help other PhD students decide what they want to do. I know I still have a lot to learn about surviving in academia, particularly coming from two research schools but teaching at a liberal arts college. My perspective is therefore somewhat different, and maybe useful to others.

I like writing. I’ve kept a personal journal for over 13 years at this point, and it’s a both a source of comfort and a source of reflection. This blog allows me to explore aspects of my new job from a different perspective – that of a professional – and would also force me to engage more deeply with what I need to do.

Okay. What is this blog about?

Despite the title of this blog, I have no delusions that I will be able to create a superior computer science department from scratch. Rather, this blog is a space for me to write about my thoughts on computer science education and culture, as well as what it’s like to have a lot of freedom (read: a lot of opportunities for disaster) in an academic program.

So, more than anything, this blog is the story of me learning to be a professor. I just happen to also be starting a computer science department. I will try to focus on what makes my situation special – namely, that I’m at a college where computer science is not a department nor a major. But I will also be writing about the courses I’m teaching, my thoughts and struggles with teaching, and other generic academic problems.

That’s vague. What isn’t this blog about?

This blog is not a guide to starting a CS department. I have no clue what I’m doing. If anything, read it as a cautionary tale.

So what should I expect?

I will try really hard to update this blog every Tuesday, with at least three paragraphs of text every time. Sometimes I will be writing more, other times it might just be an excerpt from some article on education that I read the past week. I can see this going for at least a year (~52 posts); whether I get tired of this by the end of that… we’ll see.

I look forward to reading what you have to say!

You didn’t actually think that, but I thank you for the sentiment anyway.