I work in the areas of Programming Languages (PL) and Formal Methods (FM). My research is driven by the curiousity to apply PL and FM way of thinking to solve hard problems in other domains of Computer Science, such as Distributed Systems, Databases, Security, and Artificial Intelligence. In my current research, I am exploring how secure and scalable distributed applications can be built with least amount of programming effort.
CSCI 3155 - Principles of Programming Languages
Primary Instructor
-
Spring 2021 / Spring 2022 / Fall 2023
Studies principles governing the design and analysis of programming languages and their underlying execution models. Explores values, scoping, recursion, higher-order functions, type systems, control structures, and objects. Introduces formal semantics as a framework for understanding programming features. Introduces advanced programming concepts such as functional programming, higher-order functions, immutable values and structures, inductive types, functors, continuation-passing; and object-oriented programming using inheritance, generics and covariance/contravariance in a functional programming language such as Scala. Same as CSPB 3155.
CSCI 4950 - Senior Thesis
Primary Instructor
-
Fall 2022 / Spring 2023
Provides an opportunity for senior computer science majors to conduct exploratory research in computer science as an option for the capstone requirement. Department enforced prerequisites: 35 hours of Computer Science coursework including Foundation courses, Upper-Division writing, CS GPA 3.0. Department consent required, contact academic advisor for details. May be repeated up to 8 total credit hours.
CSCI 5535 - Fundamental Concepts of Programming Languages
Primary Instructor
-
Fall 2021 / Fall 2024
Considers concepts common to a variety of programming languages--how they are described (both formally and informally) and how they are implemented. Provides a firm basis for comprehending new languages and gives insight into the relationship between languages and machines. Recommended prerequisite: CSCI 3155 or instructor consent required. Same as ECEN 5533.
CSCI 7000 - Current Topics in Computer Science
Primary Instructor
-
Spring 2021 / Spring 2023 / Spring 2024
Covers research topics of current interest in computer science that do not fall into a standard subarea. May be repeated up to 18 total credit hours.
ECEN 5533 - Fundamental Concepts of Programming Languages
Primary Instructor
-
Fall 2021 / Fall 2024
Considers concepts common to a variety of programming languages--how they are described (both formally and informally) and how they are implemented. Provides a firm basis for comprehending new languages and gives insight into the relationship between languages and machines. Same as CSCI 5535.