Dr. Sankaranarayanan is primarily interested in formal verification techniques, especially for hybrid cyber-physical systems (CPS) which model discrete programs interacting with a continuous environment. In this regard, his work explores the application of techniques from areas such as convex optimization, algebraic geometric methods, combinatorial optimization, symbolic and numerical decision procedures to analyze the behavior of programs and verify key temporal properties such as safety, termination, liveness and stability. His recent work applies Monte-Carlo sampling, rare-event simulations and extreme value theory to develop novel verification techniques for cyber-physical systems is ongoing. Finally, his group is actively extending the scope of verification from verifying the software systems to verifying systems with human operators in the loop using cognitive science techniques to understand and model the behavior of human operators.
CSCI 3155 - Principles of Programming Languages
Fall 2018 / Spring 2019 / Spring 2020
Studies fundamental concepts on which programming of languages are based, and execution models supporting them. Explores values, variables, bindings, type systems, control structures, exceptions, concurrency, and modularity. Learn how to select a language and to adapt to a new language. Same as CSPB 3155.
CSCI 5454 - Design and Analysis of Algorithms
Fall 2018 / Spring 2019
Techniques for algorithm design, analysis of correctness and efficiency; divide and conquer, dynamic programming, probabilistic methods, advanced data structures, graph algorithms, etc. Lower bounds, NP-completeness, intractability. Recommended prerequisite: CSCI 2270 or equivalent.
CSCI 7135 - Topics in Programming Languages
Topics selected by instructor. Possible topics are syntax, semantics, metacompilers, compiler design, and translator writing systems. Department consent required.