Chris Gregg is a professor with the Computer Science Department of Tufts University. Recently, Enigma writer Josh Kaltman stopped by to chat with Professor Gregg about pursuing computer science studies at Tufts and opportunities that are available for students in this engaging field. Peppered with helpful information, in this interview Professor Gregg not only gives great advice to students with interest in the computer science field, but he also shares his own story with computer science and discusses some of his research in this exciting field. Here is a lightly edited transcript of Josh’s interview with Professor Chris Gregg.Describe yourself. How would you introduce yourself to the Tufts community at large? I am a fairly new lecturer at Tufts, but I have been teaching for about twelve years altogether (mostly high school physics and computer science). I love teaching, and I try to make my classes interesting and “doable” – i.e., I want students to succeed, and I’m not a fan of trick questions. That said, I know that Tufts students love challenges, and I try to make sure the problems and tests are intellectually stimulating. Personally, I’m kind of nerdy, and kind of an introvert. I love the energy that students bring into the classroom and around Halligan, so that brings me out of my shell a bit!What did you do after receiving your Ph.D. from the University of Virginia? What was your first job coming out of graduate school? Did you have any jobs while in school?Directly after graduate school, I was actually mobilized with the Navy Reserve to spend a year in Djibouti, Africa. I can’t say that I particularly enjoyed my time there–it was unbearably hot, dusty, and humid from the first day to the last. I would get up to go for a run at 5am and the weather report said, “89º, feels like 112º!”While in graduate school, I tried to teach as many classes as I could. As a full-time graduate student, my main job was research, which for me was “dynamic scheduling for heterogeneous CPU/GPU computer systems.” In other words, I tried to make computers do stuff faster.When and why did you decide to teach computer science and how did you end up at Tufts?My Grandfather was an electrical engineer (Cornell, ‘39!), and I always looked up to him. He got me hooked on electronics and computers as a kid, and I never looked back. I studied computer engineering for my undergraduate degree, and also for my PhD. As I said, I love teaching, and decided that it made the most sense to look for teaching positions in either Computer Engineering or Computer Science. I’ve lived in Somerville a number of times in my life, so I knew Tufts is an amazing school. I jumped at the chance to apply here a few years ago.To non-computer science members of the Tufts community, how would you explain your thesis research?As I said earlier, my research tries to make computers perform certain tasks faster, and it falls into the category of “computer architecture” research. More specifically, I try to maximize how many tasks a computer can do given that it can compute on both its CPU (Central Processing Unit) and its GPU (Graphics Processing Unit). It is a tricky problem, because CPUs and GPUs are designed to tackle different tasks, so determining which processor will run a task more efficiently is not trivial. You mentioned you are not currently doing research due to your busy schedule. Is there a particular project you would like to start in the future? As a lecturer, my primary duties involve teaching. However, I would love to get back into the computer architecture research, as well. I would also like to do more educational-related research – in other words, I want to do research that finds better ways for students to learn. Specifically, with some very large classes at Tufts, we might be able to find better ways to teach the classes so that students get more out of them, and so that they learn more. Is there any subject you would recommend students pairing with computer science or a particular non-computer science class that you find interesting? The popular pairing with computer science these days is in the computational biology arena. However, I am personally very interested to see how automation will affect the future; specifically, I believe we are on the cusp of a revolution in the self-driving car arena. That area touches many fields – mechanical engineering, sociology, ethics, philosophy, law, etc. For instance, who is responsible if a self-driving car makes a mistake and injures someone outside the vehicle? That’s a philosophical, ethical, and law question wrapped into one. So, I would say that it would be very interesting to pair an ethics course with computer science, because there are a lot of unanswered questions about what will happen in the near future regarding computers. What advice do you have for computer science students? The best thing you can do to become a better computer science student is to work on your own projects that you love. Yes, you can do very well by studying for your courses, but you really learn best when you dig into a fun project of your own. I know it is hard to manage this during school, but summers or other breaks are a great time to pursue those kind of projects. If you could go back to college, what are some things you would do differently? I would have tried to be more organized, and I would put more effort into really understanding class material instead of cramming for tests. There have been many times since college where I’ve had to re-learn things that I could have learned the first time around, and I could have concentrated on other things. I also would have tried to get into research earlier – research isn’t easy, but it is rewarding and you learn a great deal by trying to solve real, difficult problems.