What brought you to Puget Sound?
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. 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. She also had spent all of her life in Ohio. We were feeling adventurous, so we came out west, and we’ve been here ever since. We really love it here. As for the university, what impressed me so much 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. And when I interviewed here, I was exposed to a lot of great students and was really impressed with them as well. So it was the whole package.
What sparked your interest in computer science as a field of study?
I got my first job when I was 15. This was in the ’90s, when the internet was becoming democratized. You had the big names, like America Online and CompuServe, but what made the internet truly accessible in its early stages were the Ma and Pa providers. 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, and that’s how I got interested in programming.
Could you share a little about your research?
My research is in data management and cloud computing. Data management is interesting in particular because today’s machines are so capable that organizations can generate a massive amount of data. But just having loads of data isn’t useful alone. You need to be able to uncover the information that’s buried deep within the data. So, to 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 it 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’d likely consult its index. The index filters out all the pages that are non-pertinent and tells you exactly which pages you should be looking at. Similarly, with computers, we don’t want to scan all of the data that’s stored on the disk without some sort of filtering. We’re building these things called data structures that allow us to filter tons and tons of data from ever being read off a disk. That will allow us to accelerate our processing, accelerate our searches.
Computer science is a very technical subject. How do you make it accessible for your students?
I try to create a very inclusive culture in my classroom where we’re all supportive and not competitive with one another. I try to make sure that the materials I use are current and engaging, and I try to inject a lot of humor in my classes, so that students don’t feel anxious coming to talk to me. 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 students 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 the semester, they find out that much of computer science is really just solving puzzles, and they become more confident in their abilities. They find this inner energy and this inner confidence that they’re actually better at this than they thought. I try to challenge the way they think, but I also try to 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.
How do you spend your free time?
When I’m not on campus, I’m probably spending time with my family. I have two kids. They’re 9 and 6, so they’re at a really fun age. We spend a lot of time together exploring the outdoors and doing stuff that our kids can handle—finding activities to do around the city and trying new foods. At some point, I would love to take them on an extended camping trip, but I think we’re still a few years off.