The Profession of IT: The core of the third-wave professional
Communications of the ACM
A Discipline for Software Engineering
A Discipline for Software Engineering
Teaching a software project course using the team software process
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Software Engineering in the Academy
Computer
Counterpoint-SE Education: What Academia Can Do
IEEE Software
STEP '02 Proceedings of the 10th International Workshop on Software Technology and Engineering Practice
Distributed development: an education perspective on the global studio project
Proceedings of the 28th international conference on Software engineering
Hi-index | 0.00 |
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. 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.