Ask HN: Where to Find Programming Challenges for Object-Oriented Design

3 points by linguae 8 hours ago | 0 comments

Hello. I am a brand new professor at a community college teaching freshman- and sophomore-level computer science courses with nine years of industry research experience after graduate school. My courses are in C++ and roughly correspond to the ACM's CS 1 (introduction to procedural programming), CS 1.5 (introduction to object-oriented programming), and CS 2 (data structures and algorithms). I am able to easily create and find exercises for my CS 1 and CS 2 courses; the department's recommended textbook has many good exercises for CS 1, and I'm able to draw upon many good resources for CS 2 since there are many good algorithm and data structure textbooks out there.

However, I'm having a hard time finding and coming up with good exercises for CS 1.5, which focuses on teaching object-oriented concepts such as inheritance and polymorphism. I am disappointed with the quality of the textbook's exercises for inheritance and polymorphism (they are too simple), and while there are many good textbooks on object-oriented design such as the Gang of Four's Design Patterns and Object-Oriented Analysis and Design with Applications, they seem to be geared toward experienced programmers, not those who recently passed CS 1 and who are just learning what classes, inheritance, and polymorphism are.

There are many programming challenge books that focus on either procedural programming or honing one's problem-solving skills (think competitive programming or LeetCode-style interviews), but I'm having a hard time finding level-appropriate resources that evaluate how well students can design object-oriented programs. What are some good resources that I could use?