Presentation is loading. Please wait.

Presentation is loading. Please wait.

Teacher Configurable Coding Challenges for Block Languages

Similar presentations


Presentation on theme: "Teacher Configurable Coding Challenges for Block Languages"— Presentation transcript:

1 Teacher Configurable Coding Challenges for Block Languages
Nath Tumlin University of Alabama, Department of Computer Science This project was partially supported by NSF grant COPPER (CustOmizable Puzzle Programming EnviRonment) 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 JavaScript and evaluated move by move to show the student how their solution moves the character through the level. Abstract Example usage of COPPER Background Research (Continued) Using puzzles to teach computer science concepts has been shown in some cases to be more effective than simple tutorials for K12 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]. Step 1: A teacher creates a character to be used in a new customized puzzle level. colorTable["rock"] = "black"; imageTable["rock"] = " generatorTable["rock"] = function* () { while (true) { yield {name:'move', direction:'nowhere'}; } }; squishableTable["rock"] = undefined; 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. Current Status 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 puzzle-based 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) Motivation and Research Methods Step 2: The teacher uses that character and others to build a customized puzzle level for students. { "playerRow":0, "playerCol":4, "rows":3, "cols":5, "background": "#2980b9", "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":{}}] } COPPER will soon be released publicly on the web for K12 teachers worldwide. Further work includes in-classroom 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. Future Work Step 3: A student uses Blockly to code a solution to the teacher-created code puzzle. (function *() { var i; yield {name:'highlight',arg:'~BxDf|b-wRn7q{bvd^v('}; yield {name:'highlight',arg:'K|ehuKq,-cs2V17w[lMD'}; yield {name:'move', direction:'down'}; yield {name:'highlight',arg:'U;(d!;S~|-X[0o0d:TDf'}; yield {name:'highlight',arg:'Px2!:Ts}vRSeHVEvRLZD'}; for (i = 1; i <= 4; i++) { yield yield {name:'move', direction:'left'}; } yield {name:'highlight',arg:':KrH{pu2fx1]]TED[RG*'}; yield {name:'move', direction:'up'}; yield {name:'highlight',arg:'`ecenWYJ1ajDEBn^]+,A'}; } ).bind(level.player)(); [1] Blockly 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 [3] D. Weintrop and U. Wilensky, “To block or not to block, that is the question: Students’ perceptions of blocks-based programming,” International Conference on Interaction Design and Children, 2015, pp [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 References Block-based languages have many advantages over text-based languages for students learning how to program. Many students find that the syntax of text-based 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]. Background Research


Download ppt "Teacher Configurable Coding Challenges for Block Languages"

Similar presentations


Ads by Google