Issue No. 05 - September/October (2002 vol. 19)
<p>Although some professions require a period of internship, residency, or apprenticeship before marking an individual as a qualified member, software engineering does not. Universities have started offering curricula in software engineering, but many continue to offer SE as a set of courses in their computer science curricula. Because the global demand for software engineers far exceeds the supply of SE graduates, CS and applied CS graduates frequently fill this gap. So, to enrich SE courses in the CS and applied CS curricula with opportunities to practice SE concepts and principles, we support an SE apprenticeship, simulated through system development projects. </p><p>In this article, the authors first examine the prevailing SE body of knowledge and perspectives on SE education to construct a model consisting of knowledge areas for SE professional development. They use this model and Bloom?s taxonomy to delineate knowledge areas that an apprenticeship could best handle. They then establish a framework for SE apprenticeship and use it to examine practices for simulating apprenticeships in three different academic institutions that offer CS, applied CS, or computing systems curricula. To further supplement the apprenticeship, the authors suggest using coordinated internship and co-op programs.</p>
software engineering education, software engineering apprenticeship framework, professional development model, project work
A. Macfarlane, H. Hays and K. Surendran, "Simulating a Software Engineering Apprenticeship," in IEEE Software, vol. 19, no. , pp. 49-56, 2002.