The following themes will serve as a starting point for discussions. From our experience, they may certainly evolve to various directions.

- The integration of computational thinking and mathematics teaching and learning in preschool to undergraduate, and teacher education settings.
- Research-based understandings of the interplay between the affordances of computational thinking and mathematics.
- Practice-based understandings (and theorizing about these understandings) of the nature of exemplary tasks, pedagogical models, instructional materials and resources, and assessment practices.

As a start, a few random thoughts …

So I come to this Computational Thinking in Mathematics Education page, and see a photo of a small class of students seated in front of computers, five of them working with Scratch (if you see a different picture, keep refreshing the page, it will show). I immediately notice something weird – there is no paper! No books or notebooks, no thoughts, ideas, or diagrams recorded on this centuries-old medium (actually, there are two sheets of paper, possibly teacher’s instructions for the project students are working on). The reason I qualified my experience as weird is that I cannot imagine my life as a mathematician, or as a mathematics teacher, without scribbling, drawing, doodling, sketching, connecting, computing, or experimenting on pieces of paper.

But the class in the photo is not a mathematics class—students are working with computer code. Hence an obvious question, and one of the themes of the Symposium: how do we teach coding (programming), and computational thinking in general, and how do students learn it best? What can we borrow from mathematics education research, and what needs to be rethought, changed, modified, re-created? If we are to integrate computational thinking into curriculum (very likely into mathematics curriculum first), we definitely need to address these important questions.

(To be fair: the photo shows students working on only one aspect of computational thinking, the one that requires the use of a computer. Unfortunately, in media, both on- and off-line, computational thinking and coding are often viewed as one and the same thing. We must change this perception.)

Back to paper (or no paper). For the past few years I have been teaching an upper-level problem-solving course for math and stats majors. As the course includes paper-and-pencil problem-problem solving activities as well as investigations using programming (we use Python), I am able to contrast the two, as well as observe the differences in students’ behaviour and attitudes.

The existence (or absence) of a record of student’s work is one obvious difference. Pencil and paper often preserve a history of attempts, decisions, experiments, and reflections related to a problem. However, when working on a computer, students routinely overwrite (erroneous, or correct!) code, or delete attempts that do not yield a satisfactory outcome. Experienced programmer’s routine of keeping track of versions of the code does not come naturally to them, and needs to be enforced.

On paper, students seem to be reluctant to experiment, however with a computer, that’s what they naturally do most of the time! When programming, students do not seem to be afraid to make mistakes; working on paper, they are less adventurous. In other words, they are at home with “let’s see how this will work” when programming, but, unfortunately, not as much when they use pencil and paper.

Having said that—my experience in working with students suggests that programming works best when both paper and pencil and computer are used when/as appropriate. Before starting to code, students need to make sure that they internalize the problem they are working on, as well as understand the program design—in particular, the algorithm(s) they are about to use. Students need time to learn how to prepare (“repackage”) a math problem for exploration using programming. Visual approaches, such as using flow charts, turn out to be extremely helpful. One of my students told me that, for him, learning and using flow charts drawn on paper was the most important and useful part of my course.

The issues that are only briefly outlined here are among many living in a rich, yet still unexplored ecosystem where mathematics and programming co-exist, and which are of great interest for developing adequate teaching practices.

Dear Miroslav

I enjoyed reading your good comments. You have given us lots of food for thought. I agree with the points you make, and I always have pencil and paper for designing and sketching as part of my STEM activities. There are, of course, lots of rich computational thinking and early coding experience for young children before they face a computer screen. A colleague and I have started to explore Bee Bots and Blue Bots with 3-4 year olds; the math and other STEM integration with early programming is very rich. I look forward to sharing and learning with you and other colleagues at the symposium.

Best wishes

Lyn English

Dear Lyn, thank you! Looking forward to meeting you in October. Lots of things to talk about.

Message to organizers: make sure to organize (at least) wine and/or beer to further stimulate discussions about conference themes. Thank you!

Another thing I would like to discuss are actual coding class instruction strategies. In my problem-solving class, I reduced lecturing to a minimum – it took me about 30 minutes to introduce Python, which I organized as a 6-page handout with basic input/output commands, conditional statements, loops, numbers, etc. For any further help, students were encouraged to talk to their peers, or to consult well-written online Python manuals. As well, I suggested that they look at any related code they could find, and modify (tinker!) as needed. Did it work? It seems that it did, for some. In teaching evaluations, some students told me that they would have appreciated “more lecturing about Python,” as “they were not sure about many concepts.” My colleague teaches a level 1 Python programming course mostly by lecturing (one reason being the class size of 150, and the room which is not at all suitable for any kind of group/peer support work). So, where is a good balance?

Thank you Miroslav. I look forward to further discussions with you in October.

You raise an interesting point re balance between “lecturing” and more problem-solving approaches. I liked to incorporate both in my undergrad university teaching, but not in a large lecture theatre. I prefer plenty of interactions and “hands-on” experiences, interspersed with my “lecturing.” This approach works best in smaller student groups of 30-35 (a luxury these days, though.) But the issues goes deeper than this.

There are clearly many further issues to discuss and no doubt many more from the symposium itself….and yes some wine and/or beer would be nice to enhance our discussions:-)

Thanks for the conversation, Miroslav and Lyn.

I find the harmony to lie in answering questions about what one is teaching and where they are teaching it. Lyn has spoken very well about “where” and you have given a neat example about “what”

In my recent conversations with colleagues from other faculties, it has been much interesting to hear them speak about engaged, hands-on, deep and experiential learning in ways so similar to what you are speaking about here and to ongoing conversations in mathematics education. Faculties of education can be broad in terms of what is taught: Also, I have been part of conversations in a faculty of education, where varied views were held on the materiality and multimodality of learning as well as on hands-on learning.

I thought I would highlight the point about what and where. Perhaps, the content some of our colleagues teach lends itself to the lecture style. Perhaps, it does not have to. You began off this conversation with a very neat example of teaching Python in a more interactive and hands-on way, Miroslav. Thank you for starting off this conversation.

Now I turn to the question of when evening conversations are going to take place at the symposium: Of course, Friday evening at the Wine and Cheese and thereafter in places of people’s choices. Plus, Saturday evening was left open. Two of the organizers have come up with this cool idea of booking a place at which all symposium participants may eat and drink until late on Saturday evening. Details on this Saturday Symposium Gathering are going to follow in an email.

My big interest is the relationship between my classroom objectives, which I call mathematical thinking, and our work here with computational thinking. This question is very prominent in the posters of Laura Broley and Natalia Vasilyeva. There is no coding in my high school activities but technology certainly allows me to give them tasks that would otherwise be hard to describe. For example a recent grade 12 trigonometry task is to construct the following Desmos animation:

https://www.desmos.com/calculator/bswucqgidy

Could do that with GSP as well of course, and could do it with Python. Each of these uses more or less amounts of coding. I’d like to think CT was involved in all three approaches.

I am also very interested in the blog discussion around lecturing. When I’m in a high school class with my activities there is epsilon lecturing. But in my first-year course, they seem to want 3 hours of lectures a week and that’s what I give them. But what does a lecture mean?—there’s a HUGE variation in what passes as a lecture in university, so huge that I generally avoid using the word.

Added note:

A friend just sent me this Wolfram commentary:

http://blog.stephenwolfram.com/2016/09/how-to-teach-computational-thinking/

It’s a year old so no doubt it’s been shared among us before. I like his defn of CT–it’s nicely broad:

What Is Computational Thinking?

But first, let’s try to define what we mean by “computational thinking”. As far as I’m concerned, its intellectual core is about formulating things with enough clarity, and in a systematic enough way, that one can tell a computer how to do them. Mathematical thinking is about formulating things so that one can handle them mathematically, when that’s possible. Computational thinking is a much bigger and broader story, because there are just a lot more things that can be handled computationally.