Teacher Configurable Coding Challenges for Block Languages Nath
Teacher Configurable Coding Challenges for Block Languages Nath Tumlin University of Alabama, Department of Computer Science This project was partially supported by NSF grant 1240944. ngtumlin@crimson. ua. edu Abstract COPPER (Cust. Omizable Puzzle Programming Envi. Ronment) is a meta-configurable tool for creating coding puzzles on a grid using a blocks-based programming language, similar to puzzles in Code. org’s Hour of Code. COPPER allows teachers to create customized levels and characters to better address specific students needs, increase engagement among their students, and integrate Computer Science Education with other subjects. Students solve these puzzles by coding behavior of a character with Google’s Blockly [1], a meta environment for creating block-based programming languages. The student’s program is then generated into Java. Script and evaluated move by move to show the student how their solution moves the character through the level. Example usage of COPPER Step 1: A teacher creates a character to be used in a new customized puzzle level. color. Table["rock"] = "black"; image. Table["rock"] = "http: //www. clipartkid. com/images/195/stone-clipart-panda-free-clipart-images-VAYEBl-clipart. png"; generator. Table["rock"] = function* () { while (true) { yield {name: 'move', direction: 'nowhere'}; } }; squishable. Table["rock"] = undefined; Motivation and Research Methods Code. org’s coding puzzles (e. g. , Hour of Code) have been used with great success by millions of students. However, Code. org puzzles are static in that teachers have no control over their design or appearance. COPPER aims to improve upon this style of puzzlebased learning with the following approaches: • Allow teachers to customize the appearance and behavior of characters within levels • Allow teachers to customize the design of levels • Enable teachers to share their levels and characters, and to build upon those created by others • Use a block-based language to assist student understanding • Provide tools for teachers to create levels not specific to computer science, but also as reinforcements in other subjects (e. g. , History) Background Research Block-based languages have many advantages over text-based languages for students learning how to program. Many students find that the syntax of textbased languages is confusing, and prefer block-based alternatives [3]. Three barriers that beginning programmers encounter are selection of proper constructs to accomplish their intended task, correctly using a construct once identified, and coordinating multiple constructs to work together [2]. Block languages help students overcome these barriers by allowing them to recognize blocks instead of recalling syntax, breaking code into logically separate chunks, and preventing blocks from being assembled into invalid configurations [4]. Step 2: The teacher uses that character and others to build a customized puzzle level for students. { "player. Row": 0, "player. Col": 4, "rows": 3, "cols": 5, "background": "#2980 b 9", "entities": [ {"type": "question", "row": 2, "col": 2, "question": {"question": "What year did Christopher Columbus set sail? ", "answer": "1492"}}, {"type": "goal", "row": 0, "col": 0, "question": {}}, {"type": "rock", "row": 0, "col": 2, "question": {}}, {"type": "rock", "row": 1, "col": 2, "question": {}}] } Step 3: A student uses Blockly to code a solution to the teacher-created code puzzle. (function *() { var i; yield {name: 'highlight', arg: '~Bx. Df|b-w. Rn 7 q{bvd^v('}; yield {name: 'highlight', arg: 'K|ehu. Kq, -cs 2 V 17 w[l. MD'}; yield {name: 'move', direction: 'down'}; yield {name: 'highlight', arg: 'U; (d!; S~|-X[0 o 0 d: TDf'}; yield {name: 'move', direction: 'down'}; yield {name: 'highlight', arg: 'Px 2!: Ts}v. RSe. HVEv. RLZD'}; for (i = 1; i <= 4; i++) { yield {name: 'highlight', arg: '@ZTq. GUBl; da. Qq. Oy!u/0, '}; yield {name: 'move', direction: 'left'}; yield {name: 'highlight', arg: 'Px 2!: Ts}v. RSe. HVEv. RLZD'}; } yield {name: 'highlight', arg: ': Kr. H{pu 2 fx 1]]TED[RG*'}; yield {name: 'move', direction: 'up'}; yield {name: 'highlight', arg: '`ecen. WYJ 1 aj. DEBn^]+, A'}; yield {name: 'move', direction: 'up'}; } ). bind(level. player)(); Background Research (Continued) Using puzzles to teach computer science concepts has been shown in some cases to be more effective than simple tutorials for K 12 students. Students who learn with puzzles instead of tutorials, which typically attempt to walk a student through certain steps and avoid any errors, exert more mental effort and perform better on transfer tests on the topics covered and complete these tests in a shorter amount of time [5]. Current Status Currently, COPPER exists as a web application, though it is not publicly available. The creation of custom levels and characters is fully supported. Additionally, COPPER supports the creation of teacher and student accounts with the ability for teachers to monitor their students’ progress and share levels and characters. This teacher collaboration feature is helpful both to save educators time, and to allow teachers to begin using COPPER without needing to be an expert in Computer Science themselves. Future Work COPPER will soon be released publicly on the web for K 12 teachers worldwide. Further work includes inclassroom studies to test the effectiveness of COPPER compared to existing methods of teaching introductory programming, as well as its ease of use and enjoyability for students. References [1] Blockly Overview – https: //developers. google. com/blockly/guides/overview [2] A. J. Ko, B. A. Myers, and H. H. Aung, “Six learning barriers in end-user programming systems, ” IEEE Symposium on Visual Languages and Human Centric Computing (VL/HCC), 2004, pp 199 -206. [3] D. Weintrop and U. Wilensky, “To block or not to block, that is the question: Students’ perceptions of blocksbased programming, ” International Conference on Interaction Design and Children, 2015, pp. 199 -208. [4] D. Bau, J. Gray, C. Kelleher, J. Sheldon, F. Turbak, “Learnable Programming: Blocks and Beyond, ” Communications of the ACM, accepted and in publication. [5] K. J. Harms, N. Rowlett and C. Kelleher, "Enabling independent learning of programming concepts through programming completion puzzles, " IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2015, pp. 271 -279.
- Slides: 1