Q: What brought you to Puget Sound?
A: I consider myself a native Ohioan. I was born in Taiwan and spent the first nine or 10 years of my life there, but I grew up around Akron, Ohio. Coming here was quite an adjustment. I was in third grade when we moved and I didn’t speak any English. I love Ohio and might have spent my whole life there, but after graduate school, my wife and I were ready for a change of scenery. We were feeling adventurous, so we came out west. As for Puget Sound specifically, what impressed me so much about the university was the people. There is something special about the people of Puget Sound—they’re very collegial and collaborative. I immediately felt like these were the people I wanted to work with every day.
Q: What sparked your interest in computer science as a field of study?
A: I got my first job when I was 15. This was in the ’90s, during the era when the internet was becoming democratized. You had the big names, like America Online, CompuServe, and AT&T, but what made the internet truly accessible in its early stages were the Ma and Pa internet companies. My mom worked for one of those little companies and one day she said, “David, I don't think you're doing enough with your life. Why don't you come work as a technical support representative here?" I wasn't even good with computers, but being around people who loved them, I started dabbling. Pretty soon, I realized I could write programs to command these computers to automate a lot of work for me. That's how I got interested in programming.
Q: Could you share a little about your current research?
A: My research is in the areas of data management and cloud computing. Data management is interesting in particular because today’s machines are so capable and ubiquitous that organizations can generate a massive amount of data. But just having loads of data isn’t useful on their own. You need to be able to uncover the information that’s buried deep within the data. So, to retrieve and process large data sets more quickly, my research involves defining and building database indices, which are efficient ways of summarizing and accessing the data underneath. Think of a database index like the index in the back of a textbook. If you’re looking for a specific term in a textbook, you wouldn’t read the whole book cover to cover in search of that term; you would likely consult its index to get to the information quickly by filtering out all the pages that are non-pertinent. The same idea can help us access huge amounts of data stored on a disk.
Q: Computer science is a very technical subject. How do you make it accessible for your students?
A: The most exciting courses I teach are the intro courses because, for a lot of students, it's their first foray into computer science and programming. There can be anxiety about the use of jargon, and many come harboring a feeling that they are somehow already behind their peers. It’s important for me to get students to realize that anyone, with a level of preparation, can learn computer science. Over the course of a semester, they find out that much of computer science is really just solving puzzles, and they become more confident in their abilities. I try to challenge the way my students think, but also help them approach the subject without fear of being judged for doing something wrong. We have a lot of students who take the course for their math requirement and end up becoming computer science majors because they fall in love with the computational approach to problem-solving.
Q: How do you spend your time when you’re not on campus?
A: When I'm not on campus, I'm probably spending time with my family. I have two kids. They're eight and five, so they're at a really fun age. We spend a lot of time together exploring the outdoors, finding activities to do around the city, and trying new foods. At some point, I would love to take them on a camping trip, but I think we’re still a few years off.