You are previewing Software Engineering: Effective Teaching and Learning Approaches and Practices.
O'Reilly logo
Software Engineering: Effective Teaching and Learning Approaches and Practices

Book Description

Software Engineering: Effective Teaching and Learning Approaches and Practices presents the latest developments in software engineering education, drawing contributions from over 20 software engineering educators from around the globe. Encompassing areas such as innovative teaching methods and educational technology, this much-needed book greatly enhances libraries with its unique research content.

Table of Contents

  1. Copyright
  2. Foreword
  3. Preface
  4. Acknowledgment
  5. I. Introduction
    1. I. Software Engineering Education: Past, Present, and Future
      1. ABSTRACT
      2. INTRODUCTION
      3. DEVELOPMENT OF SOFTWARE ENGINEERING AS A DISCIPLINE
      4. DEVELOPMENT OF SOFTWARE ENGINEERING EDUCATION PROGRAMS
      5. THE COMMUNITY OF SOFTWARE ENGINEERING EDUCATORS
      6. ACCREDITATION, CERTIFICATION, AND LICENSING
      7. TEACHING SOFTWARE ENGINEERING
      8. ASSESSMENT OF THE CURRENT STATUS OF SOFTWARE ENGINEERING EDUCATION
      9. FUTURE OF SOFTWARE ENGINEERING EDUCATION
      10. REFERENCES
  6. II. Student Learning and Assessment
    1. II. Constructive Alignment in SE Education: Aligning to What?
      1. ABSTRACT
      2. INTRODUCTION
        1. Developing Education-Learner-Practitioner Alignments1
      3. CONTEXT
      4. CHARACTERISTICS OF THE DISCIPLINE
        1. The Engineering of Software
        2. The Crafting of Software
      5. EDUCATION FOR THE DISCIPLINE
      6. DISCIPLINE DECODING
        1. Practitioner Perspectives
      7. ALIGNING EDUCATION TO PRACTICE
        1. Curriculum Mapping for Constructive Alignment
        2. Developing a Student-Education Alignment
      8. CONCEPTUAL MODEL OF ALIGNMENT
      9. IMPLICATIONS FOR THE FUTURE
      10. CONCLUSION
      11. REFERENCES
      12. ENDNOTES
    2. III. On the Role of Learning Theories in Furthering Software Engineering Education
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND: LEARNING THEORIES
      4. LEARNING THEORY-BASED CATEGORI ZATION OF EXISTING APPROACHES
        1. Example: Simulation and Learning Theories
        2. Categorization Highlights
      5. DETAILED ANALYSIS/DESIGN/DEVELOPMENT OF AN APPROACH IN TERMS OF LEARNING THEORIES
        1. Case Study: The Design of SimSE
      6. LEARNING THEORY-CENTRIC EVALUATION
        1. Case Study: SimSE Evaluation Setup
        2. Evaluation Results
        3. Implications of Evaluation Results
      7. SUMMARY
      8. MORE INFORMATION
      9. ACKNOWLEDGMENT
      10. REFERENCES
  7. III. Innovative Teaching Methods
    1. IV. Tasks in Software Engineering Education: The Case of a Human Aspects of Software Engineering Course
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND: HUMAN ASPECTS OF SOFTWARE ENGINEERING-COURSE DESCRIPTION
      4. MAIN THRUST OF THE CHAPTER: KINDS OF QUESTIONS
        1. I. Review Questions
          1. Example 1: Lesson 2 Software Engineering Methods, Summary Question
          2. Example 2: Lesson 1 The Nature of Software Engineering, Preparation Question
        2. II. Concept-Exploration Questions
          1. Example 3: Lesson 10 Learning Processes in Software Engineering, Preparation Question
        3. III. Opinion Questions
          1. Example 4: Lesson 5 Code of Ethics of Software Engineering, Preparation Question
        4. IV. Reflective Questions
          1. Example 5: Lesson 4 Software as a Product, Summary Question
        5. V. Analysis Tasks
          1. Example 6: Lesson 6 International Perspective on Software Engineering, In-Process Question
        6. VI. Design Questions
          1. Example 7: Lesson 1 The Nature of Software Engineering, Further-Review Task
          2. Example 8: Lesson 10 Learning Processes in Software Engineering, Summary Question
        7. VII. Scenario Analysis
          1. Example 9: Lesson 5 Code of Ethics of Software Engineering, Preparation Task
        8. VIII. Connection Questions
          1. Example 10: Lesson 12 Software as a Business, Preparation Questions
        9. IX. Research Oriented Questions
          1. Example 11: Lesson 3 Working in Software Teams, Summary Question
          2. Example 12: Lesson 9 Program Comprehension, Code Inspections, and Refactoring, Summary Question
        10. X. Building Case Studies / Story Telling
          1. Example 13: Lesson 5 Software Engineering Code of Ethics, Intermediate-Stage Question
          2. Example 14: Lesson 5 Software Engineering Code of Ethics, Summary Question
          3. Example 15: End of the Course Task, Case Study Construction and Analysis
      5. FUTURE TRENDS
      6. CONCLUSION
      7. NOTE
      8. REFERENCES
      9. APPENDIX – SIX STAGES OF CASE STUDY CONSTRUCTION
    2. V. Speaking of Software: Case Studies in Software Communication
      1. ABSTRACT
      2. OVERVIEW
      3. MOTIVATION
        1. Communication in the Software Workplace
        2. Communication in Software Engineering Education
      4. VISION AND APPROACH
        1. Technical Communication
        2. Rhetoric
        3. Case Studies
      5. CREATING THE CASES
        1. Locating the Source
        2. Applying Ethnography to the Educational Sphere
        3. Gathering the Data
        4. Constructing the Stories
        5. Presenting the Stories
      6. EXAMPLE: THE SEABASE CASE STUDY
      7. EXAMPLE: THE SOILSIM CASE STUDY
      8. USING THE CASES
        1. Technical Communication
        2. Software Engineering
      9. FUTURE DIRECTIONS
        1. Development and New Applications of Case Studies
        2. Involving Students in Case Building
        3. Interdisciplinarity: Encouraging Further Reciprocation
      10. ONLINE CASE STUDIES
      11. ACKNOWLEDGMENT
      12. REFERENCES
    3. VI. Novel Methods of Incorporating Security Requirements Engineering into Software Engineering Courses and Curricula
      1. ABSTRACT
      2. INTRODUCTION
      3. THE IMPORTANCE OF REQUIREMENTS ENGINEERING
        1. The Problem with Developing Security Requirements
      4. RELATING SECURITY REQUIREMENTS PRACTICES TO CURICULUM MODELS
        1. The Authoritative Baseline: CC2005
        2. Comparison of Security Knowledge to General Computing Knowledge
          1. Another Way To Look at It: The Fit Between Security and Desired Outcomes
      5. INCORPORATING SECURITY REQUIREMENTS ENGINEERING INTO MAINSTREAM ACADEMIA
        1. Security Requirements Engineering Techniques
      6. INTEGRATING SECURITY REQUIREMENTS INTO STANDARD CURRICULA
      7. SQUARE CASE STUDIES
        1. Case Study Selection Process
        2. Overview of the SQUARE Process
          1. Novel Aspects of SQUARE Case Studies as a Learning Vehicle
          2. Evaluating the Work of the Students
          3. Assessment of the Benefits of This Approach
      8. FUTURE PLANS
      9. REFERENCES
  8. IV. Project–Based Software Engineering
    1. VII. The Software Enterprise: Preparing Industry–Ready Software Engineers
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND AND MOTIVATION
      4. THE SOFTWARE ENTERPRISE
      5. ENTERPRISE SEQUENCE IMPLEMENTATION
        1. Student Curricular and Project Trajectories
        2. Faculty Perspective and Logistical Issues
          1. Selecting a Process Lifecycle Model
          2. Project Process Logistics
          3. Identifying Good Projects
          4. Supporting Heavily Tooled Environments
          5. Putting the "Real" in Real-World Projects
          6. Project Assessment
      6. EVALUATION
      7. RELATED RESEARCH
      8. SUMMARY
      9. ACKNOWLEDGMENT
      10. REFERENCES
    2. VIII. Teaching Software Engineering in a Computer Science Program Using the Affinity Research Group Philosophy
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND: THE AFFINITY RESEARCH GROUP MODEL
      4. BRIDGING THE GAP BETWEEN THE ABSTRACT AND CONCRETE
      5. THE PROJECT
        1. Project Descriptions
          1. Project Management
        2. The Project Team
          1. Team Selection
          2. Development Professional Skills
          3. Individual Accountability
          4. Team Issues
        3. Written and Oral Communications Skills
        4. Assessment and Evidence of Success
      6. RELATED WORK
      7. FUTURE TRENDS
      8. CONCLUSION
      9. ACKNOWLEDGMENT
      10. REFERENCES
    3. IX. A Framework for Success in Real Projects for Real Clients Courses
      1. ABSTRACT
      2. INTRODUCTION
      3. WHY RPRCCS?
        1. Benefits to the Department
        2. Benefits to Students
        3. Benefits to the IT/Software Development Workforce
      4. WHY SO FEW RPRCCS?
      5. THE AUTHORS' SETTINGS
      6. BUILDING THE CLIENT POOL
        1. Client Characteristics
        2. Vetting Clients
        3. Types of Client Organizations
        4. How Many Clients are Sufficient?
        5. Preparing the Potential Client for What to Expect
      7. DEVELOPING THE PROJECT OPTIONS
        1. Project Categories
      8. PROJECT VETTING BY INSTRUCTOR
        1. Assessing Project Demands
        2. Academic Challenges
        3. Issues Relating to the Delivered Product
      9. TEAM FORMATION AND PREPARATION
        1. Determining Team Size
        2. Assembling Teams
        3. Skills Needed within Teams
        4. Team Formation by Students
        5. Teaching Teamwork
        6. Matching Teams with Projects
      10. STANDARDS AND WORK PRODUCTS
        1. Scheduling Guidelines
        2. Additional Guidelines
        3. Individual Work Products
        4. Team Work Products
      11. ASSESSMENT AND EVALUATION
      12. FUTURE TRENDS
      13. CLOSING THOUGHTS
      14. REFERENCES
      15. APPENDIX A: TOP TWO LEVELS OF RPRCC TAXONOMY
        1. I. COURSE
        2. II. TEAM
        3. III. CLIENT
        4. IV. PROJECT
        5. V. ASSESSMENT & EVALUATION
    4. X. Experiences in Project—Based Software Engineering: What Works, What Doesn't
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. COURSE REQUIREMENTS AND PROJECTS
      5. WHAT WORKS, WHAT DOESN'T
        1. Accreditation and Outcomes Assessment
        2. University-Wide Curriculum Goals
        3. Courseware Sharing
        4. Team Size
        5. Impact of Project Topic
        6. Year-Long Capstone Design
        7. Assessment/Individual Contribution
        8. Non-Functioning Team Members
      6. FUTURE TRENDS
      7. CONCLUDING REMARKS
      8. REFERENCES
  9. V. Educational Technology
    1. XI. Applying Blended Learning in an Industrial Context: An Experience Report
      1. ABSTRACT
      2. INTRODUCTION
      3. BLENDED LEARNING IN SOFTWARE ENGINEERING EDUCATION
      4. TEACHING OO-DEVELOPMENT WITH UML IN A BLENDED LEARNING APPROACH
      5. OBSERVATIONS AND EXPERIENCES IN AN INDUSTRIAL SETTING
        1. Schedule of the Training Program
        2. The Set-Up of the Case Study
        3. Results of the Case Studies
        4. Lessons Learned
        5. Recommendations
      6. FUTURE TRENDS
      7. SUMMARY AND CONCLUSION
      8. REFERENCES
    2. XII. Integrated Software Testing Learning Environment for Training Senior–Level Computer Science Students
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. THE SOFTWARE TESTING LEARNING ENVIRONMENT
        1. The Course
        2. System to be Tested
        3. Elaboration of the Test Plan
        4. Unit Testing
          1. Test Cases Design
          2. Testing in Isolation
            1. Source Code Listing 1
            2. Source Code Listing 2
          3. Testing Private Methods
            1. Source Code Listing 3
          4. Testing Exceptions
          5. Expected Exceptions
            1. Source Code Listing 4
          6. Unexpected Exceptions
            1. Source Code Listing 5
        5. Students' Performance Evaluation
      5. EVALUATING THE EFFECTIVENESS OF THE APPROACH
      6. CONCLUSSION AND FUTURE WORK
      7. REFERENCES
  10. VI. Curriculum and Education Management
    1. XIII. Software Engineering Accreditation in the United States
      1. ABSTRACT
      2. INTRODUCTION
      3. ABET AND ENGINEERING PROGRAM ACCREDITATION
      4. CRITERIA FOR ACCREDITATION
      5. PROGRAM CRITERIA FOR SOFTWARE ENGINEERING
      6. GROWTH OF ACCREDITED SOFTWARE ENGINEERING PROGRAMS
      7. CURRENTLY ACCREDITED PROGRAMS
      8. EXPERIENCES OF PROGRAMS AND PROGRAM EVALUATORS
      9. CRITERIA RESULTING IN IMPROVEMENT ACTIONS BY PROGRAMS
      10. THE MOST DIFFICULT ISSUES
      11. IMPROVEMENTS MADE
      12. FUTURE DIRECTIONS
      13. REFERENCES
    2. XIV. Software Engineering at Full Scale: A Unique Curriculum
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. CONCEPTS
      5. COURSES
      6. COURSE DETAILS
        1. Programming Lab (1st Semester; 3 Credit Points)
        2. Courses in English and Economics (3rd and 4th Semester; 6 Credit Points)
        3. Programming in the Large, Including Project Manager Training Using a Project Simulator (SESAM) (3rd Semester; 6 Credit Points)
        4. Programming in the Small (3rd Semester; 4 Credit Points)
        5. First Software Project (4th Semester, 9 Credit Points)
        6. Formal Methods (4th Semester; 5 Credit Points)
        7. Lecture on Advanced Software Engineering (5th Semester; 6 Credit Points)
        8. Large Software Project (5th and 6th Semester; 24 Credit Points)
        9. Large Software Project in an Application Area (6th and 7th Semesters)
        10. Small Project on Problem Analysis (8th Semester; 5 Credit Points)
        11. Industrial Experience (3 Months, at Any Time)
      7. EXPERIENCE AND LESSONS LEARNED
        1. Daring a Revolution
        2. Demand and Supply
        3. Projects
        4. Soft Skills
      8. SWITCHING TO BACHELOR'S DEGRES
      9. IS IT STILL THAT DIFFERENT?
      10. ENTERING THE AGE OF SPECIALISATION
      11. CONCLUSION
      12. REFERENCES
    3. XV. Continuous Curriculum Restructuring in a Graduate Software Engineering Program
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. CONTINUOUS CURRICULUM RESTRUCTURING
        1. The Initial Curriculum (1986)
        2. 1991 Curriculum Changes
        3. 1995 Curriculum Changes
        4. 1996 Curriculum Changes
        5. 1998 Curriculum Changes
        6. 2002 Curriculum Change
      5. CONTINUOUS DEVELOPMENT OF COURSE CONTENT
        1. Course Content Changes
        2. Dated Textbooks
        3. Operating System/Programming Language Biases
        4. Continuous Development of Course Projects
      6. DIFFICULTIES ATTRACTING AND RETAINING FACULTY
      7. DIVERSITY OF THE STUDENT BODY
        1. Educational Backgrounds
        2. Employment Status
        3. Educational Goals
        4. Communications Skills
      8. GUIDANCE ON STARTING AND MANAGING PROGRAMS
      9. FUTURE TRENDS
      10. CONCLUSION
      11. REFERENCES
    4. XVI. How to Create a Credible Software Engineering Bachelor's Program: Navigating the Waters of Program Development
      1. ABSTRACT
      2. INTRODUCTION
      3. ISSUES IN SE PROGRAM DEVELOPMENT
        1. Organization
        2. Vision
        3. Accreditation
        4. Curriculum Development
        5. Sources of Help and Advice
      4. DEFINING THE BSSE GRADUATE
      5. WHAT SOFTWARE ENGINEERS NEED TO KNOW
      6. SE2004
      7. SWEBOK
      8. STARTING THE PROCESS
        1. Project Leadership
        2. Capitalizing on Institutional Strengths
      9. CURRICULUM CONSTRUCTION AND DESIGN
      10. SELLING THE PROGRAM
        1. Understanding the Student Market
        2. Building Additional Support
      11. LAUNCHING THE PROGRAM
        1. Adding New Faculty
        2. Course Pilots
      12. CHANGE MANAGEMENT
      13. CONCLUSION
      14. REFERENCES
  11. VII. Professional Practice
    1. XVII. Ensuring Students Engage with Ethical and Professional Practice Concepts
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND AND CONTEXTUAL INFORMATION
        1. IFIP's Professional Standards Framework
        2. Software Engineering Code of Ethics and Professional Practice
      4. TEACHING AND LEARNING APPROACHES
      5. THE SUNDERLAND APPROACH: OVERVIEW
      6. THE SUNDERLAND APPROACH: PREPARATORY WORK
      7. THE SUNDERLAND APPROACH: ADDRESSING DEVELOPMENTS AND A FRAMEWORK FOR PROFESSIONALISM
        1. Developments in Professionalism
        2. The IFIP Professional Standards Framework
      8. THE SUNDERLAND APPROACH: CODES OF PRACTICE AND ROLE PLAY
      9. THE SUNDERLAND APPROACH: THE KILLER TRAIL / INVESTIGATION
      10. THE SUNDERLAND APPROACH: REFLECTIONS
      11. CONCLUSION, THE PRESENT, THE FUTURE, AND OUTSTANDING CHALLENGES
      12. ACKNOWLEDGMENT
      13. REFERENCES
      14. APPENDIX A: EXTRACTS FROM IFIP DOCUMENT: HARMONIZATION OF PROFESSIONAL STANDARDS
        1. The Standard for Professional Practice in Information Technology
          1. Ethics of Professional Practice
          2. Established Body of Knowledge
          3. Education and Training
          4. Professional Experience
          5. Best Practice and Proven Methodologies
          6. Maintenance of Competence
      15. APPENDIX B: SOFTWARE ENGINEERING CODE OF ETHICS AND PROFESSIONAL PRACTICE
        1. Short Version
          1. PREAMBLE
      16. APPENDIX C: EXAMPLE COMPLETED KILLER CHARACTERS VOTING FORM
      17. APPENDIX D: DEFENCE FOR THE ACCUSED: MR. BARTHOLOMEW MATHEWS
        1. 1. Mr. Mathews was well respected within his profession.
        2. 2. Operational flaws.
        3. 3. Cover up.
      18. SUMMARY
    2. XVIII. An International Perspective on Professional Software Engineering Credentials
      1. ABSTRACT
      2. INTRODUCTION
      3. PROFESSIONALISM AND LICENSURE
      4. BROAD-BASED PROFESSIONAL CERTIFICATIONS
      5. NATIONAL EXAMINATIONS
      6. JOB FRAMEWORKS
      7. EFFORTS TO STANDARDIZE PROFESSIONAL CREDENTIALS
      8. SUMMARY AND FUTURE TRENDS
      9. ACKNOWLEDGMENT
      10. REFERENCES
  12. Compilation of References
  13. About the Contributors