He joined the faculty in 1987 after earning his Ph.D. in Computer Science from the University of Minnesota. He has served as Acting Chair of the Department, Associate Chair, and as Director of the Computer Engineering Undergraduate Program. Richard received his B.A. in Mathematics from Carleton College in Northfield, Minnesota in 1976, and spent six years teaching high school mathematics in Vermont and New Hampshire.