  One the major challenges in undergraduate computing programs is the learning
of object-oriented programming (OOP). This paradigm has a variety of concepts
with an abstraction level usually high for most beginners, even the ones who
already code in an imperative language. Furthermore, transitioning from
imperative programming to OOP is a complex issue, with various inappropriate
side effects. A significant effort has been pursued in the search of motivating
and attractive solutions for such issues. One of those is the use of playful
environments that merge games with learning. In this work, we report our
experience with OOP learning workshops by means of games, challenges and
competitions, supported by Greenfoot and Robocode learning environments. A
workshop with sophomore students in a Computer Engineering program is presented
here. Lessons learning to motive students include: design of motivating
examples, use of competitive challenges, and an appropriate ratio between
tutors and students. Results suggest that the workshop was a practical and
effective way to introduce OOP and motivate students to learn it.
