Design of Interventions for Instructional Reform in Software Development Education for Competency Enhancement
TABLE OF CONTENT
DECLARATION BY THE SCHOLAR
SUPERVISOR’S CERTIFICATE
ACKNOWLEDGEMENTS
ABSTRACT
LIST OF FIGURES
LIST OF TABLES
iv
vi
xiv
xvi
xviii
xix
CHAPTER-1
INTRODUCTION 1
1.1 BASIS FOR THE NEED FOR REFORMS IN COMPUTING 5
EDUCATION
1.2 EVOLUTION OF SOFTWARE DEVELOPMENT EDUCATION 9
1.3 RESEARCH APPROACH 28
1.4 THESIS LAYOUT 33
CHAPTER-2
IDENTIFICATION OF CORE COMPETENCIES FOR 35
SOFTWARE ENGINEERS
2.1 STUDY REPORT ON CORE COMPETENCIES FOR ENGINEERS 35
WITH SPECIFIC REFERENCE TO SOFTWARE ENGINEERING
2.2 NECESSARY COMPETENCIES AS EDUCATIONAL OUTCOMES 39
FOR SOFTWARE ENGINEERS AS RECOMMENDED BY
ACCREDITATION BOARDS, PROFESSIONAL SOCIETIES’
AND OTHER APPROACHES
2.2.1 IMPACT ON CURRICULUM AND FUTURE DIRECTIONS 40
2.2.2 INDIAN SCENARIO 41
2.3 SOME OTHER CONTEMPORARY RECOMMENDATIONS 42
ABOUT DESIRED COMPETENCIES OF ENGINEERING
GRADUATES
2.4 RECOMMENDATIONS OF SOME INTERNATIONAL 44
PROFESSIONAL SOCIETIES RELATED TO COMPUTING
2.5 SOME CONTEMPORARY RECOMMENDATIONS ON DESIRED 47
COMPETENCIES OF SOFTWARE DEVELOPERS
2.6 A PERSPECTIVE FROM THE PROFESSIONAL CODES OF 51
CONDUCT, ETHICS, AND/OR PRACTICE
vii
2.7 CLASSICAL AND CONTEMPORARY RECOMMENDATIONS 53
ON DESIRED COMPETENCIES OF GRADUATES
2.8 A COMPREHENSIVE DISTILLED VIEW ON DESIRED 56
COMPETENCIES
2.9 FURTHER EMPIRICAL INVESTIGATIONS ON REQUIRED 56
CORE COMPETENCIES FOR ENGINEERING GRADUATES
WITH REFERENCE TO THE INDIAN IT INDUSTRY
2.10 CLASSIFYING THE CORE COMPETENCIES FOR 58
SOFTWARE DEVELOPERS
2.11 CHAPTER CONCLUSION 61
CHAPTER-3
DISTINGUISHING FEATURES OF SOFTWARE 64
DEVELOPMENT AND REQUISITE TAXONOMY
OF CORE COMPETENCIES
3.1 PROGRAMMING AS AN ART TO SOFTWARE ENGINEERING 65
3.2 DEBUGGING AS A CORE ACTIVITY IN 67
SOFTWARE DEVELOPMENT
3.3 PROCESS CENTRIC SYSTEM DEVELOPMENT AND 68
MAINTENANCE IN SOFTWARE ENGINEERING
3.4 SOFTWARE AS INTEGRAL PART OF BUSINESS, AND
NEED FOR COMPREHENSION FOR SOFTWARE MAINTENANCE 68
3.5 ROLE OF EMPATHY AND SOCIAL SENSITIVITY IN 69
SOFTWARE DEVELOPMENT
3.6 PROJECT SCOPING AND ESTIMATION FOR SOFTWARE 71
CONTRACT
3.7 LEARNING NEW DOMAIN AND KNOWLEDGE STRUCTURING 71
IN SOFTWARE DEVELOPMENT
3.8 SOFTWARE DEVELOPMENT PROCESS FOR ILL-DEFINED 72
PROBLEMS
3.9 EMPIRICAL AND QUALITATIVE APPROACHES IN 74
SOFTWARE DEVELOPMENT RESEARCH
3.10 SOFTWARE DEVELOPMENT: WHOLE-BRAIN ACTIVITY 75
3.11 REVISED TAXONOMY OF CORE COMPETENCIES 76
FOR SOFTWARE DEVELOPERS
CHAPTER- 4
SOFTWARE DEVELOPERS’ EDUCATION FOR 82
DEVELOPMENT OF BASIC COMPETENCIES
4.1 SOFTWARE DEVELOPERS’ EDUCATION FOR 83
DEVELOPMENT OF TECHNICAL COMPETENCE
viii
4.2 SOFTWARE DEVELOPERS’ EDUCATION FOR 91
DEVELOPMENT OF COMPUTATIONAL THINKING
4.3 SOFTWARE DEVELOPERS’ EDUCATION FOR 98
DEVELOPMENT OF DOMAIN COMPETENCE
4.4 SOFTWARE DEVELOPERS’ EDUCATION FOR 106
DEVELOPMENT OF COMMUNICATION COMPETENCE
4.5 SOFTWARE DEVELOPERS’ EDUCATION FOR 112
DEVELOPMENT OF COMPLEX PROBLEM SOLVING
COMPETENCE
4.5.1 EXPERT PROBLEM SOLVERS 118
4.6 CHAPTER CONCLUSION 123
CHAPTER-5
SOFTWARE DEVELOPERS’ EDUCATION FOR 125
DEVELOPMENT OF COMPETENCY DRIVER-HABITS
OF MIND
5.1: SOFTWARE DEVELOPERS’ EDUCATION FOR 126
DEVELOPMENT OF ATTENTION TO DETAILS
5.2: SOFTWARE DEVELOPERS’ EDUCATION FOR 130
DEVELOPMENT OF CRITICAL AND REFLECTIVE THINKING
5.3: SOFTWARE DEVELOPERS’ EDUCATION FOR 138
DEVELOPMENT OF CREATIVITY AND INNOVATION
5.4: CHAPTER CONCLUSION 144
CHAPTER-6
SOFTWARE DEVELOPERS’ EDUCATION FOR 145
DEVELOPMENT OF COMPETENCY CONDITIONING
ATTITUDES AND PERSPECTIVES
6.1 SOFTWARE DEVELOPERS’ EDUCATION FOR 146
DEVELOPMENT OF CURIOSITY
6.2 SOFTWARE DEVELOPERS’ EDUCATION FOR 154
DEVELOPMENT OF DECISION MAKING PERSPECTIVE
6.3 SOFTWARE DEVELOPERS’ EDUCATION FOR 165
DEVELOPMENT OF SYSTEMS-LEVEL PERSPECTIVE
6.4 SOFTWARE DEVELOPERS’ EDUCATION FOR 175
DEVELOPMENT OF INTRINSIC MOTIVATION
TO CREATE/IMPROVE ARTIFACTS
6.5 CHAPTER CONCLUSION 181
ix
CHAPTER-7
THE PHENOMENON OF ‘LEARNING’ 182
7.1 EMPIRICAL INVESTIGATIONS FOR ASSESSING 182
EFFECTIVENESS OF EDUCATIONAL METHODS
WITH RESPECT TO THE REQUIREMENTS OF
SOFTWARE DEVELOPMENT
7.1.1 EMPIRICAL STUDIES ON EFFECTIVENESS 182
OF TEACHING METHODS AND EDUCATIONAL
EXPERIENCES OF COMPUTING STUDENTS
AND SOFTWARE DEVELOPERS
7.1.2 EMPIRICAL EXAMINATION OF SOFTWARE 187
DEVELOPMENT EDUCATION THROUGH
BLOOM’S TAXONOMY
7.1.3 QUALITATIVE STUDY OF EFFECTIVE LECTURES 191
7.1.3.1 PERCEPTIONS OF COMPUTING STUDENTS 191
AT SENIOR AND JUNIOR LEVELS
7.1.3.2 PERCEPTIONS OF FACULTY MEMBERS 192
IN ENGINEERING INSTITUTES
7.1.4 QUANTITATIVE STUDY OF EFFECTIVE LECTURES 193
7.1.4.1 PERSPECTIVE OF COMPUTING STUDENTS 194
7.2 REFLECTIONS ABOUT THE PHENOMENON OF ‘LEARNING’ 197
7.3 IMPLICATIONS FOR SOFTWARE DEVELOPMENT 199
EDUCATION
7.4 STUDENT ENGAGEMENTS FOR FACILITATING 201
DEEP LEARNING THROUGH HIGHER EDUCATION
7.4.1 CURRICULUM INTEGRATION 202
7.4.2 SOLO TAXONOMY 205
7.4.3 COLLABORATIVE LEARNING 206
7.4.3.1 PAIR PROGRAMMING 209
7.4.4 CROSS-LEVEL PEER MENTORING 211
7.4.4.1 POSSIBILITY OF CROSS-LEVEL 214
PEER MENTORING IN
SOFTWARE DEVELOPMENT EDUCATION
7.5 CHAPTER SUMMARY 215
CHAPTER-8
A FRAMEWORK OF PEDAGOGIC ENGAGEMENTS 216
IN SOFTWARE DEVELOPMENT EDUCATION
8.1 THREE-DIMENSIONAL KNOWLEDGE DOMAIN FOR 218
DESIGNING COMPUTING COURSES
8.2 TWO CORE PRINCIPLES RELATED TO LEARNING 221
8.2.1 COGNITIVE DISSONANCE 221
x
8.2.2 COGNITIVE FLEXIBILITY 222
8.3 FOUR-DIMENSIONAL TAXONOMY OF PEDAGOGIC 223
ENGAGEMENTS IN SOFTWARE DEVELOPMENT EDUCATION
8.3.1 DIMENSION 1- LEVELS OF ACTIVE ENGAGEMENTS 227
(EXTENSION OF BLOOM’S TAXONOMY)
8.3.2 DIMENSION 2- LEVELS OF INTEGRATIVE 237
ENGAGEMENTS (EXTENSION OF SOLO TAXONOMY)
8.3.3 DIMENSION 3- LEVELS OF REFLECTIVE ENGAGEMENTS 240
8.3.4 DIMENSION 4- LEVELS OF COLLABORATIVE 241
ENGAGEMENTS
8.4 CHAPTER SUMMARY 243
CHAPTER-9
SOME INTERVENTIONS FOR ENHANCING THE 245
QUALITY OF SOFTWARE DEVELOPMENT EDUCATION
9.1 INCREASING COGNITIVE DISSONANCE THROUGH 246
A PROBLEM-CENTRIC APPROACH IN
SOFTWARE DEVELOPMENT EDUCATION
9.1.1 INQUIRY TEACHING IN SOFTWARE 246
DEVELOPMENT EDUCATION
9.1.1.1 SERO MODEL FOR INQUIRY 247
TEACHING IN SOFTWARE DEVELOPMENT
EDUCATION
9.1.2 PROJECT-INCLUSIVE TEACHING IN 251
SOFTWARE DEVELOPMENT EDUCATION
9.1.3 CREATING CONDITIONS FOR REFLECTIVE 254
ENGAGEMENTS IN SOFTWARE DEVELOPMENT
EDUCATION
9.2 INCREASING COGNITIVE FLEXIBILITY THROUGH 256
A MULTIFACETED INTEGRATED APPROACH IN
SOFTWARE DEVELOPMENT EDUCATION
9.2.1 MULTILEVEL INFUSION FOR CONTINUOUS 256
INTEGRATION IN SOFTWARE DEVELOPMENT
EDUCATION
9.2.2 INTEGRATIVE CAPSTONE COURSES IN SOFTWARE 263
DEVELOPMENT EDUCATION
9.2.3 GROUP AND COMMUNITY ORIENTED ENGAGEMENTS 265
IN SOFTWARE DEVELOPMENT EDUCATION
9.2.3.1 COLLABORATIVE PAIR AND 266
QUADRUPLE PROGRAMMING
9.2.3.2 CROSS-LEVEL PEER MENTORING IN 269
SOFTWARE DEVELOPMENT EDUCATION
9.3 REFLECTIVE WORKSHOP ON PEDAGOGY FOR 275
ENGINEERING FACULTY
xi
9.4 CHAPTER SUMMARY 277
CHAPTER-10
SUMMARY AND FUTURE SCOPE OF WORK 279
REFERENCES 283
APPENDICES 305
A1 SPINE-LIKE SURVEY ON IMPORTANCE OF COMPETENCIES 305
A2 A COMPREHENSIVE DISTILLED VIEW ON 310
DESIRED COMPETENCIES
A3 REVISED SURVEY ON REQUIRED COMPETENCIES, 2007 312
A4 MAPPING OF THIRTY-FIVE COMPETENCIES (APPENDIX A3) 314
WITH FINAL SET OF TWELVE CORE COMPETENCIES
A5 CATALOGUE OF TECHNICAL AND TECHNICALLY 316
ORIENTED ACTIVITIES RELATED TO SOFTWARE
DEVELOPMENT
A6 TAXONOMY OF COMMON SOFTWARE BUGS 317
A7 PROPOSED CURRICULUM FOR MASTERS IN 318
ARCHAEO-HERITAGE INFORMATICS
A8 SOME SUGGESTIONS FOR BREADTH COURSES 319
A9 INADEQUATE DEVELOPMENT OF CURIOSITY IN 320
SOFTWARE DEVELOPMENT EDUCATION
A10 SURVEY: “SOFTWARE DEVELOPERS - (HOW) DID YOUR 321
COLLEGE HELP YOU IN YOUR DEVELOPMENT?”
A EFFECTIVENESS OF TEACHING METHODS: SURVEY OF 321
SOFTWARE DEVELOPERS (2009)
A1 EFFECTIVENESS OF TEACHING METHODS-II: 323
EFFECT ON DESIRED COMPETENCIES
B EFFECTIVENESS OF TEACHING METHODS: 328
SURVEY OF STUDENTS (2009)
A11 EMPIRICAL EXAMINATION OF SOFTWARE DEVELOPMENT 331
EDUCATION THROUGH BLOOM’S TAXONOMY
A12 ANECDOTES OF MOST EFFECTIVE LEARNING 337
EXPERIENCES/LECTURES
A13 QUANTITATIVE STUDY OF COMPUTING 341
STUDENTS’ PERSPECTIVE OF EFFECTIVE LECTURES
A14 SUMMARY OF SERO STYLE LECTURES IN TWO COURSES 344
A15 EVOLUTIONARY STAGES OF STUDENT PROJECTS 345
A16 REFLECTIVE ENGAGEMENTS 346
A17 FEEDBACK FROM THE CROSS-LEVEL MENTORS ON INFUSION 348
OF SOME PERVASIVE TOPICS IN FOUNDATION COURSES
xii
A18 MULTI-LEVEL INFUSION OF SECURITY RELATED ASPECTS 354
A19 DESCRIPTION OF THE NOTATION FOR CONCEPT MAPPING 355
A20 SOME PROPOSED INSTRUCTIONAL INTERVENTIONS FOR 357
INFUSING DEBUGGING IN COMPUTING LABORATORIES
A21 COLLABORATIVE PAIR PROGRAMMING 359
A22 SAMPLE COLLABORATIVE QUADRUPLE PROGRAMMING 361
ASSIGNMENTS FOR J2EE
A23 ALUMNI’S FEEDBACK ON LEARNING GAINS THROUGH 362
CROSS-LEVEL MENTORING
A24 ADVANTAGES OF MENTORING AS IDENTIFIED BY 365
FINAL YEAR STUDENTS INVOLVED IN CROSS-LEVEL
MENTORING OF JUNIORS, 2009
ANNEXURES
AN1 IMPORTANT THEORIES ABOUT HUMAN LEARNING, 366
INTELLIGENCE, AND THINKING
AN2 COMPETENCY RECOMMENDATIONS BY ACCREDITATION 368
BOARDS OF SOME COUNTRIES
AN3 SOME MODELS FOR CLASSIFICATION OF COMPETENCIES 372
AN4 METZGER’S OBSERVATIONS ABOUT DEBUGGING 375
AN5 LETHBRIDGE’S STUDY ON MOST IMPORTANT AND 377
INFLUENTIAL TOPICS IN SOFTWARE DEVELOPMENT
EDUCATION
AN6 SOME IMPORTANT MODELS ON PROBLEM SOLVING 378
AN7 SOME THEORIES ON ATTENTION 381
AN8 SOME IMPORTANT PERSPECTIVES ON CURIOSITY 382
AN9 SOME IMPORTANT PERSPECTIVES ON SYSTEM THINKING 383
AN10 SOME IMPORTANT PERSPECTIVES ON INTRINSIC 386
MOTIVATION
AN11 SUCCESSFUL PRACTICES IN INTERNATIONAL ENGINEERING 388
EDUCATION (SPINE) STUDY
AN12 SOME THEORETICAL PERSPECTIVES ABOUT LEARNING 390
AND TEACHING
LIST OF AUTHOR’S PUBLICATIONS 394
xiii
ACKNOWLEDGEMENTS
This work is the result of a long personal journey across a variety of professional experiences:
learning, designing, teaching, and also leading teams. This work has humbled me and has made
me realize the magnitude of my ‘ignorance’ about ‘learning,’ and also many intricacies of
software development. During this journey, I have had the good fortune of wonderful and
engaging interactions with experts and scholars of diverse disciplines.
To top the list, I am highly grateful to hundreds of software professionals from all over the world
who have participated in many surveys, polls, and discussions during the course of this research.
I am thankful to all my past, present, and future students, who are my main inspiration for this
work. Some of the past students are my most valued professional consultants, collaborator, and
critiques. I also want to express my gratitude to all my enthusiastic colleagues in the Department
of Computer Science and Engineering at the Jaypee Institute of Information Technology for their
confidence, support, and active collaboration in contextualizing and administering many ideas in
their various courses.
I am most indebted to Dr. Mukul K. Sinha, my mentor for the last twenty years, for innumerable
professional lessons and values that I have learnt from him. His systems thinking approach,
ability to take risks, commitment for excellence, and coaching has been a great source of strength
for sustaining this long and personally enriching inquiry. Only a few blessed people have the
good fortune of receiving such selfless mentoring.
I am highly thankful to Prof. J.P. Gupta for his affection, generosity, and patience. But for his
blessings and whole-hearted support, it was not possible to try out many instructional
interventions that have provided very useful insights for this thesis.
Numerous discussions with Prof. M.N. Faruqui encouraged me to maintain my enthusiasm for
carrying out this research. His critique and wisdom reflected the depth and breadth of his vision,
as well as multifaceted and rich experience in higher education. I am also thankful to Prof. S.K.
Kak for his interest and motivation. He introduced me to the SPINE project that became a very
xiv
important reference for this work. I have also learnt many lessons about curriculum design, and
also critical inquiry, from Prof. S.L. Maskara. Several discussions with Prof. A.B. Bhattacharyya
and Mr. H.S. Dagar were very enriching. Few Indian researchers get the benefit of such
comprehensive editorial support, as was extended by Mr. Dagar. Moral support extended by
Prof. S.K. Khanna, Prof. (Late) Prof. C.S. Jha, and Dr. Y. Medury has been very encouraging in
this journey. I am also highly grateful to the co-authors, reviewers, and editors of all my papers.
It will not be proper if I forget to acknowledge the lessons I learnt about the value of context and
holistic thinking at the Indira Gandhi National Centre for the Arts (IGNCA) during my tenure
there from 1995 to 2002. My way of thinking and perceptions about excellence, diversity,
scholarship, aesthetics, education, and its relationship with human life evolved significantly
during the process of innumerable interactions with Dr. Kapila Vatsyayan, Prof. P.S. Filliozat,
Prof. T.S. Maxwell, Prof. Saskia Kersenboon, Prof. R. Nagaswamy, Prof. Aditya Malik, Dr. V.
Filliozat, Prof. B.N. Saraswati, Prof. Frits Stall, Prof. Anil K. Jain, Prof. Sutcliffe, Prof. Gary
Marchionini, Prof. S.P. Mudur, Prof. Ranade, Pierre Pichard, Prof. John Emigh, and many others
during the course of designing several interactive multimedia learning systems at the IGNCA.
Lastly, and equally importantly, I am highly thankful to my parents, wife, brothers, sister, and
two sons for their care, love, and also tolerance for my carelessness. Not many people get as
much pampering at home as has been extended to me since my childhood. Their generosity to
take care of all my responsibilities at home enables me to focus more on my studies and work.
xv
ABSTRACT
Community and culture significantly influence value orientation, perceived needs, and
motivation as well as provide the ground for creating shared understanding. All disciplines have
their own cultures, and all cultures evolve through cross-cultural exchanges. The computing
community has created and documented a sound body of knowledge of software engineering
(IEEE SWEBOK). It is one of finest examples of multi-cultural synthesis of many disciplines
especially engineering, computer science, and even social sciences. With the very large scale
worldwide endeavor on computing or software engineering education, it is now time to leverage
education and ‘learning’ related research to create and document a theoretically sound body of
knowledge of software developers’ education. Such a body of knowledge should naturally
require us to synthesis the evolving disciplines of software engineering and higher education.
In this thesis, we discuss our study and investigations about the following types of questions:
1. How has software development education evolved, specifically with reference to educational
research?
2. What is meant by competent and professionally oriented computing engineers, especially
with respect to software engineering? What are the essential attributes? What is the relative
importance of these attributes?
3. What is the degree with which the various components of traditional processes of
engineering education succeed in creating opportunities for enhancing these competencies?
What students think about their educational experiences? What students think works well for
them? What processes do professional engineers recommend?
4. What pedagogical practices succeed in developing competencies, and under what
circumstances? What comes in the way of implementing these strategies? What kinds of
lectures are effective for learning in the views of students and faculty? What factors block
students from effective learning? How to overcome these difficulties?
5. What kind of instructional interventions are required? How can the existing education
theories/strategies/methodologies be used to educate competent computing engineers? Do we
need new theories of learning for software development education? If so, what would be
main aspects of such a theory of learning?
xvi