Introduction to the theory of programming languages
Introduction to the theory of programming languages
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Software engineering programmes are not computer science programmes
Annals of Software Engineering - Special issue on software engineering education
Software Engineering Economics
Software Engineering Economics
The profession of IT: The IT schools movement
Communications of the ACM
The invisible future
Simulating a Software Engineering Apprenticeship
IEEE Software
Software Reuse with Use Case Patterns
OOIS '02 Proceedings of the Workshops on Advances in Object-Oriented Information Systems
Current issues in IT education
Software and systems engineering: conflict and consensus
Practicing software engineering in the 21st century
Demand-driven curriculum for embedded system software in Korea
ACM SIGBED Review - Special issue: The first workshop on embedded system education (WESE)
Dimensions of software engineering course design
Proceedings of the 28th international conference on Software engineering
Improving the teaching of object-oriented design knowledge
ACM SIGCSE Bulletin
Diagrammatic Education For Software Engineering
Journal of Integrated Design & Process Science
A Hands-On Approach for Teaching Systematic Review
PROFES '08 Proceedings of the 9th international conference on Product-Focused Software Process Improvement
A project-based immersion system
CSEETW '08 Proceedings of the 2008 21st IEEE-CS Conference on Software Engineering Education and Training Workshop
Evaluation of a software engineering course by reflection
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Software engineering principles: a survey and an analysis
Proceedings of the Third C* Conference on Computer Science and Software Engineering
Teaching enterprise application development: strategies and challenges
Proceedings of the 2011 conference on Information technology education
Hi-index | 4.12 |
The lack of a universally accepted definition of software engineering makes teaching the discipline a challenge. A textbook definition of the term might read something like this: "the body of methods, tools, and techniques intended to produce quality software." Rather than emphasizing quality alone, we could distinguish software engineering from programming by defining it as follows: "the development of possibly large systems intended for use in production environments, over a possibly long period, worked on by possibly many people, and possibly undergoing many changes." In this definition, "development" includes management, maintenance, validation, documentation, and so forth. Given the shortage of qualified personnel and the ongoing search for excellent developers, educational institutions must strive to train students who will, upon graduation, take their place in the top tier. By teaching them fundamental thought leavened with practical experience, these establishments can help prepare these students for a long-term professional growth that synchronizes smoothly with the discipline's progress-- for, while technology evolves, the concepts remain.