Cellular Automata as an Example for Advanced Beginners’ Level Coding Exercises in a MOOC on Test Driven Development

Thomas Staubitz, Ralf Teusner, Christoph Meinel, Nishanth Prakash


Programming tasks are an important part of teaching computer programming as they foster students to develop essential programming skills and techniques through practice.  The design of educational problems plays a crucial role in the extent to which the experiential knowledge is imparted to the learner both in terms of quality and quantity. Badly designed tasks have been known to put-off students from practicing programming. Hence, there is a need for carefully designed problems. Cellular Automata programming lends itself as a very suitable candidate among problems designed for programming practice. In this paper, we describe how various types of problems can be designed using concepts from Cellular Automata and discuss the features which make them good practice problems with regard to instructional pedagogy. We also present a case study on a Cellular Automata programming exercise used in a MOOC on Test Driven Development using JUnit, and discuss the automated evaluation of code submissions and the feedback about the reception of this exercise by participants in this course. Finally, we suggest two ideas to facilitate an easier approach of creating such programming exercises.


programming tasks; unit testing; test driven development; MOOC; automated grading

Full Text:


International Journal of Engineering Pedagogy (iJEP) – eISSN: 2192-4880
Creative Commons License
Scopus logo ESCI logo DBLP logo EBSCO logo DOAJ logo