Component-based software using RESOLVE
ACM SIGSOFT Software Engineering Notes
Providing intellectual focus to CS1/CS2
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Integration of mathematical topics in CS1 and CS2 (panel)
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Client view first: an exodus from implementation-biased teaching
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
Software engineering education: Rôles of formal specification and design calculi
Annals of Software Engineering - Special issue on software engineering education
Reasoning about Software-Component Behavior
ICSR-6 Proceedings of the 6th International Conerence on Software Reuse: Advances in Software Reusability
Teaching Programming as Engineering
ZUM '95 Proceedings of the 9th International Conference of Z Usres on The Z Formal Specification Notation
A Framework for Detecting Interface Violations in Component-Based Software
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Components-first approaches to CS1/CS2: principles and practice
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Practice what you preach: full separation of concerns in CS1/CS2
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Roadmap for enhanced languages and methods to aid verification
Proceedings of the 5th international conference on Generative programming and component engineering
Injecting rapid feedback and collaborative reasoning in teaching specifications
Proceedings of the 40th ACM technical symposium on Computer science education
Engaging students in specification and reasoning: "hands-on" experimentation and evaluation
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Generating Verified Java Components through RESOLVE
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
Mathematics throughout the CS curriculum
Journal of Computing Sciences in Colleges
Hi-index | 0.00 |
This paper summarizes an approach for introducing component-based software engineering (CBSE) early in the undergraduate CS curriculum, and an evaluation of the impact of the approach at two institutions. Principles taught include a modular style of software development, an emphasis on human understanding of component behavior even while using formal specifications, and the importance of maintainability, as well as classical issues such as efficiency analysis and reasoning. Qualitative and quantitative evaluations of student outcomes and end-to-end changes in student attitudes show mostly positive results that are statistically significant, confirming that (1) it is possible to teach CBSE principles without displacing "classical principles usually taught in introductory courses, (2) students can understand and reuse formally-specified components without knowing their implementations, and (3) student attitudes towards software engineering can be altered in directions heretofore often assumed to be difficult to achieve.