Faculty Bio

Marc Smith

Associate Professor of Computer Science

Before joining Vassar in Fall 2006, I was an assistant professor at Colby College for five (5) years, beginning Fall 2001. Prior to my transition to academia, I worked for AT&T for fifteen (15) years, in several different internal IT capacities, including applications and systems development and support, and IT infrastructure systems engineering. One of the very special opportunities I had while working for AT&T was to be sponsored in its Doctoral Support Program, which enabled me to go back to school full-time to earn my Ph.D. in Computer Science from the University of Central Florida in Orlando.

My research interests include both theoretical and experimental Computer Science, including models of concurrency, and bioinformatics. Concurrency encompasses the broad range of parallel and distributed computation, which require communication and coordination among concurrent proccesses, or threads of execution. I developed a parameterized operational semantics capable of instantiation for reasoning about shared memory, message passing, and hybrid approaches to concurrency.  My View-Centric Reasoning extended the notion of observation in Hoare's Communicating Sequential Processes (CSP) model of concurrency, to include parallel event traces, multiple observers (and views), and the possibility of imperfect observation.

I am currently co-PI with my colleague, Tiffani Williams, from Texas A&M University on a grant to develop tools and techiques for detecting convergence in phylogenetic search. Several students have worked with me on this project in recent years, especially over the summer as URSI students. I am currently the director of URSI, Vassar's Undergraduate Research Summer Institute. Other service to the college currently includes being the chair of CAT (Committe on Academic Techologies), member of the college's CTO search committee, and one of the CS Department's representatives on CCAS (Center for Collaborative Approaches to Science).

Courses I regularly teach include: CMPU-101 (Introduction to Computer Science), CMPU-102 (Data Structures and Algorithms), CMPU-203 (Software Desgin and Implementation), CMPU-353 (Bioinformatics), and CMPU-377 (Parallel Programming). I have also taught CMPU-235 (Programming Languages), CMPU-240 (Language Theory), and CMPU-375 (Networks).

My personal website contains more information about me, my teaching and research interests, publications and courses.