Design of Interventions for Instructional Reform in Software Development Education for Competency Enhancement
In this study, the research processes included a wide-ranging survey of published literature in
diverse areas of software development, computer science and IT education, engineering
education, professional and higher education, learning theories, thinking, instruction design, and
human development. The research also included a study of a large number of comments written
by professional software developers about contemporary issues related to software development
processes, required competencies, endorsements, etc., in various professional forums. More than
three hundred professionals of more than sixty organizations from various countries have been
consulted and/or surveyed on various issues. More than one thousand undergraduate computing
students, and more than one hundred faculty members, have also been surveyed on selected
issues.
We have proposed a three-tier taxonomy of twelve competencies and a comprehensive unified
framework of pedagogic engagements in software development education. We have also
discussed some instructional interventions developed by us, manifesting some aspects of this
framework. All these interventions were administered in a chosen set of existing computing
courses. Some new courses have also been developed in the process. The development of the
framework of pedagogic engagement, and these interventions for instructional reform of
software development education, has been an intertwined and highly spiral process.
We hope that our proposed framework of pedagogic engagement in software development
education will help the community of software development educators and researchers to create
a variety of interventions that will help in extending the ‘Software Engineering Body of
Knowledge’ (SWEBOK) to ‘Software Development Education Body of Knowledge’
(SDEBOK). Designers of educational programs for other professions can also adapt this
framework and methodology.
xvii
LIST OF FIGURES
Fig 8.1 A schematic view of four-dimensional taxonomy of 225
pedagogic engagements
Fig 9.1 Group exercise during the evolutionary phase of SERO 249
style lecture
Fig A20.1 Debugging tool evaluation matrix 357
xviii
LIST OF TABLES
CHAPTER-1
Table 1.1 Some important reports on computing curriculum 9
CHAPTER-2
Table 2.1 Most important engineering and general 37
professional competencies, as rated by Indian engineers and
managers working in Indian and multi-national IT companies (2004)
Table 2.2 Comparative analysis of some common competencies 40
distinguished and identified by some accreditation agencies
Table 2.3 Most important competencies as rated by Indian engineers and managers 57
working in Indian and multi-national software companies
(Revised Study 2007)
Table 2.4 The most important competencies for software development work 58
related to software services and product development
Table 2.5 Taxonomy of core competencies for software developers- ver.1 60
CHAPTER-3
Table 3.1 Core competencies for software developers 77
Table 3.2 Three-tier taxonomy of core competencies for software developers 78
CHAPTER-4
Table 4.1 Most important activities that must be included in the main goals 86
for a new software curriculum
Table 4.2 Biglan’s classication of disciplines 102
Table 4.3 Kolb’s learning styles 104
Table 4.4 Perceived importance of communication skills by programmers 109
and systems analysts
Table 4.5 Profiles of the respondents for the two polls about communication 110
competence among software developers
Table 4.6 Summary of responses for these two polls about communication 110
competence
Table 4.7 Competency ladder (Integrating the ladders by Gordon Institute, 119
Dreyfus and Dreyfus, and Denning)
Table 4.8 A Comparison of typical academic and real life problems 121
Table 4.9 Some techniques for solving complex ill-defined problems 122
xix
CHAPTER-5
Table 5.1 Some common errors in logical and analytical reasoning 132
Table 5.2 Some key aspects of Schön’s perspectives on ‘design’ as 136
‘reflective action’
Table 5.3 Principles of Theory of Inventive Problem Solving (TRIZ/TIPS) 142
CHAPTER-6
Table 6.1 Re-interpreting Perry’s nine stage model of intellectual development 151
as nine stage model of curiosity development
Table 6.2 Four decision styles proposed by Rowe and Boulgarides 158
Table 6.3 Multifaceted definition of engineering systems thinking by 168
Frank and Waks, 2001
Table 6.4 Levels of systems thinking (derived from Boulding and Sanford) 169
Table 6.5 Shifting the focus for systems thinking (Capra’s criteria) 169
Table 6.6 Systems thinking approaches by Checkland and Jacobs 170
Table 6.7 Senge’s toolbox for cultivating systems thinking 172
Table 6.8 Kohlberg’s six stage model of human development 173
Table 6.9 Maslow’s Hierarchy of Human Needs 176
CHAPTER-7
Table 7.1 Importance of teaching methods as rated by Indian engineers 183
and managers working in Indian and multi-national IT companies
Table 7.2 Perceived effectiveness of pedagogical engagements with respect 185
to enhance of competencies: perceptions of software professionals
Table 7.3 Effectiveness of educational experiences for competency 186
enhancement of computing students
Table 7.4 Comparison of Bloom level-specific normalized consolidated ratings 189
Table 7.5 Correlation between different consolidated ratings 189
Table 7.6 Attribute category-wise consolidated ratings by computing students 194
Table 7.7 Correlation matrix between attributes of different lecture formats 195
based on computing students responses
Table 7.8 Selected catalogue of learning engagements for deep learning from 202
the NSSE study
Table 7.9 Harden’s taxonomy of curriculum integration 204
Table 7.10 Salmon’s levels of collaborative e-learning 208
Table 7.11 Dillenbourg’s four conditions for collaborative learning 209
Table 7.12 Software professionals’ reflections about advantages of first 214
mentoring experience
CHAPTER-8
Table 8.1 Three-tier taxonomy of core competencies for software developers 216
Table 8.2 Five-dimensional ladder of professional and human development 218
xx
Table 8.3 A novel three-dimensional taxonomy of knowledge domain for 220
software developers
Table 8.4 Perceived effectiveness of pedagogical engagements 224
with respect to enhance of competencies: perceptions of
software professionals
Table 8.5 Levels of active engagements (first of four dimensions of our 229
taxonomy of pedagogic engagements)
Table 8.6a Some selected models for supporting student engagements at 231
Analyze level
Table 8.6b Some selected models for supporting student engagements at 234
Create and Evaluate levels
Table 8.7 Discipline integration sub-levels based on Biglan’s classification 238
of disciplines
Table 8.8 Levels of integrative engagements (second of four dimensions of 239
our taxonomy of pedagogic engagements)
Table 8.9 Levels of reflective engagements (third of four dimensions of 241
taxonomy of pedagogic engagements)
Table 8.10 Levels of collaborative engagements(last of the four dimensions 242
of taxonomy of pedagogic engagements)
CHAPTER-9
Table 9.1 Benefits of PSP as perceived by Students 259
Table 9.2 Application of Dillenbourg's principles 266
Table 9.3 Comparison of pre- and post-workshop consolidated ratings 276
by faculty
APPENDICES
Table A1.1 Importance of twenty-three core engineering and general 307
professional competencies, as rated by Indian engineers and
managers working in Indian and multi-national IT companies
Table A1.2 Importance of teaching methods as rated by Indian engineers and 309
managers working in Indian and multi-national IT companies
Table A3.1 Comparison of competencies examined in SPINE-based and 312
revised study
xxi
Table A3.2 Importance of thirty-five competencies as rated by Indian engineers 313
and managers working in Indian and multi-national software companies
(Revised Study 2007)
Table A4.1a Mapping of thirty-five competencies with the Final set of twelve core 314
competencies, part –I
Table A4.1b Mapping of thirty-five competencies with the Final set of twelve core 315
competencies, part-II
Table A9.1 A summary of students’ responses on ‘questioning in the class’ 320
Table A10.1 Effectiveness of educational experiences for competency enhancement 322
of software developers
Table A10.2 Perceived effectiveness of pedagogical engagements 324
(i) part-I with respect to enhance of specific competencies – basic competencies:
perceptions of software professionals
Table A10.2 Perceived effectiveness of pedagogical engagements 325
(i) part-II with respect to enhance of specific competencies – basic competencies:
perceptions of software professionals
Table A10.2 Perceived effectiveness of pedagogical engagements
(ii) with respect to enhance of specific competencies – habits of mind: 326
perceptions of software professionals
Table A10.2 Perceived effectiveness of pedagogical engagements 327
(iii) with respect to enhance of specific competencies – attitudes and values:
perceptions of software professionals
Table A10.3 Effectiveness of educational experiences for competency enhancement 329
of computing students
Table A11.1 List of verbs used for assessing engineering education wrt Bloom’s 331
taxonomy
Table A11.2 Ordered lists of activity verbs 334
Table A11.3 Comparison of Bloom level-specific normalized consolidated ratings 336
Table A11.4 Correlation between different consolidated ratings 336
Table A12.1 Anecdotes about the best lectures offering most effective learning 337
experience, as recalled by senior computing students
Table A12.2 Anecdotes about the best lectures offering most effective learning 338
experience, as recalled by sophomore computing students at the
beginning of their 3rd semester
Table A12.3 Anecdotes about the best lectures offering most effective learning 339
experience,as recalled by faculty members of engineering institutes
from their student life
Table A12.4 Anecdotes about the best lectures delivered by the faculty members 340
of engineering institutes, as recalled by them
Table A13.1 Attributes to characterize variety of lecture format in 341
engineering/software development education
Table A13.2 Comparison of computing students’ perception of effectiveness 343
and usage rate of lecture format attributes
Table A13.3 Attribute category-wise consolidated ratings by computing students 343
Table A16.1 Format for reflective report on final year project 346
Table A16.2 Reflective assignments in three final year elective course 346
xxii
Table A16.3 Two sample assignments in ‘software arteology,’ emphasizing 347
on reflection
Table A16.4 Some sample responses to last sub-question (now what?) of 347
some assignments (Table A16.5)
Table A17.1 Mentor feedback on infusion of web technology 348
Table A17.2 Mentor feedback on infusion of multimedia technology 348
Table A17.3 Mentor feedback on infusion of mobile technology 349
Table A17.4 Mentor feedback on infusion of security aspects 349
Table A17.5 Mentor feedback on infusion of systems design aspects 350
Table A17.6 Mentor feedback on infusion of PSP (time logs) 351
Table A17.7 Mentor feedback on infusion of open source 352
Table A17.8 Mentor feedback on infusion of PSP (Bug log) 353
Table A21.1 Sample laboratory assignment for introduction to programming 359
Table A21.2 Comments of students on their experience with collaborative 360
peer programming
Table A23.1 Alumni reflections on the effect of mentoring on mentors’ 363
competencies
Table A23.2 Advantages of mentoring as identified by alumni 364
ANNEXURES
Table AN1.1a A chronological list of some important theories about 366
human learning, intelligence, and thinking (pre 1990)
Table AN1.1b A chronological list of some important theories about 367
human learning, intelligence, and thinking (1990 onwards)
Table AN1.1 Accreditation Criteria and Weights defined by NBA, India for
Diploma (Dip.), Undergraduate (UG), and Postgraduate (PG) 371
Engineering Programs
Table AN6.1 Polya’s recommended cognitive engagement of mathematical 378
problem solving
Table AN9.1 Senge’s laws of systems thinking 383
Table AN9.2 Characteristics of systems thinkers 383
Table AN9.3 Levels of systems thinking expertise (Dennis Meadows) 384
Table AN9.4 Boulding’s hierarchy of real world complexity 385
Table AN9.5 Schwartz Value Categories 385
xxiii
1
xxiv
CHAPTER 1: INTRODUCTION
Creativity combined with our understanding of nature, material, medium, other humans, and
artifacts has always helped us in devising new processes for performing old tasks, and also
devising new tasks in our personal, social, professional, and organizational lives. New processes
and tasks require the use of existing artifacts in new ways, and also the creation of new artifacts.
Often new processes bring advantages in terms of increased speed, reliability, scale, safety,
comfort, or flexibility and/or savings in effort, energy, material as well as costs. In addition,
humans have also used themselves both as the source of raw energy through physical labor, and
as controllers through psychomotor skills to perform these tasks. Taming of animals, tapping of
natural energy, steam engine, electricity, etc., helped to reduce our role as energy suppliers.
Mankind could focus more on the other two tasks of being the controller and process designers.
With the availability of control systems in the last century, our role as controllers has also
reduced significantly, and more human energy is now available for the creative work of devising
new processes and new tasks. Artisans, engineers, designers, and technologists play a key role in
identifying the opportunities and developing new processes and tasks in diverse domains of
human activities. Strength, malleability, expected life, and various other affordances of the
material and medium influence and constrain our design activities. The digital computer is the
most malleable artifact created so far, and it can be further used as a material and a medium to
rapidly create a large variety of new artifacts in a very flexible way. This power has given an
unprecedented boost to the development of new processes, as well as new tasks in all domains of
human activities.
Engineers and technologists plan, design, develop, test, integrate, deploy, maintain, improve,
reverse engineer, re-engineer, as well as evaluate components, products, applications, systems,
services, standards, processes, and methodologies encompassing various artifacts. Their
disciplines are differentiated with each other on the basis of the artifacts they build and focus on.
In order to identify and create opportunities of devising new processes and ways in various
domains, they need to understand the needs and nuances of those domains as well as humans’
individual as well as social behavior. This is often the most critical and creative task, especially
when the subsequent engineering processes are very rapid and fairly stabilized. US Accreditation
1
Board for Engineering and Technology (ABET) defines engineering as follows: “Engineering is
the profession in which knowledge of the mathematical and natural sciences gained by study,
experience, and practice is applied with judgment to develop ways to utilize, economically, the
materials and forces of nature for the benefit of mankind.”
Unlike science, engineering and technology are oriented towards conception, design, invention,
development, application, improvement, and production with an emphasis on current and future
needs of society. They require holistic thinking involving integration of many competing
demands, theories, data, and ideas as well as decision making based on incomplete data and
approximate models. The theorizing attempts go beyond the search of causes, and are focused on
new processes and applications. Engineering is not just applied science; it is as much about
process as it is about technical knowledge. An engineer’s task involves conceiving and
designing products, processes, and systems, and to predict their behavior using science.
Scientists create models to understand natural phenomenon with known outcomes, whereas
engineers create models to predict outcomes for systems. The use of heuristics distinguishes
engineering methods from scientific methods. Engineering is further distinguished from
Technology by its focus on more complex problems that involve use of more diverse resources,
more diverse groups of stakeholders with varying needs, wider range of conflicting technical,
engineering and other issues, more abstract thinking, originality, infrequently encountered issues,
and work progress in spite of insufficiency of standards and codes of practice. Technological
work needs mastery of discipline and context specific current knowledge, techniques, skills, and
tools. A higher focus on quality and timeliness are its distinctions. Broadly, the educational
programs of engineering and technology recognize many of these distinguishing aspects of the
discipline and respond in various ways through their curriculum and educational methods.
As per the ACM-IEEE joint report [1], Computing means any goal-oriented activity requiring,
benefiting from, or creating computers. It includes: designing and building hardware and
software systems for any of a wide range of purposes, processing, structuring and managing
various kinds of information, doing scientific studies using computers, making computer
systems behave intelligently, creating and using communications and entertainment media,
finding and gathering information relevant to any particular purpose, etc. Computing engineers
2