teaching

CS4720 Research in Program Analysis

This course provides a comprehensive introduction to the field of software analysis, a critical aspect of software development and maintenance. We will delve into both theoretical foundations and practical applications, learning how to analyze, understand, and improve software systems. This course explores a comprehensive set of techniques for software analysis, including practical formal methods, model checking, static and dynamic analysis, and other key approaches to evaluating and improving software systems. Through hands-on project, you will gain experience understanding and applying these techniques and presenting them using a scientific valid methodology.

CSE2520: Big Data Processing

Big Data Processing provides an introduction to systems used to process Big Data. The main focus of the course is understanding the underpinnings of, programming and engineering big data systems; initially, the course explores general programming primitives that span across big data systems and touches upon distributed systems. Then, the course examines in detail the implementation of data analysis algorithms in Spark, in the context of batch processing applications, and Flink, in the context of streaming applications.