Hridesh Rajan

Hridesh Rajan

Position
  • Interim Department Chair
  • Kingland Professor of Data Analytics
Hridesh Rajan, PhD, is the Kingland professor in the Department of Computer Science at Iowa State University, where he has been since August 2005. He served as the Professor-In-Charge of the Data Science program from 2017-Oct 2019. He has held visiting positions at the University of Bristol, Harvard University, and the University of Texas, Austin. He is also a professor in the software engineering program, information assurance program, and the human-computer interaction program at the university. Prof. Rajan earned his Ph.D. in Computer Science from the University of Virginia in August 2005. Since then he has been recognized by the US National Science Foundation (NSF) with a CAREER award in 2009, by the Iowa State University College of LAS with an Early Achievement in Research Award in 2010, a Big-12 Fellowship in 2012, a ACM Senior Membership in 2014, an exemplary mentor for Junior Faculty award in 2017, a Kingland Endowed Professorship in 2017, an ACM Distinguished Membership in 2017, and a US-UK Fulbright Scholarship in 2018. He was inducted into Sigma Xi in 2017, the Scientific Research Honor Society. Prof. Rajan specializes in data science, programming languages and software engineering. He is credited with giving the definitive treatment for how to modularly reason about crosscutting concerns, and for the design and implementation of the Boa infrastructure for large-scale analysis of open source software and its evolution. Prof. Rajan serves as the associate editor for the IEEE Transactions on Software Engineering and ACM SIGSOFT Software Engineering Notes. He has also served as the program chair, and on the program committees of several conferences and workshops, and as a referee for top journals in his area. He is serving as the general chair of SPLASH 2020, the ACM SIGPLAN conference on Systems, Programming, Languages, and Applications: Software for Humanity.

Contact Info

227 Atanasoff
2434 Osborn Dr.
Ames
,
IA
50011-1090
Social Media and Websites

Education

  • B.Tech, Computer Science & Engineering, IIT Varanasi, 2000
  • M.S., Computer Science, The University of Virginia, 2004
  • Ph.D., Computer Science, The University of Virginia, 2005

More Information

Short bio (for talks, etc.)


Hridesh Rajan is the Kingland professor and interim department chair in the Department of Computer Science at Iowa State University. Prof. Rajan's research interests are in programming languages, software engineering, and data science where he is most known for his design of the Ptolemy programming language that showed how to modularly reason about crosscutting concerns and the Boa programming language and its infrastructure that decreases the barriers to data-driven software engineering. He has been recognized by the US National Science Foundation (NSF) with a CAREER award, an Early Achievement in Research Award, a Big-12 Fellowship, the Kingland Professorship, and an exemplary mentor for Junior Faculty award. Prof. Rajan is a Fulbright scholar, distinguished member of the ACM, and serves as an associate editor for the IEEE Transactions on Software Engineering.

Select Recent Publications


Research Projects


My recent research has focussed on data science and concurrency. My overarching research program is aimed at improving programmer productivity, and correctness of software systems that they produce. In particular, I am interested in designing new programming abstractions that abstract away error-prone concerns, improve modularity, and improve modular reasoning. By abstracting away error-prone concerns, and having compilers and programming frameworks automatically provide adequate implementation of such concerns, my research aspires to reduce potential for errors in software, and improve productivity. By improving modularity and modular reasoning, my research strives for improved scalability in both manual and automatic reasoning as well as verification processes. My main research projects are:

  • Boa, a domain-specific language and its infrastructure whose goal is to significantly ease the experimental cost of mining ultra-large-scale open source repositories. Boa is a research infrastructure that consists of a domain-specific language, its compiler and data updating tools, terabytes (and growing) of raw data from open source repositories that contains hundreds of thousands of open source projects, a backend based on map-reduce to effectively analyze this dataset, a compute cluster, and a web-based frontend for writing analysis programs. Boa project has been supported in part by the following grants.

    Following research papers document progress on this project:

  • SpecGuru project that is developing techniques for inferring behavioral specifications that rely on both program analysis and data mining of data from open source repositories. SpecGuru project has been supported in part by the following grants.
    • US National Science Foundation, SHF: Large:Collaborative Research: Inferring Software Specifications from Open Source Repositories by Leveraging Data and Collective Community Expertise. PI: Hridesh Rajan and Co-I: Robert Dyer, Tien Nguyen, Gary T. Leavens, and Vasant Honavar (2015-2018), Links: ISUBGSUUCF, and PSU.

    Following research papers document progress on this project:

  • Panini project that is developing the capsule-oriented programming model. Capsule-oriented programming model is aimed at making concurrent software development easier by providing two properties: (1) given a module it ought to be possible to statically, and modularly identify all points in its code where other modules might interfere (interference points), and (2) given a module and the interfaces of other modules, that the subject module interacts with, it ought to be possible to statically and modularly construct an upper bound on the behavior of all potentially interferring tasks at each interference point. We show that if a programming model has these two properties, then it is possible to modularly reason about concurrent programs in that model. By the first property, humans and tools can identify points where interference from other concurrent tasks must be considered. By the second property, the computed upper bound can be used for reasoning instead of needing the implementation of interferring modules. Compared to alternatives, where reasoning either becomes a global process or entails a global step, modular reasoning afforded by this programming model makes both manual and automated reasoning about concurrent software more scalable. Panini project has been supported in part by the following grants.

    Following research papers document progress on this project:

    We have created two software systems that support this programming model so far:

    1. an extension of Java (and the reference compiler javac) that we call PaniniJ, and 
    2. an annotation-based framework that uses annotation processing facilities, instead of syntax extensions, that we call @PaniniJ.
  • Ptolemy, an event-based language whose goal is to enable more modular reasoning about advanced separation of concerns mechanisms such as implicit invocation and aspects. Ptolemy provides quantified-typed events that act as an interface between modules. A key benefit of quantified-typed events is that they allow programmers to write new kinds of contracts that we call translucid contracts, which enables modular reasoning about modules that announce events and those that listen to events. Ptolemy project has been supported in part by the following grant. 

    Following research papers document progress on this project:

  • more...

 

Teaching


  • Spring 2019: COMS 541, a graduate course on programming languages
  • Spring 2018: COMS 342, an undergraduate course on principles of programming languages 
  • Fall 2016: COMS 362, a course on object-oriented analysis and design 
  • Spring 2016: COMS 641, a course on design and semantics of data intensive languages and systems

 

Major Awards and Honors


  • 2009 Early CAREER Award, US National Science Foundation
  • 2010 Early Achievement in Research Award, College of Liberal Arts & ScienceIowa State University
  • 2012 Big-12 Fellowship
  • 2014 ACM Senior Member
  • 2016-17 Emerging Leaders Academy. See news here.
  • 2016 Kingland Professorship. See news here.
  • 2016-17 Exemplary Mentor of Junior Faculty, Iowa State University. See news here.
  • 2017 ACM Distinguished Member. See news here.
  • 2018 Fulbright US-UK Scholar. See news here.
  • 2020 Facebook Probability and Programming Award
  • 2020 ACM SIGSOFT Distinguished Paper Award at ESEC/FSE 2020

 

Former Graduate Students


 

Recent Professional Services