Kevin Sullivan headshot
KS

Kevin J. Sullivan

Associate Professor
Unit: School of Engineering and Applied Science
Department: Department of Computer Science
Office location and address
Rice 508
85 Engineers Way
Charlottesville, Virginia 22903
Education
B.S. ​Tufts University, 1987
M.S. ​University of Washington, 1990
Ph.D. ​University of Washington, 1994
Biography

Kevin Sullivan obtained his background in computer science from Tufts University (1987), working most closely with David Krumme, and in graduate school at the University of Washington, working with David Notkin (MS, 1994, PhD, 1994).

Kevin's graduate work set him to thinking about the evolvability, and actual evolution, of software as its most important sources of value, but as a property that is also astonishing hard to achieve and maintain in a medium that is understood by its very name to be "soft."

Kevin joined UVa as Assistant Professor of Computer Science in 1994 and has worked at UVa since then. He has worked in areas including software evolvability (including notions of the options value of modularity in design and how to reconcile the modularity-breaking potential of aspect-oriented programming with the need for abstraction and information hiding modularity to preserve evolvability properties); in value-based software engineering (seeking to better understand how to link software design to broader economic objectives, rather than from merely technical notions of design excellence), and on formal methods for software and systems assurance (including modest recently his work with John Knight and Jian Xiang on rela-world types and interpreted formalisms).

One of Kevin's current areas of work is in the establishment of a discipline of cyber-social learning systems, drawing together knowledge from a diversity of areas to inform the design of 21st century service systems: in healthcare, education, defense, and many other sectors of society.

SHF: Small: Explicating and Exploiting the Physical Semantics of Code
Source: U.S. National Science Foundation (NSF)
October 01, 2019 – September 30, 2022
System Qualities (SQs) Tradespace and Affordability18-19
Source: Stevens Institute of Technology
August 24, 2018 – August 23, 2019
System Qualities (SQs) Tradespace and Affordability
Source: Stevens Institute of Technology
June 22, 2017 – June 21, 2018
EN-CS Collaborative Research: Foundations for a Computational Science of System Utilities and Trades
Source: U.S. NSF - Directorate For Engineering
August 01, 2014 – July 31, 2017
EN-SE-System Qualities (SQs) Tradespace and Affordability
Source: Stevens Institute of Technology
April 29, 2016 – April 28, 2017
EN-CS Growing the Science of Security through Analytics
Source: North Carolina State University
March 28, 2014 – March 27, 2017
EN-CS RT137 - Iities Tradespace and Affordability Program Phases 4 and 5
Source: Stevens Institute of Technology
December 19, 2014 – December 18, 2015
EN-CS-Foundations of Systems Engineering: Seedling Project
Source: Stevens Institute of Technology
February 24, 2015 – July 30, 2015
EN-CS Phase III - Ilities Tradespace and Affordability Program
Source: Stevens Institute of Technology
January 01, 2014 – December 31, 2014
IIities Tradespac and Afordeability Program
Source: Stevens Institute of Technology
December 10, 2012 – December 31, 2013
CS 2102: Discrete Mathematics
Credits: 3
Introduces discrete mathematics and proof techniques involving first order predicate logic and induction. Application areas include finite and infinite sets, elementary combinatorial problems, and graph theory. Development of tools and mechanisms for reasoning about discrete problems. Prerequisite: CS 1110, 1111, 1112 or 1120 with a grade of C- or higher.
CS 4501: Special Topics in Computer Science
Credits: 1–3
Content varies annually, depending on instructor interests and the needs of the department. Similar to CS 5501 and CS 7501, but taught strictly at the undergraduate level. Prerequisite: Instructor permission; additional specific requirements vary with topics.
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 with a grade of C- or higher
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 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 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 8524: Topics in Software Engineering
Credits: 1–3
A special topics course in software engineering. Topics are determined by the individual instructor, but might include software reliability; engineering real-time systems; managing large software projects; resource estimation; validation and verification; or advanced programming environments. Prerequisite: CS 6240 or instructor permission.
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.