Integrating software engineering in computer programming education

  • Authors:
  • Christopher Connolly;Gabriele Meiselwitz

  • Affiliations:
  • Towson University, Towson, MD, USA;Towson University, Towson, MD, USA

  • Venue:
  • Proceedings of the 10th ACM conference on SIG-information technology education
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper details a computer programming class update for all education levels. As technology has become a more integral part of elementary and secondary education curriculum, the skilled programmer has become more commonplace. Students graduating from high school may, by that time, have been programming for as many as three years. As the IT field develops and spawns sub fields the role of the programmer remains important. However, new development methods deal more with creating systems from components. The philosophy change here creates a need for IT professionals who can design and create applications from a user's perspective rather than a computer's perspective [2]. This can be addressed by adding software development principles to the content, by going beyond code and helping students visualize the entire process. This change will provide each student with the skills necessary to become successful; both in further academic pursuits and in their career. This proposed curriculum will contain Software Engineering processes such as requirements elicitation and management, establishing scope and system boundaries, modeling, test procedures, and maintenance activities. The proposed class contains all programming course information while introducing software engineering activities to students in the beginning of their programming education. Instead of simply recreating sample programs, a complete problem will be presented. Students decide what processes need to be automated, how to go about implementing them, how to tell if the problem has been solved (test case), and finally create, verify, and validate their program. Having students go through these steps will provide them with a better understanding of where computer programming fits in the scope of an IT project; and will prepare them for the challenges they will face in a technological environment. This paper will present an overview of course content for this new class as well as strategies and examples for taking current computer programming assignments and infusing Software Engineering principles. It will provide motivation and educational strategy for a solid Software Engineering perspective while introducing programming syntax, decision structures, and data representations. To not unnecessarily burden a curriculum that in many institutions is already near its credit limits, it is critical that programming assignments exemplify SE tenet to reinforce understanding of the material.