I was lucky enough to have a computer at home when I was still in elementary school (this was late 80s-early 90s, so not everyone had one). My dad knew a little about programming in a language called BASIC and taught me some when I was a bit older. I got really into programming and went from there. When I entered college I knew I wanted to be a CS major but I didn’t know I wanted to teach until a few years into grad shool.
What drew you to computer science?
Good question. On some level I thought it was cool that all the stuff computers could do (or, what I used them for as a young kid, which was playing games) boiled down to really simple commands like adding numbers. Later, it was because I was fascinated with trying to get the computer to do things with music. What I spent a lot of time thinking about in grad school, when I was studying AI, was how stuff that is so easy for humans (language, music, jokes) is so hard for computers.
What is the biggest project you have worked on?
Probably either my dissertation (which was a lot of code), or an internship I had where I worked on a huge codebase for a content management system (a web application [from the early 2000s] to manage documents on web servers).
Do you put milk or cereal in first?
Cereal. Fight me.
What do you feel is your gift to the world as a programmer?
“Teaching the next generation of computer scientists”…right? Isn’t that what I’m supposed to say? In truth, I don’t think I’m super-gifted. Some parts of CS came naturally to me, but plenty other parts did not. Anything involving hardware or low-level stuff was really tough for me. My compilers class was the hardest undergrad class I took (ask Larkins about compilers sometimes). I remember being super intimidated in high school, undergrad, and grad school by plenty of other students who grasped some things so easily when I didn’t.
How much math did you take in undergrad?
I took up through linear algebra (Calc I, Calc II, linear algebra). I never actually formally took Calc III, but there have been times later on when I had to teach myself some of that math, like partial derivatives (used in a lot of machine learning). I also took a course in probability and statistics.
Do you have any pets?
Alas, no, not right now. Growing up we had a cat for a long time, and but before that I had a parakeet, but it died :( I like dogs and cats.
Why did you choose to do computer science?
Honestly, I never pictured myself doing anything else. I got into computers early, so I kind of figured that would be my career in some way. I eventually figured out in grad school I wanted to teach. I suppose it’s possible I could work in industry if I weren’t a professor, but I really enjoy teaching. If I weren’t doing this job, I might have tried to be a high school teacher.
Which is better: Rat or Lair?
I think the Rat (at least pre-covid) has better desserts, and so I went there a lot.
Are you teaching higher level cs courses?
I teach artificial intelligence (which is my specialty), as well as databases and programming languages.
What is your specialization in CS?
Artificial intelligence, particularly machine learning, and within that, teaching computers how to understand music the way people (especially music theorists) do.
How long have you been studying comp sci?
Formally studying, since undergrad. Informally, I got into programming when I was a kid, but it was just hobby stuff.
Did you want to become a professor? Why teaching over actual work?
Teaching is actual work! :) “Those who can’t do, teach” is a complete lie, by the way. Teaching is a really fun challenge for me because you have to put yourself into the mindset of someone who (a) doesn’t understand the concepts, and/or (b) if they do understand, it may not be in the same way that you (the prof) does. So you have to be able to think about things in a bunch of different ways, because some ways will make sense to some people, and other ways work for other people.
I really like teaching because I actually see a lot of parallels between teaching and CS itself. In both cases you have to break down a problem into pieces and make sure you understand each piece before going on to the next one. I enjoy teaching because it’s never the same thing each day. The students are always going to surprise you, and when they are enthusiastic about learning, it’s really great. It’s fun to see the different way people’s minds work and share my knowledge with them. I enjoy breaking down CS concepts to their most basic units and trying to figure out the best way to help people understand.
What are your hobbies?
Lately I’ve gotten into running; I do 20-30 miles per week now. I play the piano; I took lessons as a kid and nowadays I like to jam with others but I don’t get to do it as often as I’d like. I like to read; I like to cook. I like to play tennis, but I’m not very good. I’m a huge baseball fan. When covid hit, some friends gave me some tomato and pepper plants so now I’ve been gardening for two seasons (which is super-weird because growing up I hated gardening — my dad grew vegetables and I wanted nothing to do with the garden). Pre-covid I would swing dance and I was in the Rhodes MasterSingers.