Colin S. Gordon

Associate Professor, Department of Computer Science, Drexel University

Room 1174

3675 Market Street

Philadelphia, PA 19104

I am an Associate Professor in the Computer Science Department of Drexel University's College of Computing and Informatics. I am interested in finding new ways to improve software reliability, especially providing strong static guarantees about program behavior, for concurrent and systems-level code. My work has focused on formal verification of concurrent programs using static reference capabilities and effect systems, though I'm also interested in other levels of formal assurance, programming models, distributed computing, and even testing. Right now I'm working on theory and application of type systems for JavaScript, polymorphic effect systems, verification for operating systems kernels, and tools to connect natural language to machine language (code and formal specifications). See my publications page for more details.

If you are interested in working with my on research, please see my advice for prospective students page, which describes how what I look for in PhD students, as well as how undergraduate or MS students already at Drexel can get involved in research with me.

Previously I've been a Senior Research Engineer at Samsung Research, a PhD student at the University of Washington, a software developer in Microsoft's Midori operating system kernel group (later doing compiler work with the team), and much longer ago an undergraduate at Brown University, an intern in the Solaris Kernel Group at Sun Microsystems, and an intern in one of the filesystem groups at NetApp.


Dec 31, 2021 “Towards Property-Based Tests in Natural Language” will appear at ICSE NIER 2022
May 23, 2021 I’ll be on the PC for PLDI 2022
Feb 5, 2021 “Polymorphic Iterable Sequential Effect Systems” will appear in ACM TOPLAS

selected publications

    Gordon, Colin S.
    ACM Transactions on Programming Languages and Systems (TOPLAS), 43(1) 2021
  2. ESOP
    Kuru, Ismail, and Gordon, Colin S.
    In European Symposium on Programming (ESOP 2019) 2019