Teacher Configurable Coding Challenges for Block Languages

Slides:



Advertisements
Similar presentations
The Chinese Room: Understanding and Correcting Machine Translation This work has been supported by NSF Grants IIS Solution: The Chinese Room Conclusions.
Advertisements

Natalie Fong English Centre, The University of Hong Kong Good Practices in a Second Language Classroom: An Alternating Use of ICT in Independent Learning.
Towards Adaptive Web-Based Learning Systems Katerina Georgouli, MSc, PhD Associate Professor T.E.I. of Athens Dept. of Informatics Tempus.
A Step Back from Coding An Online Environment and Pedagogy for Novice Programmers Andrew Scott, Mike Watkins, Duncan McPhee. University of Glamorgan
Differentiated Instruction
An Integrated Solution for Web-based Mathematical Expression Inputting Wei Su Department of Computer Science, Lanzhou University, PRC Department of Computer.
Developing Intelligent Agents and Multiagent Systems for Educational Applications Leen-Kiat Soh Department of Computer Science and Engineering University.
Website Resources Putting students first to make learning last a lifetime Celebrating academics, diversity, and innovation.
PROGRAMMING LEARNING: DIFFICULTIES AND SUPPORT TOOLS António José Mendes – University of Coimbra.
Software Configuration Management (SCM)
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
2012 National BDPA Technology Conference Creating Rich Data Visualizations using the Google API Yolanda M. Davis Senior Software Engineer AdvancED August.
Qatar University Exemplary Online Course Award
LEARNING THEORIES LEARNING THEORIES. Behaviorist theories  Behavior was defined as a muscle movement a result of a series of condition reflexes, and.
Universal Design for Learning Cindy M. Szulewski-Booth, M.S. CCC/SLP AT Specialist.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Se Over the past decade, there has been an increased interest in providing new environments for teaching children about computer programming. This has.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Is the technology developmentally appropriate? Evaluation Tool Educational Value Is the content based on research/standards? Does the software follow the.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
CMPUT 301: Lecture 27 Help and Documentation Martin Jagersand Department of Computing Science University of Alberta.
1 The Design of Multimedia Assessment Objects Gavin Sim, Stephanie Strong and Phil Holifield.
Human Computer Interaction
Implementing Inquiry Based Science Teaching Through Teacher Networks The SINUS model for educational development in Germany Matthias Stadler, Kiel (Germany)
User Support Chapter 8. Overview Assumption/IDEALLY: If a system is properly design, it should be completely of ease to use, thus user will require little.
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
Department of Computer Science Internet Performance Measurements using Firefox Extensions Scot L. DeDeo Professor Craig Wills.
Melissa Nelson EDU 521 Fall First Grade Standards Whole Class KWLLearning Centers Small Groups Math : Determine and compare sets of pennies.
WORD PROCESSOR AND POWER POINT IN THE CLASSROOM. A word processing and power point program does not require highly advanced hardware. This means that.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Copyright © 2012 MICS‘12 and Curt Hill Development Systems: A Review Curt Hill Professor of Math and Computer Science Valley City State University
Google Earth INTEGRATING GLOBAL THINKING. Why Use Virtual Tours? Flexible Tool: History, Science, Math, English, etc. An Interactive Way to Explore Supports.
Using Document Collaboration, Integration, and Charting Tools
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Interactive Multi-Media Projects & Problem-Based Learning Engaging Students in Their Learning.
COLLABORATIVE WEB 2.0 TOOLS IN EDUCATION USING WIKIS & BLOGS IN THE CLASSROOM.
Code Tools for Schools Adam Carr from Bridge Creek High School.
Universal Design for Learning Cindy M. Szulewski-Booth, M.S. CCC/SLP AT Specialist.
SAM Learning GO! An Overview for Teachers. SAM Learning GO! Objective Raising attainment throughout the school year by providing student and teacher support.
Mind Mapping Software: Uses and Benefits for Education.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Genie Pal A Versatile Intelligent Assistant To Help Both Work And Personal life.
Mathematics Teaching at Christ Church
Active Learning.
Chapter 6 : User interface design
AP CSP: Creating Functions & Top-Down Design
JavaScript/ App Lab Programming:
Assessment and Reporting Without Levels February 2016
Dronely: A Visual Block Programming Language for the Control of Drones
Working in Groups in Canvas
Learning Model for English 2-8 grades
SigCSE :00 am NSF CCLI Showcase Thursday, March 2, 2006
Teaching Roles for Instructional Software
CharacterCreator: An Educational 3D Modeling Application
DASLab Hypothesis on Robotic Gaming and STEM Interest Motivation
Computational Thinking in the Classroom
Introduction CSE 1310 – Introduction to Computers and Programming
Jeliot 3 Spring 2004 Andrés Moreno García Niko Myller
A Digital Age Skill for All
1 Oregon State University
Displaying Form Validation Info
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Coding and Computational Thinking in the Elementary Classroom
UMass Lowell Dept. of Computer Science  Graduate School of Education
System And Application Software
Programming for Visually Impaired Learners
Game2Learn Alex Godwin.
Learner Characteristic and ICT in the Classroom
Partners with Business
MyFloridaMarketPlace Change Review Board (CRB)
Presentation transcript:

Teacher Configurable Coding Challenges for Block Languages Nath Tumlin University of Alabama, Department of Computer Science ngtumlin@crimson.ua.edu This project was partially supported by NSF grant 1240944. 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"] = "http://www.clipartkid.com/images/195/stone-clipart-clipart-panda-free-clipart-images-VAYEBl-clipart.png"; 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 {name:'highlight',arg:'@ZTqGUBl;daQqOy!u/0,'}; 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 – 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 blocks-based 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. 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