Computational thinking and mental models: From kodu to calypso

Reasoning about programs is an important component of computational thinking. Laws of computation give meaning to the formalisms in which programs are expressed, and can be used to predict or explain program behavior, or to uncover bugs. This paper presents Calypso, a language inspired by Microsoft's Kodu Game Lab but designed for programming actual mobile robots rather than characters in a virtual world. The initial implementation of Calypso uses the Cozmo robot by Anki. Like Kodu, the Calypso interpreter can be described by five key laws. An understanding of the laws and how to apply them constitutes a mental model of computation. Calypso provides a variety of affordances and scaffolding techniques to foster development of effective mental models and facilitate computational thinking.

[1]  Allen Newell,et al.  SOAR: An Architecture for General Intelligence , 1987, Artif. Intell..

[2]  Tim O'Shea,et al.  The black box inside the glass box: presenting computing concepts to novices , 1999, Int. J. Hum. Comput. Stud..

[3]  Steven M. LaValle,et al.  RRT-connect: An efficient approach to single-query path planning , 2000, Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065).

[4]  Alexander Repenning,et al.  Computational Thinking Patterns. , 2011 .

[5]  Matthew MacLaurin,et al.  The design of kodu: a tiny visual programming language for children on the Xbox 360 , 2011, POPL '11.

[6]  Kathryn T. Stolee,et al.  Expressing computer science concepts through Kodu game lab , 2011, SIGCSE.

[7]  Alexander Repenning Conversational programming: exploring interactive program analysis , 2013, Onward!.

[8]  Francisco José Madrid-Cuevas,et al.  Automatic generation and detection of highly reliable fiducial markers under occlusion , 2014, Pattern Recognit..

[9]  David S. Touretzky,et al.  Teaching Kodu with physical manipulatives , 2014, Inroads.

[10]  David S. Touretzky,et al.  Teaching "Lawfulness" With Kodu , 2016, SIGCSE.

[11]  Alexander Repenning,et al.  Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in AgentSheets , 2017, J. Vis. Lang. Sentient Syst..

[12]  David S. Touretzky,et al.  Semantic Reasoning in Young Programmers , 2017, SIGCSE.