The complexity in Modern software systems is due to scale, growth of features and facilities required by users, dynamic changes and sustainability of software and software development itself. Programming paradigms, operating systems, environments, and architectural know-how need to continuously evolve for this purpose.


  Rushikesh K. Joshi, Ph.D. (IIT Madras)
   Department of Computer Science & Engineering
   Indian Institute of Technology Bombay
   Powai, Mumbai-400076, India

   Ph:+91-22-25767730,  Email:

With IIT Bombay since 1997.

Software Architecture, Programming Paradigms,
Design and Descriptions,
Conceptualization and Ontology

Research Areas

Hi! Broadly, I work towards bringing simplicity and clarity in the way we do programming and software engineering esp. software architecture, design and representation including implementation. Modern systems have much more complexity given the complex interplay and scale of functional and non-functional properties, wide span of technology landscape and the know-how, and the dynamic nature of applications and application development. In this context, enabling paradigms to match the complexity from the perspectives of conceptualization, development and the after-effects has a major role to play. Much of my work is related to this broad theme.

Software Architecture: Conceptualization, Modeling and Specifications Measurement of Design Quality,  Design Improvement,  Object oriented Refactoring, Programming Abstractions, Paradigms and their Formulations (the object oriented family), Workflows and Processes, Ontology, Architectural Meta-modeling. Theories to model phenomena and structures in software : Type systems, Process Calculi, Concept Lattices, Language Calculi, Specification Languages. Computational Aspects: Genericity, Polymorphism, Concurrency and Distribution, Non-determinism, Structural complexity, Reuse, Separation of concerns, Traceability, Interactions, Modularity, Evolution

Full list of publications

Publications classified into areas



A collection of course talks

CS 718  Software Architecture 2014, 2013 2012, 2010, 2009     
CS 451 Distributed Systems   
2002, 2003  
CS 617,
CS 686
Object Oriented Systems recorded-available from cdeep 2008 2007 2006 2005  2004  2003 2002  2001  2000  1999  1998
CS 101 Introduction to Computer Programming and Utilization
CS 329 Principles of Programming Languages  2005, 2006, 2007, 2008 
CS 389 Programming Languages Laboratory  2005, 2006, 2007, 2008

Summer course on Practice of Programming in Java for IIT Bombay residents 2006, 2008
CS 347 Operating Systems  1998, 1999, 2000, 2001, 2003, 2004
CS 495  Operating Systems Laboratory   1998, 1999, 2000, 2001, 2003, 2004    
CS 347 M  Operating Systems for CS Minor 2010, 2011, 2012
CS 152
Abstractions and Paradigms for Programming

  Software available for download (Several students have worked on them)

 ARC Linux   ARC .NET C# 
Ox    AccessViz   
 Concept Store 
 CORBA First Class Filters   Aspect Java Distributed

Articles for Students

Seminar Mantras

Programming Mantras

Presentation Mantras

 Arts: Sitar, Harmonium, Keyboard, Flute, Photography, Poetry, Cooking, Travel, and of course discussing over a cup of Tea!