This in an ongoing project, now in its third year. Its purpose is to address the learning and motivational needs of more advanced undergraduate students studying programming in their first year at university. It is unusual to find any first year programming class solely composed of novices. Typically students possess a range of prior experience, which generates challenges as to the best way in which to manage and teach the class. Specific issues include how to ensure the maximum benefit and engagement for each of the participants. Maintaining motivation for both neophytes and the most experienced whilst ensuring that students receive a sound introduction to software engineering practices may be particularly difficult. Various differentiated approaches to teaching have been developed and their implemented and evaluation has been analysed and well documented. TOPS is a collaborative initiative. It was originally initiated across four universities who had already implemented specific practice to accommodate the variety of student needs; but who wanted to further develop understanding and good practice in this important area. Over time the participating group has grown incorporating a wider range of institutions, acting as a proof of concept for aninnovative and effective approach to differentiated teaching specifically addressing the needs of the more able student. The TOPS project is designed as a vehicle for educational development, building a community of practice and incorporating activities such as sharing of current practice and peer observations across universities. It uses collaborative problem setting and intra-university programming competitions as a means of extending the most-able students in programming classes. Although independent competitions can be used to motivate students, activities which are designed in the specific context of existing curriculum have greater educational strengths. Furthermore students learn as they are engaged in the collaborative task of setting a challenge to their fellow competitors. Students complete the challenges in teams of two under time-constrained conditions. Their work is presented to fellow competitors and judges with explanations of the process and decision making undertaken. The activity and judging process has been designed to retain student motivation and to promote and value the integration of professional and technical skills.