Associate Professor Ilya Sergey joined Yale-NUS College in November 2018, holding a joint appointment with NUS School of Computing.
From November 2015 till October 2018, he was a faculty member at the Department of Computer Science of University College London (UCL). Prior to joining UCL, from December 2012 to October 2015, he was a postdoc at IMDEA Software Institute (Madrid, Spain). From November 2008 to November 2012, he was a research assistant in the Computer Science Department of KU Leuven (Belgium), where he obtained his PhD. He got his MSc degree in Mathematics and Computer Science in 2008 from the Department of Mathematics and Mechanics of Saint Petersburg State University. Before joining academia, he worked as a software developer at JetBrains.
Assoc Prof Ilya Sergey does research in programming language theory, including, but not limited to types, semantics, software verification, and program synthesis. His particular areas of interest include:
Gopinathan K., Sergey I., “Certifying Certainty and Uncertainty in Approximate Membership Query Structures”, CAV’20: 32nd International Conference on Computer-Aided Verification.
Sergey I., Nagaraj V., Johannsen J., Kumar A., Trunov A., Chan Guan Hao K. “Safer Smart Contract Programming with Scilla”, OOPSLA’19: 34th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications. October 2019.
Polikarpova N., Sergey I., “Structuring the Synthesis of Heap-Manipulating Programs”, POPL’19: 46th ACM SIGPLAN Symposium on Principles of Programming Languages, January 2019.
Gorogiannis N., O’Hearn P.W., Sergey I., “A True Positives Theorem for a Static Race Detector”, POPL’19: 46th ACM SIGPLAN Symposium on Principles of Programming Languages, January 2019.
Sergey I., Wilcox J., Tatlock Z., “Programming and Proving with Distributed Protocols”, POPL’18: 45th ACM SIGPLAN Symposium on Principles of Programming Languages, January 2018.
Introductory Data Structures and Algorithms
Programming Language Design and Implementation
Parallel, Concurrent and Distributed Programming