Software Development Education: Two Experimental Courses for Interdisciplinary Integration with Selected Elements of Human Sciences

Posted on April 11, 2011


Author:  Sanjay Goel,


Over the years, disciplines have evolved such that they have been separated not only in terms of underlying factual, conceptual, and procedural knowledge, in theoretical as well as empirical space, but also in terms of research questions, perspectives, meta-cognition, and methodologies [1]. In modern times, most of the interesting developments are taking place at the edges of the disciplines. The disciplines are getting integrated not only in terms of content but also perspectives and methodologies [2].

A trans-disciplinary approach is required for solving most large real-life problems. Hence, the integration of seemingly disconnected disciplines of human knowledge offers very exciting learning opportunities. Here I elaborate upon the experiences in designing and delivering two courses at JIIT, in which I tried to contextualize and integrate computing with selected elements of human sciences. These human science concepts were carefully chosen based on their relevance and importance for enhancing some core competencies.

1. Theory of Knowledge, Learning, and Research (TKLR):
Armour [3] [4] viewed software development as a learning activity rather than a production activity, and advocated that software developers need more training in learning, and knowledge structuring mechanisms, rather than in software itself. The course of ‘Theory of knowledge, learning, and research (TKLR)’ attempted to address this requirement.  It was started in 2005 as elective. Till 2007, it was called ‘Learning Scicnes (LS).‘  During  2005 – 2009, more than  200 undergraduate computing students registered in this course.  
The students were exposed to a spectrum of theories related to human learning and thinking [5]. All these theories were also used for reflecting about learning in general, and also with specific reference to software development. It enhanced the understanding of their own learning process, and also helped them identify their misconception about learning.

These theories and models helped sharpen students’ questioning skill, critical thinking, and reflective thinking. It helpsed the students to become better learners. Understanding of the diversity of learning styles also prepared them with enhanced ability of self-regulation, ability to accommodate themselves to others and also made them better prepared for understanding of domains’ thinking processes. They got motivated to view software development as a learning and critical thinking activity.  

Some students even suggested that it should made a compulsory course for all students.   Many suggested that if it was offered to them in their earlier semesters, it would have helped them to increase the quality and value of their learning in all courses.

2. Human Aspects for Information Technology (HAIT):
Another multi-disciplinary integrative course was ‘human aspects for information technology.’ It aimed to explore the humanistic grounds for information technology and software development. It was started in 2007 as elective as ‘Human Aspects of Software Engineering (HASE).’  In 2008,  it was  renamed.  During  2007 – 2009, more than  100 undergraduate computing students registered in this course.  

Students analyzed the required competencies for specific activities of software development. The students evaluated the information technology, and also the activity of software development with respect to multi-dimensional aspects of social welfare and professional decision making.

Various activities of this course helped the students to understand the meaning and importance of professional responsibility. They were engaged in collecting and analyzing professional dilemmas of practicing software developers in the light of theories of moral reasoning and human development [6]. They learnt about technological disasters and failures of software systems. Various codes of professional ethics for engineers were also analyzed in this course.

All these experiences helped the students to understand the meaning and importance of professional responsibility. In this backdrop, the models of critical thinking were used for analyzing the ethical issues with respect to ongoing developments in information technology.

Finally, a module on creative thinking and inventive problem solving was integrated with this background. Selected models of creative thinking and inventive problem solving are used for designing ethically sensitive technological solutions and services.

Further, there is strong tradition of formally teaching ‘Research Methodology’ in many non engineering disciplines. Such content is not usually offered in engineering disciplines. However, some programs of information systems offer such courses. The research in the field of software development combines the research methods of engineering as well as social sciences [2]. In this course, various qualitative as well as quantitative research methods were discussed with the help of illustrative examples from the published research literature in software development. It also helped in enhancing the critical and integrative thinking, analytical skills, and also self-learning.


The initiation of each of thease two courses  at JIIT was stimulated by the suggestions from  two different students,  Aditya Kumar Singh (2006 graduate) for TKLR (started as LS) and Neha Saini (2007 graduate) for HAIT (started as  HASE).   Both the  elective courses were discontinued in 2010 primarily because of lack of sufficient interest by the new student community at JIIT.  




[2]  Research approaches in Software Engineering: Integrating the ‘Two Cultures’

[3]  Philip G. Armour, The case for a new Business Model: Is software a product or a medium, Communications of ACM, USA, August, Vol. 43 No.8, pp 19-22, 2000. 

[4]   Philip G. Armour , The Five orders of Ignorance: Viewing software development as knowledge acquisition and ignorance reduction, Communications of ACM, USA, Vol. 43 No.10, pp 19-20, October 2000.

[5]  Theories that can help teachers/trainers/e-learning designers to think like educators, help students to improve their learning ability, and also help Software Developers in developing domain competence and readiness




Posted in: Uncategorized