Mary Lou Soffa headshot
MS

Mary Lou Soffa

Professor
Unit: School of Engineering and Applied Science
Department: Department of Computer Science
Office location and address
Rice 421
85 Engineers Way
Charlottesville, Virginia 22903
Education
B.S. ​University of Pittsburgh
M.S. Ohio State University
Ph.D. University of Pittsburgh
Biography

Mary Lou Soffa is the Owen R. Cheatham Professor of Sciences in the Computer Science Department at the University of Virginia, serving as the Department Chair from 2004 to 2012. From 1977 to 2004, she was a Professor of Computer Science at the University of Pittsburgh and also served as the Dean of Graduate Studies in the College of Arts and Sciences for five years. Her research interests include cloud computing, warehouse scale computers, software systems for multi-core architectures, optimizing compilers, software testing, and program analysis. She has directed 32 Ph.D. students to completion, half of whom are women.

Mary Lou is a Fellow of the Association for Computing Machinery (ACM) and a Fellow of The Institute of Electrical and Electronic Engineers (IEEE). In 2012, she received the Ken Kennedy Award for contributions to compiler technology and software engineering, exemplary service to the profession, and lifelong dedication to mentoring and improving diversity in computing. She received the Anita Borg Technical Leadership Award in 2011, which celebrates a woman who led or developed a product, process, or innovation that made a notable impact on business or society. Other awards she received include the ACM SIGSOFT Influential Educator Award in 2014, the Distinguished Alumni Award from the Computer Science Department at the University of Pittsburgh in 2017, the the Computing Research Association (CRA) Nico Habermann Award in 2006, a Girl Scout Woman of Distinction Award in 2003, and the White House’s Presidential Award for Excellence in Science, Mathematics and Engineering Mentoring in 1999. She has also received a number of distinguished paper awards.

Mary Lou was a member of the Computer Research Association Board (CRA) for ten years. She served as a co-chair and member on the CRA-W Board co-founded the CRA-W Graduate Cohort Program and the CRA-W Mentoring Program for Associate Professors. She served on ACM Council from 2000-2016. She has served on the editorial board of a number of journals, including the ACM Transactions on Programming Languages and Systems and the IEEE Transactions on Software Engineering. In addition, she has been a conference chair, program chair or program committee member for many conferences in programming languages, software systems and software engineering. Currently, Mary Lou is on the ACM Publication Board and serves on conference program committees.

EN-CS SHF: SMALL: Collaborative Research: Cloud Mentoring: Guiding Cloud Users for Cost Performance through Testing and Recommendation
Source: U.S. NSF - Directorate Computer & Info. Sciences
August 01, 2016 – July 31, 2020
CSR: Medium: Collaborative Research: Scaling the Implicitly Parallel Programming Model
Source: U.S. NSF - Directorate Computer & Info. Sciences
May 01, 2010 – April 30, 2014
EN-DO PAGES: Preparing and Graduating Engineering Scholars
Source: U.S. NSF - Directorate For Ed. & Human Resources
October 01, 2006 – September 30, 2013
EN-CS CPA-CPL-T: Collaborative Research: REEact: A Robust Execution Environment for Fragile Multicore Sytems
Source: U.S. NSF - Directorate Computer & Info. Sciences
September 01, 2008 – August 31, 2013
CS 4620: Compilers
Credits: 3
Provides an introduction to the field of compilers, which translate programs written in high-level languages to a form that can be executed. The course covers the theories and mechanisms of compilation tools. Students will learn the core ideas behind compilation and how to use software tools such as lex/flex, yacc/bison to build a compiler for a non-trivial programming language. Prerequisite: CS2150 with grade of C- or higher. CS3330 recommended.
CS 4980: Capstone Research
Credits: 1–3
This course is one option in the CS fourth-year thesis track. Students will seek out a faculty member as an advisor, and do an independent project with said advisor. Instructors can give the 3 credits across multiple semesters, if desired. This course is designed for students who are doing research, and want to use that research for their senior thesis. Note that this track could also be an implementation project, including a group-based project. Prerequisite: CS 2150 or CS 2501 topic DSA2 with a grade of C- or higher, and BSCS major
CS 4993: Independent Study
Credits: 1–3
In-depth study of a computer science or computer engineering problem by an individual student in close consultation with departmental faculty. The study is often either a thorough analysis of an abstract computer science problem or the design, implementation, and analysis of a computer system (software or hardware). Prerequisite: Instructor permission.
CS 4998: Distinguished BA Majors Research
Credits: 3
Required for Distinguished Majors completing the Bachelor of Arts degree in the College of Arts and Sciences. An introduction to computer science research and the writing of a Distinguished Majors thesis. Prerequisites: CS 2150 with a grade of C- or higher and CS BA major status.
CS 6501: Special Topics in Computer Science
Credits: 3
Course content varies by section and is selected to fill timely and special interests and needs of students. See CS 7501 for example topics. May be repeated for credit when topic varies. Prerequisite: Instructor permission.
CS 6620: Compilers
Credits: 3
Study of the theory, design, and specification of translation systems. Translation systems are the tools used to translate a source language program to a form that can be executed. Using rigorous specification techniques to describe the inputs and outputs of the translators and applying classical translation theory, working implementations of various translators are designed, specified, and implemented. Prerequisite: CS 3330 or instructor permission.
CS 6888: Software Analysis and Applications
Credits: 3
This course provides an overview of the state of the art in software analysis including static and dynamic analysis techniques and verification and validation. It explores the various ways that the analyses are used to predict software behavior. The applications include inference, symbolic execution, fault localization, model checking, security and performance. The course combines theory with practical implementation and usage. Prerequisites: CS 3240.
CS 6890: Industrial Applications
Credits: 1
A graduate student returning from Curricular Practical Training can use this course to claim one credit hour of academic credit after successfully reporting, orally and in writing, a summary of the CPT experience to his/her academic advisor.
CS 6993: Independent Study
Credits: 1–12
Detailed study of graduate course material on an independent basis under the guidance of a faculty member.
CS 7993: Independent Study
Credits: 1–12
Detailed study of graduate course material on an independent basis under the guidance of a faculty member.
CS 7995: Supervised Project Research
Credits: 3
Formal record of student commitment to project research for the Master of Computer Science degree under the guidance of a faculty advisor.
CS 8897: Graduate Teaching Instruction
Credits: 1–12
For master's students who are teaching assistants.
CS 8999: Thesis
Credits: 1–12
Formal record of student commitment to thesis research for the Master of Science degree under the guidance of a faculty advisor. May be repeated as necessary.
CS 9897: Graduate Teaching Instruction
Credits: 1–12
For doctoral students who are teaching assistants.
CS 9999: Dissertation
Credits: 1–12
Formal record of student commitment to doctoral research under the guidance of a faculty advisor. May be repeated as necessary.

ACM Fellow 1999

IEEE Fellow 2012

Ken Kennedy Award 2012

Anita Borg Technical Leadership Award 2011

Nico Habermann Award 2006

IEEE TCSE Software Engineering Women in science and Engineering Leadership Award 2015

ACM SIGSOFT Influential Educator Award 2014

Girl Scout Woman of Distinction 2003

ACM SIGPLAN Distinguished Service Award 2010

ACM SIGSOFT Distinguished Service Award 2012

Top 25 Software Engineer Scholars in World, July, ACM CACM 2007

Most Influential papers of 20 years in ACM/SIGPLAN Programming Languages Design and Implementation (PLDI), “Complete Removal of Redundant Expressions,” (co-authored with R. Bodik and R. Gupta) 2003