Abstract: The prevailing paradigm in teaching elementary programming uses Java as the first programming language and the “objects first” approach as the conceptual basis. This approach has several shortcomings, e.g., high drop-out rates and poor skills in basic constructs like loops. This paper suggests an alternative approach that combines a strong start in basic constructs with early object-orientation. The key idea of our approach is to start with concepts that are common to both procedural and object-oriented programming, i.e., basic control and data structures and a simple form of the interplay between responsibility and implementation. Only then various abstraction mechanisms— procedural, functional, object-oriented, and data as well as the interplay between responsibility and implementation in these abstractions—will be introduced. The alternative approach is also compared with the ACM Computing Curricula.
PPIG 2006 - 18th Annual Workshop
Teaching Programming: Going beyond “Objects First”