Marc L. Smith Associate Professor of Computer Science
Professor Smith earned his B.S., M.S., and Ph.D. degrees in Computer Science from the University of Central Florida. He worked in industry for AT&T for fifteen years, during which time his Ph.D. studies were sponsored by AT&T's Doctoral Support Program. While at AT&T he worked in several different IT capacities, including applications and systems development and support, and IT infrastructure systems engineering. He was an Assistant Professor at Colby College from 2001-2006, before coming to Vassar. His research spans elements of theoretical and experimental computer science, in the areas concurrency (models of parallel and distributed computation, programming languages, and unifying theories of programming) and bioinformatics (phylogenetic inference and evolutionary robotics). At Vassar he has taught CMPU-101 (Problem-Solving and Abstraction), CMPU-102 (Data Structures and Algorithms), CMPU-203 (Software Design and Implementation), CMPU-235 (Programming Languages), CMPU-245 (Declarative Programming Models), CMPU-240 (Language Theory and Computation), CMPU-353 (Bioinformatics), CMPU-375 (Networks), CMPU-377 (Parallel Programming), and CMPU-381 (Relational Databases and SQL) as an Intensive.
- BS, MS, PhD, University of Central Florida
- At Vassar since 2006
Research and Academic Interests
Departments and Programs
- CMPU 101. Computer Science I: Problem-Solving and Abstraction
- CMPU 381. Relational Databases and SQL
In the Media
Download images for non-commercial use, photo credit required.
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 PhD 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 was previously co-PI with my colleague, Tiffani Williams, from Texas A&M University (now Northeastern 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 co-PI on an NSF INSPIRE Grant along with Jodi Schwarz, John Long, Josh Bongard (University of Vermont), and PI Ken Livingston on a grant entitled, "Is Evolvability Driven By Emergent Modularity? Biomimetic robots, gene inspired information structures, and the evolvability of intelligent agents."
I was previously the director of URSI, Vassar’s Undergraduate Research Summer Institute, and chair of the Computer Science Department. Other service to the college included being the chair of CAT (Committe on Academic Techologies), a member of the college’s CTO search committee, and one of the CS Department’s representatives on CCAS (Center for Collaborative Approaches to Science). Beginning Fall 2019 I will be serving on FASC (Faculty Appointments and Salary Committee).
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-245 (Declarative Programming Models), CMPU-240 (Language Theory), and CMPU-375 (Networks).
My personal website contains more information about me, my teaching and research interests, publications and courses.