vii
TABLE OF CONTENT
DECLARATION
BY
THE
SCHOLAR iv
SUPERVISOR’S
CERTIFICATE
vi
ACKNOWLEDGEMENTS
xiv
ABSTRACT
xvi
LIST OF FIGURES
xviii
LIST OF TABLES
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
viii
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
ix
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
x
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
xi
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
xii
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 COMPETENCIESA5
CATALOGUE OF TECHNICAL AND TECHNICALLY 316 ORIENTED ACTIVITIES RELATED TO SOFTWAREDEVELOPMENT
A6
TAXONOMY OF COMMON SOFTWARE BUGS 317A7
PROPOSED CURRICULUM FOR MASTERS IN 318 ARCHAEO-HERITAGE INFORMATICSA8 SOME SUGGESTIONS FOR BREADTH COURSES 319
A9
INADEQUATE DEVELOPMENT OF CURIOSITY IN 320 SOFTWARE DEVELOPMENT EDUCATIONA10
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 TAXONOMYA12
ANECDOTES OF MOST EFFECTIVE LEARNING 337 EXPERIENCES/LECTURESA13
QUANTITATIVE STUDY OF COMPUTING 341 STUDENTS’ PERSPECTIVE OF EFFECTIVE LECTURESA14
SUMMARY OF SERO STYLE LECTURES IN TWO COURSES 344A15
EVOLUTIONARY STAGES OF STUDENT PROJECTS 345A16
REFLECTIVE ENGAGEMENTS 346A17
FEEDBACK FROM THE CROSS-LEVEL MENTORS ON INFUSION 348 OF SOME PERVASIVE TOPICS IN FOUNDATION COURSESxiii
A18
MULTI-LEVEL INFUSION OF SECURITY RELATED ASPECTS 354A19
DESCRIPTION OF THE NOTATION FOR CONCEPT MAPPING 355A20
SOME PROPOSED INSTRUCTIONAL INTERVENTIONS FOR 357 INFUSING DEBUGGING IN COMPUTING LABORATORIESA21
COLLABORATIVE PAIR PROGRAMMING 359A22
SAMPLE COLLABORATIVE QUADRUPLE PROGRAMMING 361 ASSIGNMENTS FOR J2EEA23
ALUMNI’S FEEDBACK ON LEARNING GAINS THROUGH 362 CROSS-LEVEL MENTORINGA24
ADVANTAGES OF MENTORING AS IDENTIFIED BY 365 FINAL YEAR STUDENTS INVOLVED IN CROSS-LEVELMENTORING OF JUNIORS, 2009
ANNEXURES
AN1
IMPORTANT THEORIES ABOUT HUMAN LEARNING, 366 INTELLIGENCE, AND THINKINGAN2 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