Stephen     F.     Siegel

Stephen
	      Siegel photoI am an associate professor in the Department of Computer and Information Sciences at the University of Delaware. I also hold a joint appointment in the Department of Mathematical Sciences.

My current research interests include (1) formal methods for software verification, (2) parallel and scientific computing, and (3) applications of (1) to (2). As a recovering mathematician (having worked in the cohomology and representation theory of finite groups), I am always looking for new applications of mathematics and logic to problems in computer science.

I direct the Verified Software Laboratory, which conducts research and develops tools targeting the problems above. CIVL, a verifier for parallel scientific/HPC programs, is our flagship product. Our software, publications, and experimental artifacts are all available on the VSL web page.

Coordinates
address:
Department of Computer & Information Sciences
University of Delaware
101 Smith Hall
Newark, DE 19716
office: Smith 432
office-hours: by Zoom, see calendar below
(email me for Zoom link)
email: siegel@udel.edu
phone: 302 831 0083 (I don't check the messages)
fax: 302 831 8458
Highlights
  • Fall 2021: I am currently teaching CISC 404/604: Logic in Computer Science
  • I taught a new course on Model Checking in Spring 2021. CISC 849.012: Advanced Topics in Computer Applications.
  • Paper on Action-Based Model Checking: Logic, Automata, and Reduction, by S.F. Siegel and Y. Yan, to appear at CAV 2020.
  • PhD student Ziqing Luo successfully defended his dissertation, Contracts for Message Passing Programs, on Jan. 13, 2020. He has accepted a position at Micro Focus.
  • Paper What's Wrong with On-the-fly Partial Order Reduction, by S.F. Siegel, presented at CAV 2019.
  • Graduate student Yihao Yan completed his M.S. in Computer Science and has accepted a position as Software Engineer at Google!
Service
  • PC, Spin 2021
  • PC, Correctness 2020
  • Associate Editor, IEEE Transactions on Software Engineering, 2015–2019
  • PC, TACAS 2018
  • PC, Correctness 2018
  • PC, Technical Program, SC16
  • ERC, PLDI 2014
  • ERC, PPoPP 2014
  • PC, NFM 2013
  • PC, EuroMPI 2012
  • PC, BOOGIE 2012
  • PC, NSV-2011
  • Organizing Committee, (EC)2, 2008–2012
  • PC, Technical Program, systems area, SC10
  • PC, Tutorials Program, SC09
  • PC, EuroPVM/MPI 2009, EuroMPI 2010
Teaching

I teach the following courses (semi-)regularly:
  • CISC 404/604, Logic in Computer Science
  • CISC 372, Parallel Computing. MPI, OpenMP, Pthreads, CUDA, fundamental concepts of concurrency for both message-passing and shared-memory models. Learn more about the course here.
  • CISC 414/614, Formal Methods in Software Engineering. This class gives an overview of formal methods, with emphasis on practical applications of tools such as Alloy, Spin, and Frama-C.
  • CISC 475/675, Advanced Software Engineering/Software Engineering Principles and Practices. This is a project-based course, going through all stages of the software lifecycle, including requirements engineering, design, coding, testing and verification.
  • CISC 849/879, advanced topics. Topics have included Advanced Topics in Software Verification, Abstract Interpretation, Advanced Parallel Computing, and Model Checking.
  • CISC 366/466, Independent Study. For undergraduate students who want to take part in the research of the VSL. Contact me if you are interested.