Teaching Object-Oriented programming is a core element of undergraduate software programming courses. Using a custom-developed Ontology of programming language elements as well as case studies from three institutions, this article explored the order of presentation of both procedural and abstract concepts, including Object-Orientation. The findings are considered with reference to issues raised in both current and historical literature that examines concept acquisition in this context.…