Challenge Assignments/alx

From Open Pattern Repository for Online Learning Systems
Jump to navigation Jump to search

Challenge Assignments
Contributors Christian Köppe, Ralph Niels, Robert Holwerda, Lars Tijsma, Niek Van Diepen, Koen Van Turnhout, René Bakker, Stijn Hoppenbrouwers
Last modification June 6, 2017
Source Köppe et al. (2015)[1]; Köppe et al. (2016)[2]
Pattern formats OPR Alexandrian
Learning domain

The standard course material that students use for preparing outside of class is ready and well-designed. You’re doing Controlled Pacing (Controlled Pacing) through a schedule and keep track of the levels of conceptual understanding of the students, e.g. as part of Preparation Status Awareness (Preparation Status Awareness).


It is hard to provide valuable in-class meetings for all students if some of them already grasped the concepts of the current level and want to run ahead of the schedule, and to learn the upcoming concepts of the course.

The more diverse the knowledge level of the students in a group, the more specific group feedback they require per level. This in consequence takes additional time, which is hard to allocate.

The better students, who are running ahead, might become bored and eventually demotivated to continue working for the course. The same goes for the more experienced students with pre-knowledge.


Therefore: Provide optional extra assignments that do not introduce new concepts, but a more complex or deeper application of the existing concepts as challenge for the better students.

Intellectual excitement is a strong motivator for the students who want to learn and not only want to pass the course. Such excitement can be stimulated through optional assignments that go beyond the standard assignment without requiring new concepts. These assignments should differ from the standard ones, as students who are faced with exercises on the same level as one they have mastered already become bored and frustrated (see also Just Enough Practice (Just Enough Practice)[3]).

There are various ways for setting up such challenge assignments:

—Extensions of other assignments, such as making the number of players for a card game flexible instead of fixed.

—Variants of other assignments, such as replacing a car traffic simulation with a train simulation, which has lots of similarities but also distinct features.

—New assignments (either teacher-defined or student-defined) that require the application of the same concepts in a new or more complex way, such as a game they like and want to develop themselves (and the implementation of such game can be realized with the already known concepts).

—The assignment could even be to support peers by explaining concepts to them they haven’t understood enough yet or to design assignments for other students.

Students who want to learn (as opposed to just wanting to pass the course) will be happy to be offered opportunities to apply their knowledge in a broader context and to work on challenging assignments that trigger their intellectual excitement.

However, as these assignments are optional, some students may still prefer to move on with the course instead of applying the already known concepts again. Especially beginning students who are often less intrinsically motivated might find it hard to recognize the added value of such challenge assignments.

In the course Structured Program Development (SPD) at HAN University, the work book contains assignments that are more complex than the obligatory exercises, but do not require the application of new concepts. A concrete example is an exercise where a small program is given that calculates all prime numbers between two given values. The concepts introduced earlier was functional decomposition, so the students had to decompose the program into smaller chunks of reusable functionality.

Challenge Assignment-alx.png
FlappyBird implementation - example of a challenge assignment for an introductory programming course

In Embedded Software Development (ESD), another first year course at HAN University in which a light weight version of flipped classroom is used, the introduction of state machines can be combined with the previous subject of using the I2C-protocol in a new assignment in which the I2C-protocol is used in a state machine.

Alternatively teachers challenge better students to develop a program of their own choice such as a (simple) game they like. An example, shown in the figure above, is an implementation of the famous “Flappy Birds" game, developed in the Processing[4] environment using only basic programming constructs and no object-orientation.


  1. Patlet first mentioned in Köppe, C., Niels, R., Holwerda, R., Tijsma, L., van Diepen, N., van Turnhout, K., Bakker, R., (2015). Flipped Classroom Patterns - Designing Valuable In-Class Meetings. In Proceedings of the 20th European Conference on Pattern Languages of Programs (EuroPLoP 2015). New York:ACM.
  2. Pattern first published in Köppe, C., Niels, R., Bakker, R., & Hoppenbreuwers, S. (2016). Flipped Classroom Patterns-Controlling the Pace. In Proceedings of the 10th Travelling Conference on Pattern Languages of Programs (VikingPLoP 2016). New York:ACM.
  3. Inventado, P.S. & Scupelli, P. (in press 2015). A Data-driven Methodology for Producing Online Learning System Design Patterns. In Proceedings of the 22nd Conference on Pattern Languages of Programs (PLoP 2015). New York:ACM.