Copying and Swapping: Influences on the Design of Reusable Software Components
IEEE Transactions on Software Engineering
Component-based software using RESOLVE
ACM SIGSOFT Software Engineering Notes
Java how to program
Application-based modules using apprentice learning for CS 2
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Providing intellectual focus to CS1/CS2
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
Accelerated C++: practical programming by example
Accelerated C++: practical programming by example
Experience report: using RESOLVE/C++ for commercial software
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Do we really teach abstraction?
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
STL tutorial and reference guide, second edition: C++ programming with the standard template library
STL tutorial and reference guide, second edition: C++ programming with the standard template library
A formal approach to component-based software engineering: education and evaluation
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Algorithms and object-oriented programming: bridging the gap
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Ancestor worship in CS1: on the primacy of arrays
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Practice what you preach: full separation of concerns in CS1/CS2
Proceedings of the 37th SIGCSE technical symposium on Computer science education
What do teachers teach in introductory programming?
Proceedings of the second international workshop on Computing education research
A survey of literature on the teaching of introductory programming
Working group reports on ITiCSE on Innovation and technology in computer science education
What do "CS1" and "CS2" mean?: investigating differences in the early courses
Proceedings of the 41st ACM technical symposium on Computer science education
Interfaces first (and foremost) with Java
Proceedings of the 41st ACM technical symposium on Computer science education
Journal of Computing Sciences in Colleges
Hi-index | 0.00 |
Among the many ways to focus CS1/CS2 content, two have been published that emphasize concepts of component-based software engineering. Courses based on these two instances of a "components-first" approach are remarkably similar in several crucial respects--which is surprising because they were developed independently and with very different objectives. Indeed, the two versions are based on virtually the same principles for content organization, and they share many common features that are unusual for CS1/CS2. Yet, they are notably different in other ways. Detailed analysis of similarities and differences suggests that it might be possible to transfer some of their claimed and documented advantages to other approaches within the programming-first paradigm for CS1/CS2, by rearranging the content of such courses in accord with the underlying principles of the components-first approach.