
Hridesh Rajan, PhD, is the Kingland Professor and Chair 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 elevated to AAAS fellow in 2020. 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. He served as an associate editor for the 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 served as the general chair of SPLASH 2020, the ACM SIGPLAN conference on Systems, Programming, Languages, and Applications: Software for Humanity.
Short bio (for talks, etc.)
Hridesh Rajan is the Kingland Professor and 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 AAAS Fellow, US-UK Fulbright scholar, distinguished member of the ACM, and serves as an associate editor for the IEEE Transactions on Software Engineering.
Select Recent Publications
- Rangeet Pan and Hridesh Rajan, "On Decomposing a Deep Neural Network into Modules," ESEC/FSE’2020: The 28th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, November 2020. [ACM SIGSOFT Distinguished Paper Award]
- Sumon Biswas and Hridesh Rajan, "Do the Machine Learning Models on a Crowd Sourced Platform Exhibit Bias? An Empirical Study on Model Fairness," ESEC/FSE’2020: The 28th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Nov. 2020).
- Md Johirul Islam, Rangeet Pan, Giang Nguyen, and Hridesh Rajan, "Repairing Deep Neural Networks: Fix Patterns and Challenges," ICSE’20: The 42nd International Conference on Software Engineering, May, 2020.
- Ramanathan Ramu, Ganesha Upadhyaya, Hoan Nguyen, and Hridesh Rajan, "BCFA: Bespoke Control Flow Analysis for CFA at Scale," ICSE’20: The 42nd International Conference on Software Engineering, May, 2020.
- Md Johirul Islam, Giang Nguyen, Rangeet Pan, and Hridesh Rajan, "A Comprehensive Study on Deep Learning Bug Characteristics," ESEC/FSE’19: The ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), Tallinn, Estonia, August 26-30, 2019.
- Hamid Bagheri, Usha Muppirala, Andrew J Severin, Hridesh Rajan, "Shared Data Science Infrastructure for Genomics Data," BMC Bioinformatics 20, Article number: 436 (2019).
- Md Johirul Islam, Anuj Sharma, Hridesh Rajan, "A Cyberinfrastructure for BigData Transportation Engineering," Journal of Big Data Analytics in Transportation, June 2019, Volume 1, Issue 1, pp 83–94.
- Jackson Maddox, Yuheng Long, and Hridesh Rajan, "Large-scale Study of Substitutability in the Presence of Effects," ESEC/FSE’18: The ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), Orlando, Florida, November 4-9, 2018.
- Ganesha Upadhyaya and Hridesh Rajan, "Collective Program Analysis," ICSE'18: The 40th International Conference on Software Engineering, Gothenberg, Sweden, May 27-June 3, 2018.
- Tianyi Zhang, Ganesha Upadhyaya, Anastasia Reinhardt, Hridesh Rajan and Miryung Kim, "Are Code Examples on an Online Q&A Forum Reliable? A Study of API Misuse on Stack Overflow," ICSE'18: The 40th International Conference on Software Engineering, Gothenberg, Sweden, May 27-June 3, 2018.
- Samantha Syeda Khairunnesa, Hoan Anh Nguyen, Tien N. Nguyen, and Hridesh Rajan, "Exploiting Implicit Beliefs to Resolve Sparse Usage Problem in Usage-based Specification Mining," OOPSLA’17: The ACM SIGPLAN conference on Object-Oriented Programming, Systems, Languages, and Applications, October, 2017.
- Hridesh Rajan, " Bridging the Digital Divide in Data Science," SPLASH-I: The ACM SIGPLAN conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH), October, 2017.
- Ganesha Upadhyaya and Hridesh Rajan, "On Accelerating Ultra-Large-Scale Mining," ICSE'17: The 39th International Conference on Software Engineering: NIER Track, Buenos Aires, Argentina, May 2017.
- Yuheng Long, Yu David Liu, and Hridesh Rajan, " First-Class Effect Reflection for Effect-Guided Programming," OOPSLA'16: The ACM SIGPLAN conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH), Amsterdam, the Netherlands, October 2016.
- Yuheng Long, Yu David Liu, and Hridesh Rajan, "Intensional Effect Polymorphism," ECOOP'15: The 29th European Conference on Object-oriented Programming, July 2015.
- Hridesh Rajan, "Capsule-oriented Programming," ICSE’15: The 37th International Conference on Software Engineering: NIER Track, May 2015.
- Hridesh Rajan, Tien N. Nguyen, Gary T. Leavens, and Robert Dyer, "Inferring Behavioral Specifications from Large-scale Repositories by Leveraging Collective Intelligence," ICSE’15: The 37th International Conference on Software Engineering: NIER Track, May 2015.
- Ganesha Upadhyaya and Hridesh Rajan, "Effectively Mapping Linguistic Abstractions for Message-passing Concurrency to Threads on the Java Virtual Machine," OOPSLA’15: The ACM SIGPLAN conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH), October 2015.
- Robert Dyer, Hoan Anh Nguyen, Hridesh Rajan, and Tien N. Nguyen, "Boa: Ultra-Large-Scale Software Repository and Source-Code Mining," ACM Trans. Softw. Eng. Methodol., December 2015.
- more...
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.
- US National Science Foundation, CI-EN: Boa: Enhancing Infrastructure for Studying Software and its Evolution at a Large Scale. PI: Hridesh Rajan and Co-I: Tien Nguyen, Robert Dyer (2015-2020), Links: ISU, and BGSU.
- US National Science Foundation, EAGER: Boa: A Community Research Infrastructure for Mining Software Repositories. PI: Hridesh Rajan and Co-I: Tien Nguyen (2013-2015).
Following research papers document progress on this project:
- [ESEC/FSE'18], [ICSE'18 (1)], [ICSE'18 (2)], [ICSE'17 (NIER)], [MSR'17], [ICSE'14], [ICSE'13], [ASE'13], [GPCE'13]
- 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: ISU, BGSU, UCF, and PSU.
Following research papers document progress on this project:
- [OOPSLA'17], [ICSE'17 (NIER)], [ICSE'15 (NIER)], [FSE'14],
- 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.
- US National Science Foundation, SHF:Small: Capsule-oriented Programming. PI: Hridesh Rajan (2014-2018), Award amount: $450,098.
- US National Science Foundation, CAREER:On Mutualism of Modularity and Concurrency Goals. PI: Hridesh Rajan (2009-2015), Award amount: $565,935.
- US National Science Foundation, SHF:Small:Phase-Based Tuning for Better Utilization of Performance-Asymmetric Multicores. PI: Hridesh Rajan (2011-2015), Award amount: $416,000.
Following research papers document progress on this project:
- [OOPSLA'15], [ICSE'15 (NIER)], [Modularity'15], [ECOOP'15], [AGERE'14], [Onward!'10], [GPCE'10], [FoSER'10]
We have created two software systems that support this programming model so far:
- 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.
- US National Science Foundation, SHF:Small:Balancing Expressiveness and Modular Reasoning for Aspect-oriented Programming. PI: Hridesh Rajan (2010 - 2013).
Following research papers document progress on this project:
- [Modularity'15], [Modularity'13], [TAOSD'13], [AOSD'12], [FOAL'12], [AOSD'11], [FOAL'10], [TOSEM'09], [ECOOP'08], [IEEE Software'06], [ESEC/FSE'05]
- 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 & Science, Iowa 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
- Md. Johirul Islam (PhD Summer'20, MS Fall'19), Lowes R&D
- Ganesha Upadhyaya (PhD Fall'17, MS Spring'15), Huawei R&D
- Mehdi Bagherzadeh (PhD Summer'16, MS Fall'10), Assistant Professor at Oakland University
- Yuheng Long (PhD Spring'16, MS Spring'10), Google
- Robert Dyer (PhD Fall'13, MS Fall'08), Assistant Professor at the University of Nebraska, Lincoln
- Tyler Sondag (PhD Fall'11, MS Fall'09), Intel R&D
- Samantha Khairunnessa (MS Fall'17), ISU Ph.D. Program
- Ramanathan Ramu (MS Fall'17), Microsoft
- Nitin M. Tiwari (MS Spring'17), SAP
- Sean L. Mooney (MS Summer'15), SourceAllies
- Harish Narayanappa (MS Spring'10), eBay
- Jaikishan Jalan (MS Fall'09), Squad
- Youssef W. Hanna (MS Fall'08), Google
- Rakesh Setty (MS Fall'08), eBay
- Mahantesh Hosamani (MS Fall'07), Ericsson
Recent Professional Services
- Editorships:
- Associate Editor, IEEE Transactions on Software Engineering
- Organizing Committee:
- General Chair, 2020 ACM SIGPLAN conference on Systems, Programming, Languages, and Applications: Software for Humanity
- General Co-chair, 2019 Midwest Big Data Summer School (also in 2018, 2017, and 2016)
- Workshops on Virtual Machines and Intermediate Languages (VMIL 2007-2018): Founder and Co-organizer
- Doctoral Symposium Chair, ESEC/FSE 2018 - the ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering
- Doctoral Symposium Chair, SPLASH/OOPSLA 2012 - the international Conference on Systems, Programming, Languages and Applications: Software for Humanity
- 8th International Conference on Aspect-Oriented Software Development (AOSD 2009): Student Volunteer Co-chair
- Program Committee:
- PC or ERC Member, MODULARITY: the International Conference on Modularity (in 2016, 2015, 2014, 2013, 2011, 2010, and 2009)
- PC Member, GPCE - the International Conference on Generative Programming Concepts & Experiences (in 2015, 2014, and 2010.)
- PC Member, SPLASH/OOPSLA 2013 - the international Conference on Systems, Programming, Languages and Applications: Software for Humanity
- ERC Member, SPLASH/OOPSLA 2012 - the international Conference on Systems, Programming, Languages and Applications: Software for Humanity
- PC Chair, FOAL 2011 - the Foundations of Aspect-oriented Languages workshop
- PC Member, ICSE 2010 - the 32nd International Conference on Software Engineering (research demonstrations track)
- PC Member, Onward! 2010 - the 2010 Onward! Conference on the new ideas, new paradigms track at OOPSLA 2010
- PC Member, OOPSLA 2009 - the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications
- PC Member, ACP4IS 2008, 2009, and 2010 - the Workshop on Aspects, Components, and Patterns for Infrastructure Software
- PC Member, FOAL 2006, 2008, 2010, 2012, 2014, 2015 - the Foundations of Aspect-Oriented Languages workshop