Teaching abstract modelling specifically class and entity relationship diagrams remains a persistent challenge in undergraduate computing. Even in project-based courses focused on providing hands-on experience, beginners frequently replicate patterns, complicate models unnecessarily, or incorrectly apply relationships without explaining the reasoning behind their decisions. This opinion piece discusses our experiences in teaching database and software design in two first-year courses a…
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.…