Teaching Programming: Going beyond "Objects First"
Jorma Sajaniemi, Chenglie Hu · 2006
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. 1