By Steve Floyd
In the grade 12 Computer Programming and Computer Science courses our students often create programs that read in data from a file, sort the data and output the data in a user friendly format. These projects help students develop and review a number of important skills including:
- data structures (arrays, lists);
- repetition (loops);
- conditional statements (if statements);
- user interfaces; and
- input and output files.
With the coming age of Big Data and the Internet of Things, we've recently extended these projects by asking students:
Can you design and program an algorithm that will draw conclusions from your data?
This question attempts to extend the students' computer programming and computer science skills and asks them to refine a set of thought processes that we often refer to as Computational Thinking (CT).
Aho describes CT as “the thought processes involved in formulating problems so their solutions can be represented as computational steps and algorithms” (Aho, 2011).
Using computer programming and computer science concepts to draw conclusions from data provides a rich and valuable context for the development of CT skills. In addition, these are skills that will be required in many aspects of research and professional work.
In our classes students have attempted to draw conclusions from weather and flight data, as well as from sports statistics (when are professional soccer teams most likely to score? how much did each professional baseball team pay per home run in a given season?). The broad spectrum of data files analyzed in our courses have allowed students to investigate topics close to their hearts while understanding how data can impact all areas of our lives.
Researchers Sanford and Naidu (2016) believe that almost “every avenue of science, engineering, and general business employs digital computation”. It is with computation that we can extract “knowledge from vast quantities of data, or mathematical solutions unavailable through other means” (Sanford & Naidu, 2016, p. 1)
“Computation has proved to be so productive for advancement of science and engineering that virtually every field of science and engineering has developed a computational branch. In many fields, the computational branch has grown to constitute the majority of the field. For example, in 2001 David Baltimore, Nobel Laureate in Biology, said that biology is an information science.” (Denning, 2017, p. 14)
CT in our K-8 Classrooms
As a high school computer science teacher, I’ve often pondered…
How can we engage younger students in these types of activities?
How can students in elementary schools understand the importance of learning how to record, manipulate and draw conclusions from data using computers?
In the fall of 2017, Richard Annesley, a colleague and friend, asked if I would be interested in learning more about a project he was starting within his elementary school. Richard had been speaking to Luigi Sorbara, whose children attend Rich’s school. As a computer scientist, Luigi believes it is crucial to increase young people’s exposure to coding and computer science.
I had the pleasure to meet with Luigi and learned that he is a Basketball Statistician and Application Developer. He had been thinking about ways to introduce children to computer science in an authentic and meaningful way using block-based coding. He shared his ideas with myself and a number of educators within the school. We were amazed and excited at the potential of this project, which involves a cross-curricular approach, for the students’ learning.
Luigi developed a Scratch program that reads in data related to 1000 shots taken by Steph Curry over a two-season period (yes, Scratch can read in data files!). The program displays each shot, as either a make or a miss, on a basketball court diagram created as a backdrop in Scratch.
The following is a video describing the program:
After being given a copy of the program, and playing around with the statistics of a few other players (Valenciunas for three!), it was clear that this project idea would have value in terms of bringing the ideas of CT, data manipulation and drawing conclusions from data to students in younger grades, not to mention the potential to connect physical education, mathematics and sport.
Luigi has since shared another program in Scratch that plots Clayton Kershaw’s Game 7 World Series pitch locations. He has also been working with intermediate students as they use Python to process and display sports performance data.
I believe that programs like this will be able to capture students’ imaginations and motivate them to want to draw conclusions from the data. Perhaps students will want to create programs that can record and analyze data from other sports or even other fields.
Can students think of other sports where data can help player performance? Can they define algorithms that would answer questions related to other sports? Can students create a program to keep track of the locations of successful and unsuccessful soccer penalty shots? Can they please provide this data to England’s national team?
Richard and Luigi are continuing their work with this program and with finding ways to bring CT to younger students. Their students have designed a coordinate system for their gymnasium floor in order to record the locations of made and missed shots and they're developing software that will allow them to input data using the Scratch programming environment.
Why CT in K-8?
I don’t believe that the value of such projects is solely in the final conclusions drawn from the data (although the Warrior’s Western Conference opponents might disagree). The real value is in having students attempt to develop algorithms or queries that can be automated and executed by the computer. This encourages clarity of thought, precision in instructions and assumption avoidance.
CT will play a part in most fields and a wide variety of areas in our lives. Projects such as this can help students understand the importance of data and facilitate the development of skills needed to draw important conclusions from this data. It also introduces them to a wide variety of fields of study and potential careers.
In addition, these types of projects allow students to engage in topics such as the Internet of Things and Big Data. Students become aware that a tremendous amount of data already exists, and of course much more is generated by the minute. Providing them with opportunities to engage with this data and to think computationally at a young age will help them to:
- Identify what type of data is valuable and should be recorded;
- Determine what type of queries should be made in order to draw conclusions from the data;
- Design algorithms that allow for those queries to be implemented.
A. V. Aho, “Ubiquity symposium: Computation and Computational Thinking.” Ubiquity, Volume 2011, Issue January, 2011.
Denning, J. Computational Thinking in Science, American Scientist. Available at https://www.americanscientist.org/article/computational-thinking-in-science
Sanford, J. F. & Naidu. 2016, Computational Thinking Concepts for Grade School. Contemporary Issues in Education Research. Volume 9, Number 1. First Quarter 2016.
Richard Annesley (@richannesley) is a grade 6 teacher at St. Theresa Catholic Elementary School in London, ON. He works on a number of projects related to coding and computational thinking, but is also interested in having students participate in experiential learning initiatives to improve their communities. He does not have a computer science background but enjoys the humbling challenge of learning alongside and from students. He believes that computational thinking provides students with an outlet to problem solve and use their creativity.
Luigi Sorbara (@teachcodecreate) is a Basketball Statistician and Application Developer with the Boston Celtics and a Waterloo University Grad in Applied Mathematics and Scientific Computation. He has enjoyed the challenge of bringing computational thinking and coding into the classroom through sports-related data.