You are previewing Overcoming Challenges in Software Engineering Education.
O'Reilly logo
Overcoming Challenges in Software Engineering Education

Book Description

Computer science graduates often find software engineering knowledge and skills are more in demand after they join the industry. However, given the lecture-based curriculum present in academia, it is not an easy undertaking to deliver industry-standard knowledge and skills in a software engineering classroom as such lectures hardly engage or convince students. Overcoming Challenges in Software Engineering Education: Delivering Non-Technical Knowledge and Skills combines recent advances and best practices to improve the curriculum of software engineering education. This book is an essential reference source for researchers and educators seeking to bridge the gap between industry expectations and what academia can provide in software engineering education.

Table of Contents

  1. Cover
  2. Title Page
  3. Copyright Page
  4. Book Series
  5. Editorial Advisory Board and List of Reviewers
    1. Editorial Advisory Board
    2. List of Reviewers
  6. Preface
    1. BOOK LAYOUT
  7. Acknowledgment
  8. Section 1: Developing Project Management Skills
    1. Chapter 1: Teaching Software Project Management
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. COURSE STRUCTURE
      5. CONCLUSION
      6. REFERENCES
      7. ADDITIONAL READING
      8. KEY TERMS AND DEFINITIONS
      9. APPENDIX A: SAMPLE MEETING LOG
      10. APPENDIX B: SOME OF THE PROJECTS GIVEN IN THIS COURSE
      11. APPENDIX C: TEMPLATE FOR TEAM MEMBER EVALUATION
    2. Chapter 2: Applying Coaching Practices to Leadership and Team Management Learning in Computer Science
      1. ABSTRACT
      2. INTRODUCTION
      3. CONTEXT
      4. ACTIVE LEARNING THROUGH COACHING TECHNIQUES
      5. ASSESSMENT OF THE EXPERIENCE
      6. CONCLUSION AND LESSONS LEARNED
      7. REFERENCES
      8. KEY TERMS AND DEFINITIONS
      9. ENDNOTES
      10. APPENDIX: END-OF-COURSE SURVEY
  9. Section 2: Encouraging Collaborations and Teamwork
    1. Chapter 3: Towards an Understanding of Collaborations in Agile Course Projects
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. COLLABORATIVE WORK IN THE USE OF AGILE METHODOLOGIES FOR SOFTWARE ENGINEERING COURSE PROJECTS
      5. FUTURE RESEARCH DIRECTIONS
      6. CONCLUSION
      7. ACKNOWLEDGMENT
      8. REFERENCES
      9. ADDITIONAL READING
      10. KEY TERMS AND DEFINITIONS
    2. Chapter 4: Developing Communities of Practice to Prepare Software Engineers with Effective Team Skills
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. TEAM SKILLS DEVELOPMENT: ISSUES AND PROBLEMS
      5. THE TOSE COURSE: SOLUTIONS AND RECOMMENDATIONS
      6. FUTURE RESEARCH DIRECTIONS
      7. CONCLUSION
      8. REFERENCES
      9. ADDITIONAL READING
      10. KEY TERMS AND DEFINITIONS
    3. Chapter 5: Encouraging Teamwork, Web 2.0, and Social Networking Elements in Distance Learning
      1. ABSTRACT
      2. INTRODUCTION
      3. RELATED WORK
      4. TEAMWORK IN PRACTICE
      5. FUTURE RESEARCH DIRECTIONS
      6. CONCLUSION
      7. REFERENCES
      8. ADDITIONAL READING
      9. KEY TERMS AND DEFINITIONS
  10. Section 3: Supporting Communications
    1. Chapter 6: From Textual Analysis to Requirements Elicitation
      1. ABSTRACT
      2. INTRODUCTION
      3. SYNOPSIS OF THE TEACHING OF REQUIREMENTS ENGINEERING
      4. JUSTIFICATION FOR THE DIDACTIC AND METHODOLOGICAL CHOICE
      5. THE CONCEPTUAL FRAMEWORK
      6. EMPIRICAL FINDINGS
      7. FUTURE RESEARCH DIRECTIONS
      8. CONCLUSION
      9. REFERENCES
      10. KEY TERMS AND DEFINITIONS
    2. Chapter 7: Peer Feedback in Software Engineering Courses
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. PEER FEEDBACK DURING TEAM MEETINGS
      5. CODE REVIEWS AS PEER FEEDBACK
      6. PEER MENTORING AS PEER FEEDBACK
      7. PEER FEEDBACK USING ONLINE TOOLS
      8. FUTURE RESEARCH DIRECTIONS
      9. CONCLUSION
      10. ACKNOWLEDGMENT
      11. REFERENCES
      12. KEY TERMS AND DEFINITIONS
  11. Section 4: Improving Soft Skills
    1. Chapter 8: Engaging Software Engineering Students with Employability Skills
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. ADDRESSING PRACTITIONER EXPECTATIONS
      5. INTERVENTION OVERVIEW
      6. STUDENT DEVELOPMENT ACROSS INTERVENTIONS
      7. SUPPORT FOR SOFT-SKILLS LEARNING
      8. CONCLUSION
      9. REFERENCES
      10. ADDITIONAL READING
      11. KEY TERMS AND DEFINITIONS
    2. Chapter 9: Practicing Soft Skills in Software Engineering
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. COMPETENCIES IN SOFTWARE ENGINEERING
      4. 3. PEDAGOGIGAL VIEW ON PROJECT-BASED LEARNING
      5. 4. GOALS AND RESTRICTIONS
      6. 5. SPECIFIC APPROACHES TO ACHIEVE OUR GOALS
      7. 6. EXPERIENCE: WHAT WORKED WELL AND WHAT DID NOT
      8. 7. SUMMARY, CONCLUSION, FUTURE WORK
      9. ACKNOWLEDGMENT
      10. REFERENCES
      11. ADDITIONAL READING
      12. KEY TERMS AND DEFINITIONS
    3. Chapter 10: Controlled Experiments as Means to Teach Soft Skills in Software Engineering
      1. ABSTRACT
      2. INTRODUCTION
      3. COURSE CONCEPT
      4. AN EXPERIMENT ON GROUP DYNAMICS
      5. AN EXPERIMENT ON DISTRIBUTED SOFTWARE DEVELOPMENT
      6. CONCLUSION AND LESSONS LEARNED
      7. REFERENCES
      8. KEY TERMS AND DEFINITIONS
    4. Chapter 11: Developing Personal and Professional Skills in Software Engineering Students
      1. ABSTRACT
      2. INTRODUCTION
      3. EXPERIENTIAL LEARNING
      4. CASE STUDY
      5. IMPLEMENTING EXPERIENTIAL LEARNING TO DELIVER COURSE OBJECTIVES AND DESIRED LEARNING OUTCOMES
      6. CONCLUSION
      7. ACKNOWLEDGMENT
      8. REFERENCES
      9. ADDITIONAL READING
      10. KEY TERMS AND DEFINITIONS
  12. Section 5: Promoting Project-Based Learning
    1. Chapter 12: Project-Based Learning
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. OUR PROJECT BASED LEARNING APPROACH
      5. RESULTS OBTAINED FROM OUR PBL APPROACH
      6. FUTURE RESEARCH DIRECTIONS
      7. CONCLUSION
      8. REFERENCES
      9. KEY TERMS AND DEFINITIONS
    2. Chapter 13: Experiences in Software Engineering Education
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. TEACHING SCRUM WITH AGILE COACHING AND VIRTUAL REALITY
      5. FUTURE RESEARCH DIRECTIONS
      6. CONCLUSION
      7. REFERENCES
      8. KEY TERMS AND DEFINITIONS
      9. ENDNOTES
    3. Chapter 14: A Project-Based Introduction to Agile Software Development
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. BACKGROUND
      4. 3. THE PROCESS
      5. 4. FUTURE RESEARCH DIRECTIONS
      6. 5. CONCLUSION
      7. REFERENCES
      8. KEY TERMS AND DEFINITIONS
  13. Section 6: Engaging Classroom Games
    1. Chapter 15: ECSE
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. ECSE: A PSEUDO-SDLC GAME FOR SOFTWARE ENGINEERING CLASS
      5. FUTURE RESEARCH DIRECTIONS
      6. CONCLUSION
      7. ACKNOWLEDGMENT
      8. REFERENCES
      9. ADDITIONAL READING
      10. KEY TERMS AND DEFINITIONS
    2. Chapter 16: Teaching Software Engineering through a Collaborative Game
      1. ABSTRACT
      2. INTRODUCTION
      3. SOFTWARE ENGINEERING EDUCATION WITH GAMES
      4. SIMULES-W
      5. METHODOLOGY TO LEARN SOFTWARE ENGINEERING WITH SIMULES-W
      6. TEACHING EXPERIENCE WITH SIMULES-W
      7. CONCLUSION
      8. ACKNOWLEDGMENT
      9. REFERENCES
      10. ADDITIONAL READING
      11. KEY TERMS AND DEFINITIONS
  14. Section 7: Experiencing Case-Based Teaching and Problem-Based Learning
    1. Chapter 17: Digital Home
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. THE DIGITALHOME MATERIAL
      5. USE OF THE CASE STUDY MATERIAL
      6. SUMMARY AND FUTURE RESEARCH DIRECTIONS
      7. REFERENCES
      8. ADDITIONAL READING
      9. KEY TERMS AND DEFINITIONS
    2. Chapter 18: Incorporating a Self-Directed Learning Pedagogy in the Computing Classroom
      1. ABSTRACT
      2. INTRODUCTION
      3. WHAT IS PROBLEM-BASED LEARNING?
      4. SELF-DIRECTED LEARNING AND SMALL GROUPS
      5. PROBLEM-BASED LEARNING IN SOFTWARE ENGINEERING
      6. THE PBL IMPLEMENTATIONS
      7. DISCUSSION
      8. ACKNOWLEDGMENT
      9. REFERENCES
      10. ADDITIONAL READING
      11. KEY TERMS AND DEFINITIONS
      12. ENDNOTES
  15. Section 8: Meeting Industry Expectations
    1. Chapter 19: Bridging the Academia-Industry Gap in Software Engineering
      1. ABSTRACT
      2. MOTIVATION
      3. INTRODUCTION TO THE CO-FOSS MODEL
      4. STEPS TO DEVELOPING AND DELIVERING A CO-FOSS COURSE
      5. CASE STUDIES: THE EXPERIENCE AT THREE SCHOOLS
      6. CONCLUSION
      7. REFERENCES
      8. ADDITIONAL READING
      9. KEY TERMS AND DEFINITIONS
      10. APPDENDIX: CO-FOSS RESOURCES
    2. Chapter 20: Teaching Software Architecture in Industrial and Academic Contexts
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
      4. TEACHING SOFTWARE ARCHITECTURE
      5. SOLUTIONS AND RECOMMENDATIONS
      6. FUTURE RESEARCH DIRECTIONS
      7. CONCLUSION
      8. ACKNOWLEDGMENT
      9. REFERENCES
      10. ADDITIONAL READING
      11. KEY TERMS AND DEFINITIONS
  16. Section 9: Using Open-Source Tools
    1. Chapter 21: Learning Software Industry Practices with Open Source and Free Software Tools
      1. ABSTRACT
      2. INTRODUCTION
      3. SOFTWARE ENGINEERING COURSE
      4. SOFTWARE TOOLS USED
      5. ITERATIVE AND INCREMENTAL DEVELOPMENT
      6. REQUIREMENTS DOCUMENTATION
      7. VERSION CONTROL AND SOURCE CODE MANAGEMENT
      8. CODING STANDARDS COMPLIANCE
      9. DESIGN VISUALIZATION
      10. SOFTWARE TESTING
      11. SOFTWARE METRICS
      12. RELEASE DELIVERABLES AND DOCUMENTATION
      13. ETHICS AND PROFESSIONAL PRACTICES
      14. SUPPLEMENTAL WRITING SKILLS
      15. USING OPEN SOURCE PROJECTS IN SE COURSES
      16. FUTURE RESEARCH DIRECTIONS
      17. CONCLUSION
      18. REFERENCES
      19. ADDITIONAL READING
      20. KEY TERMS AND DEFINITIONS
    2. Chapter 22: Incorporating Free/Open-Source Data and Tools in Software Engineering Education
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. RELATED WORK AND OUR TEACHING APPROACH
      4. 3. CLASS DESCRIPTION
      5. 4. GENERAL ANYALSIS
      6. 5. CONCLUSION AND IMPROVEMENT PLAN
      7. REFERENCES
      8. KEY TERMS AND DEFINITIONS
  17. Section 10: Adopting Digital Learning
    1. Chapter 23: Improve Collaboration Skills Using Cyber-Enabled Learning Environment
      1. ABSTRACT
      2. INTRODUCTION
      3. THE DEFINITION OF COLLABORATION AND TEAMWORK
      4. BACKGROUND AND RATIONALE
      5. DIMENSIONS OF TEAMWORK EDUCATION
      6. DESIGN FRAMEWORK PROCESS
      7. APPLICATION OF FRAMEWORK
      8. CONCLUSION
      9. REFERENCES
      10. KEY TERMS AND DEFINITIONS
    2. Chapter 24: Applying Online Learning in Software Engineering Education
      1. ABSTRACT
      2. 1. INTRODUCTION
      3. 2. BACKGROUND
      4. 3. STRATEGIC LEARNING MODELS
      5. 4. E-LEARNING
      6. 5. SOFTWARE ENGINEERING E-LEARNING
      7. 6. FUTURE RESEARCH DIRECTIONS
      8. 7. CONCLUSION
      9. REFERENCES
      10. KEY TERMS AND DEFINITIONS
  18. Compilation of References
  19. About the Contributors