Sunday, March 5, 2017

Computational Thinking

Check out my first piece of *artwork* at code.org...

...or reminisce on past Christmases with my completed Holiday Tree from Trinket!



Define computational thinking and describe at least five skills included in computational thinking.
     Computational Thinking (CT) is at the core of my life’s work.  In fact, it’s the basis of the Common Core State Standards of Mathematics (CCSS-M), specifically the Standards for Mathematical Practice.  “…Computational Thinking refers to thought processes that are involved when solving complex problems and generalizing and transferring this problem solving process to a wide variety of problems” (Voogt, Fisser, Good, Mishra, & Yadav, 2015).  My job as a math coach involves giving teachers and students research-based strategies for attacking problems.  We take problems apart, analyze them, discuss what’s happening and create a solution strategy.  This is CT.
     There are four major facets of CT. 
1.      Decomposition: breaking down a problem or task into smaller pieces.
2.      Pattern Recognition: finding similarities and differences to make predictions.
3.      Abstraction: generalizing patterns.
4.      Algorithm Design: developing step-by-step instructions (2015).
     A host of skills are embedded within these four facets, including logical analysis and organization of data; modeling, abstractions, and simulations; identifying, testing, and implementing possible solutions; and making complex ideas understandable with data visualization, imagery, succinct narrative, and communication (Johnson, Adams Becker, Estrada, & Freeman, 2014).  

Describe an activity that can promote each of the five skills of computational thinking.
     There is much debate on the actual definition of CT.  Because of this, not everyone agrees on five specific skills.  The International Society for Technology in Education (ISTE), along with The Computer Science Teachers Association (CSTA), published Computational Thinking Teacher Resources as a set of “materials to help educators understand, value, and implement computational thinking in K–12 education” (ISTE, 2014).  The materials include a section that defines CT in K-12 education, a CT progressions chart, a collection of CT lesson plans, and a narrative scenario.  The progression chart is organized by skill, providing a sample activity for each grade band to help develop each particular skill.  The progression includes nine specific skills.  Below are five that I focus on most frequently, along with an appropriate middle-school-level activity.
ISTE-identified Skill
ISTE Definition
ISTE Sample Activity for Grades 6-8
Data Analysis
Making sense of data, finding patterns, and drawing conclusions.
Produce and evaluate charts from data generated by a digital probe and describe trends, patterns, variations, and/or outliers represented in the charts.
Data Representation
Depicting and organizing data in appropriate graphs, charts, words, or images.
Plot data using different charting formats and select the most effective visual representation strategy.
Problem Decomposition
Breaking down tasks into smaller, manageable parts.
In planning the publication of a monthly newsletter, identify roles, responsibilities, timelines and resources needed to complete the project.
Abstraction
Reducing complexity to define the main idea.
After studying a period in history, identify symbols, themes, events, key people, and values that are most representative of the time period.
Algorithms and Procedures
A series of ordered steps.
Program a robot to find its way out of a maze such that any given maze, the robot could exit successfully within a specified time period.

Explain a rationale for integrating computational thinking in the classroom.
     Computational Thinking empowers students because it honors their own ideas and the knowledge they bring to a problem-solving situation.  When examining the tenets of CT, it becomes apparent that what it looks like is unique to each field; unique to each individual.  Students need time to identify their CT strengths and weaknesses.  They also need opportunities to experiment and grow.  These opportunities exceed math and computer classrooms.  “[Computational Thinking] is an important competency and influences nearly all disciplines” (Voogt, Fisser, Good, Mishra, & Yadav, 2015). 

Describe some of the pedagogical concerns of integrating computational thinking in different disciplines.
     Assumptions made about Computational Thinking prevent it from being developed in classrooms in content-areas beyond math and computer science.  The initial assumption is that it is only applicable to experiences involving computers.  This is largely due to the ignorance of the definition of CT.  Another assumption?  Some think CT is too abstract, prior to Grade 8.  This shows a clear misunderstanding of what CT is, while displaying a need for teacher professional development (PD).  A solid body of grounded, research-based knowledge about how aspects of CT map to brain development doesn’t exist (National Research Council, 2011).  Because of this, it might be difficult to get districts to invest in professional development on CT.  The push for PD will need to originate from the teachers, and this will not happen until they have a true understanding of what CT is and what it looks like in their content-area.  Once they understand that CT is unpacking problems and laying them out into manageable pieces, it will take a higher priority in the classroom.


Describe the computational skills you used while creating the two programs in Code Studio and Trinket and describe the kinds of challenges you faced while learning to code in the different platforms.
 I can provide evidence of each stage of Computational Thinking throughout my experiences in Code Studio and Trinket.  Each stage happened multiple times throughout the course of my time in each coding platform.  New problems presented themselves as my work became more in-depth, leading me through the process in a continuous manner.
Decomposition
Code Studio led me to realize I didn’t know what Blockly was, so that was my first foray into unpacking a coding problem.  Once I learned that Blockly was a nice way to create Javascript, I had a basic understanding of how Blockly functions.  Next, I had to consider how each block fit together and what that meant for the task I was trying to accomplish.  Every time I was introduced to a new block, I had to repeat the same process.  My coding adventures in Trinket revolved around Python.  I had to acclimate myself to the language of Python before I could work through any task.  When working through Holiday Tree, I wasn’t sure if I needed to start each line with ‘turtle’.  Once I had the problems unpacked (Decomposition), I began to rely on patterns.   
Pattern Recognition, Abstraction, and Algorithms
Pattern Recognition allowed me to become a more efficient coder.  In both Code Studio and Trinket, I very quickly realized I could copy-and-paste code.  This was helpful because I noticed much of the code was repetitive.  Abstraction is generalizing a pattern.  In Holiday Tree, I was able to copy-and-paste the code for one dot twenty times.  Then, I would adjust the coordinates and the color.  This is an example of an algorithm.  Algorithms are user-created steps to solve a problem.  Dr. Lambert required a minimum of 15 dots on the tree.  The steps for moving the turtle and creating the dot were the same, regardless of color, size, or location.  The cycle of Pattern Recognition, Abstraction, and Algorithm-development are interlocking and continuous, no matter the problem being solved.
Challenges
Oh, the challenges!  Once I figured out how block coding worked, I was fairly successful in Code Studio.  However, I never figured out how the function block worked.  I had to bypass it, altogether.  I was afraid my code wouldn’t work with a huge, empty function block in the work space.  I tried to drag the block over to the trash can to delete it but it wouldn’t work.  I decided to shrug my shoulders and move on with life.  Once I began working in Trinket, my true frustrations surfaced.  As an Algebra Coach, my days are spent in the coordinate plane.  I used mathematical reasoning to determine the distance between coordinates Trinket gave me for the left vertex of the triangle and the right vertex, as well as the points-of-intersection for the base of the triangle and the sides of the square.  This allowed me to find the mid-point of the triangle.  Why was this important?  I wanted my dot at the top of the tree to be centered.  All of this logic was (almost) a waste.  The coordinate plane that Trinket operates on doesn’t mirror a true coordinate plane.  This became apparent as I began to mathematically space my dots on the triangle.  The coordinates that should have worked, based on the mathematics of the base of the triangle, didn’t.  I began a series of trial-and-error coordinate entry, observing the change in the location between points as I ran the code again.  This felt inefficient, and I wished there was an option to overlay the coordinate plane so I could see it.  Again, I realized I wasn’t in control of the situation and worked with what I had.  If I could have move past trial-and-error coordinate entry, I would have felt more satisfied with the process.  
 
Resources
G. (2015, June 18). What is computational thinking? Retrieved February 26, 2017, from https://www.youtube.com/watch?time_continue=337&v=sxUJKn6TJOI
ISTE. (2014). Computational thinking: teacher resources. Retrieved February 26, 2017, from http://www.iste.org/docs/ct-documents/ct-teacher-resources_2ed-pdf.pdf?sfvrsn=2
Johnson, L., Adams Becker, S., Estrada, V., & Freeman, A. (2014). NMC horizon report > 2014 k-12 edition. Retrieved February 26, 2017, from http://www.nmc.org/publication/nmc-horizon-report-2014-k-12-edition/
National Research Council. (2011). Report of a workshop of pedagogical aspects of computational thinking. Washington, D.C.: National Academies Press. doi: https://doi.org/10.17226/13170
Voogt, J., Fisser, P., Good, J., Mishra, P., & Yadav, A. (2015). Computational thinking in compulsory education: towards an agenda for research and practice. Education and Information Technologies, 20(4), 715-728. doi:10.1007/s10639-015-9412-6


1 comment:

  1. Melissa,

    You did a great job! I know at first I thought what is this and how am I going to do this? It took quite a bit of time, but like you, once I figured out that I could copy and paste, that definitely helped. I also had trouble at first getting the bulb on the top of the tree. I then realized that the goto numbers were what directed that. The more negative the higher and the less negative the lower. I struggled the most with filling in the tree, but when I figured that out, it was probably the easiest. I am so glad we had this assignment I have not complete a project like this since high school!

    ReplyDelete