| Fifth Workshop on Pedagogies and Tools for Assimilating Object-Oriented Concepts OOP in Introductory CS: Better Students Through Abstraction (2008) | |||||||||||||
Abstract | |||||||||||||
| Abstract thinking is difficult for many students to learn, but is a crucial component for learning computer science. We developed and implemented an OOP-first that not only teaches fundamental CS principles and abstract thinking but also inspires and motivates students to push the boundaries of their abilities. This process utilizes design patterns as a "meta-language " for discussing and emphasizing abstract concepts. This is combined with carefully constructed lecture and laboratory materials that leverage intrinsic understandings of object behavior. Students learn the power of abstractly decomposing a problem and expressing it in their designs. We exploit state-of-the-art development tools in the laboratories to help the students maintain a proper focus on the abstractions. We designed powerful and appealing programming assignments to inspire and motivate while driving home fundamental CS principles. The careful integration of many pedagogical facets results in students who possess strong abstraction skills and who can produce powerful, robust, flexible and extensible software. Position: The CS pedagogy field struggles with how to introduce OO concepts at the introductory level. Conferences abound with arguments of whether to present procedural first or OO first, specialized software teaching environments and tools, and discussions as to why OO is or is not too difficult for introductory students. | |||||||||||||
Publication details | |||||||||||||
| |||||||||||||