Department of Computer Science

Laboratory for Software Design

The research and educational activities described on these pages has been supported in part by the US National Science Foundation (NSF) under grants CNS-15-13263, CCF-14-23370, CCF-13-49153, CCF-11-17937, CCF-10-17334, CNS-07-09217, CNS-06-27354, and a CAREER award 08-46059.

Got a question?

Got a question or comment? Contact us at (515) 294-6168 or


  • We are looking for PhD students and Postdoctoral fellows to join the Panini and the Boa project. Send resume to Dr. Hridesh Rajan. Both projects have global user base.
  • Boa project receives a new NSF grant to further enhance Boa's capabilities to help with studies related to software and its evolution at a large scale.
  • Panini project receives a new NSF grant to further develop capsule-oriented programming.
  • User accounts for Boa demonstrated at ICSE 2014 and ICSE 2013 can be requested here.
  • We just released 0.9.3 version of Panini language with new features and better analyses for concurrency correctness. See


The laboratory for software design at Iowa State University conducts research in programming languages, compilers and software engineering. Our overarching goal is to develop tools and techniques that enable better design of software intensive systems: a better design that is easier and cheaper to implement, verify and sustain and that is more portable across computing platform differences.

Our two leading projects are Panini that is a capsule-oriented programming language designed to simplify concurrent programming, and Boa that is a domain-specific language and an infrastructure for mining software repositories.

Our research meetings are in 216 Atanasoff Hall on Wednesdays from 2-5:30pm.


Hridesh Rajan [Director]   Steven M. Kautz [Faculty]
Hoan A. Nguyen [Postdoctoral Fellow]    
Yuheng Long [PhD]   Mehdi Bagherzadeh [PhD]
Ganesha Upadhayaya [PhD]   Youssef Hanna [PhD]
Eric Lin [MS]   Nitin M Tiwari [PhD]
Samantha S Khairunnesa [PhD]   Swarn Priya [MS]
Ramanathan Ramu [MS]   Aashish M Dhakal [PhD]
Hamid Bagheri [PhD]   Brennyn Hawbaker [Undergraduate]
Cody Hanika [Undergraduate]   David Johnston [BS + MS]
Dalton D Mills [BS + MS]   Sambhav P. Srirama [Undergraduate]


Robert Dyer (PhD Fall'13, MS Fall'08)   Tyler Sondag (PhD Fall'11, MS Fall'09)
Youssef W. Hanna (MS Fall'08)   Harish Narayanappa (MS Spring'10)
Rakesh Setty (MS Fall'08)   Mahantesh Hosamani (MS Fall'07)
Rex Fernando (B.S. Spring'13)   Eric Lin (B.S. Fall'12)
Bryan Shrader (B.S. Spring'14)   Shang Liu (B.S. Spring'15)
Sean L. Mooney (MS Summer'15)    

Research and Educational Projects

Other Projects

  • VMIL: Workshop on Virtual Machines and Intermediate Languages, usually colocated with OOPSLA.

Relevant Courses

  • Com S 342: Principles of Programming Languages (undergraduate course) Each Fall and Spring
  • Com S 541/441: Programming Languages Fall 2015
  • Com S 610: Advanced Topics in Programming Languages & Software Engineering Spring 2015
  • Com S 610-HR: Advanced Topics in Program Analysis (Offered in Fall 2008)
  • Com S 641: Semantic Models of Programming Languages (graduate course)
  • Com S 362: Object-oriented Analysis and Design (undergraduate course)