Why is it so rare to hear people use the words 'love' and 'maths' in the same sentence? And why might teaching computational thinking be a key to reinvigorating students' love of maths?
To find out we spoke to Professor Richard Buckland. Richard's research focuses on developing strong learning environments using non-mark based motivation, to support students to excel at school and university.
Welcome to the New South Wales Department of Education's Edspresso Series. These short podcasts are part of the work of the Education for a Changing World Initiative and explore the thinking and ethical literacy skills students need in an AI future. Join us as we speak to a range of experts about how emerging technologies such as artificial intelligence are likely to change the world around us, and what this might mean for education.
Why is it so rare to hear the words 'love' and 'maths' in the same sentence? And is teaching computational thinking the key to reinvigorating students' love of maths? To find out, we spoke to Professor Richard Buckland, Director of First Year Experience and Professor of Cybersecurity at the University of New South Wales. Richard's research focuses on developing strong learning environments, using non-mark based motivation to support students to exceed at school and university. Richard, in your own words, how would you define computational thinking? And why might the skill be important for an AI future?
The richest definition, for me, it's the series of mental strategies that computer scientists use to solve problems. So, it's the body of knowledge, it's built up over 50 years or so. And it's quite neat for solving big and complex problems, and now we're in a big and complex world, it's a useful set of skills for people to have. Computational thinking lives somewhere, I think, between scientific thinking and mathematical thinking. Science gives us a whole lot of strategies to go about solving complex problems about the unknown, the world around us. And maths has a whole lot of rigour and systemic approach to dealing with vast amount of complexity.
Richard, thanks for sharing that with us. Computational thinking and coding are often paired together, rather than computational thinking being seen as a broader thinking skill, which can help students to solve problems. What are your thought on this? And should we avoid this pairing in order to maintain a broader perspective?
Computational thinking became well-known when it was used to solve problems in coding, but the skill is much wider than coding. Computational thinking is, how do you systematically and rigorously solve problems in a very, very complex space? So, coding is such a space. So, computational thinking is useful when you're solving coding, and I guess coding is a great example that you could use for teaching computational thinking as an illustration of it. But the two shouldn't be tied together. The problem with coding is there's so much messiness in the coding, so many ways of making mistakes, so much syntax, that you could lose sight of the actual beauty of computational thinking. You could just get swamped in syntax and errors. I don't think you should ever think of them as being inseparable.
Thanks for that Richard. If we now think about mathematics and computational thinking, how would you describe their relationship? What common principles do they share?
I think computational thinking is actually a branch of mathematics. Though, I don't think computer scientists would like to think of it that way, and maybe not mathematicians either. Computational thinking, at the end of the day, involves rigour, and maths is all about rigour. Maths is a way of thinking to build out of these things called axioms, these starting points that are tiny little dots that are of almost insubstantial size, by rigorously constructing proofs and using results to build on previous results and so on. But from these tiny, simple axioms in maths, you build really powerful complex structures, and that's only possible by being absolutely rigorous. There's no room for whiffley waffley.
And it's the same with a computer program. When you tell a computer to do something, that's precisely what it does, no more, no less, no ifs, no buts. So, a computer will sometimes, it seems, wilfully find any ambiguity in what you've done and catch you out. When I'm teaching my first year students about how unforgiving computers are, I do an exercise where I print out a recipe of a Battenberg cake, which is a delicious cake. And then I say, "Carry this recipe out, literally following the instructions in the recipe. But misinterpret them whenever possible, whenever they're ambiguous." And students do all sorts of hysterically fun things. So, when it says, "Put in a cup of milk." People will put milk into a cup and drop them both in. When it says, "Put eggs in," some people use lizard eggs. One of the students, it said, “Put it in the oven and turn the oven to 180 degrees." So they turned the oven upside down. (LAUGHTER)
So, just in everyday life, we're ambiguous all the time. And we resolve it 'cause we're humans and we can read each other's faces and expressions and know what the other person probably meant, and computers don't have any of that. You tell them to do this, they'll do this. And that's both a blessing and a curse. It's a curse because it's so easy to make mistakes, but it's a blessing 'cause when you get something right then it's rock solid, absolutely right. And maths is the same.
The elaborate prism structures you build in maths work because we built them on a solid base. So, they both have rigour in common. They both have logical thinking, a sort of systematic logical approach to things. And this is going to seem a bit odd but they both have a sense of beauty to them, there's this lovely aesthetic.
Erdos, the great mathematician, used to say, when he saw a beautiful proof, he'd say, "Oh, this is one for the book." And he had this idea that God had this book of beautiful proofs, all the perfect proofs, and sometimes we'd be blessed and see one on Earth and it'd just be amazing. And I feel the same when my students sometimes come up with a beautiful program to solve a problem. I look at it and it's just lovely.
So, there is this sense of joy in doing maths done well and there's the same sense in any form of computational thinking. We follow these small, meticulous steps and at the end what you build, you can't believe you've made it. It's just so beautiful. So, a joy in what you're doing, a sense of craftsmanship, of being rigorous. The other thing about maths is it can very quickly get very complex. I don't know if you remember a maths lesson, if it goes even 5% too fast, have you ever been in one of those, where suddenly, "Woah, I missed that," and "Woah, no, the next thing, and now I don't know anything." And then it's just gibberish on the board. ‘Cause maths layers complexity on complexity on complexity.
So, one of the tricks about being a math teacher is making sure you bring everyone with you, because someone that slips a little bit behind is in a lot of trouble. And computing has the same thing, these little programs, individual lines that are simple, but put together they make systems that are so complex. So, dealing with complexity, which is a human skill, is both important in maths and in computing.
So, although, I guess, the stereotype of maths is it's a sort of robotic, right, wrong sort of thing and the people that do it have no soul, and you're just following a recipe, and you know, all that sort of stereotyped stuff. Really, I think you’ll find a good maths teacher, an inspiring maths teacher, is working on you as a person. To give you courage not to give up, to give you resilience, to persevere when things seem hard. To give you good self-checking skills so you can notice when you've made a mistake and you can correct it early. These are all just human qualities we need to solve complex problems. And those same skills are needed to solve computing problems. I think, really, maths, computing, maths, computational thinking, they're sort of one and the same. It's just a new domain. More interesting than trigonometry.
(Laugh) More interesting than trigonometry. How do students develop computational thinking skills? And do you believe that computational thinking skills can be assessed?
That's really the same question as, “How can students learn to play the violin beautifully?" Or, "How can students learn to compose music?" As teachers that's always what we want to do, we can teach the nuts and bolts, but what we're hoping for is the symphony at the end, not just somebody who knows lots of nuts and bolts.
So, computational thinking is, I think, best taught by doing than by talking. Much as learning how to play the piano. If someone could talk to you forever about how to play the piano it's not going to make you a better piano player. So, I think we need to try them out. The universe is quite a stern taskmaster and if you make a mistake in a sort of computational exercise, it becomes apparent almost instantly. So, that's a really nice way of learning.
So, by doing, certainly, but I also think the difficulty of dealing with complexity can encourage people to give up. And I see this in maths all the time, I mean, everyone does maths in primary school. By the time they get to uni, maybe half of the people are doing it in first year. Second year, maybe a 1,000 people are doing it, get to your last year there's five of them left. What's happened? We've lost them along the way. They've given up or lost heart or thought that they were not good at maths or lost self confidence or I'm not seeing the relevance. I think we don't want that same thing to happen with computational thinking.
So, the best tip I would give any teacher who tries to teach someone computational thinking is be happy and cheerful, show them the wonderful outputs you get at the end, like the joys of the whole process, so make them believe in it and want to do it. For heaven's sake, don't turn it into a box ticking exercise but instead make it something that they want to do. The thing that makes computational thinking good is that people can't give up. So, they have to have a sense of resilience and courage because you will always make mistakes. Every programmer knows that. If you speak to anyone who's ever programmed, programs are littered with mistakes, full of bugs.
So, part of the trick of being an effective computational thinker is this courage to not give up. So, you just try it, it doesn't quite work, you smile and say, "Yeah, I'll get there." And you try again, and you try again, and you try again. So, there's lots of self-management skills. Being self-actuated, all that sort of human side, that's important.
Secondly, I think to be an effective computational thinker you have to do meaningful things. You need to somehow be creative, so I would like to see all teachers encouraging their students to have play in creativity with computational skills. To give them agency rather than saying, “Solve this equation and this equation and this equation. Tick, tick, tick, now you've got three marks, move on”. So creativity, resilience, not giving up, giving the students agency so they can have control over what they do and produce artefacts that add meaning to them and that everyone celebrates in. And just remembering that it's fun, 'cause it is so fun.
The first time you write a program just like, it's like solidified maths. It's solidified thinking. You can have ideas and then they have an impact in the real world. You make something out of them. It's very exhilarating. So, please, when you teach computational thinking, teach that. Don't worry about the syntax, don't worry about marks, don't worry about ticking people off, don't worry about long lists that people have to memorise.
The guy that wrote 'The Little Prince', he says something like, “If you want the people to build a boat, don't show them how to saw wood and fetch nails and hammers and things. Instead, teach them to yearn for the vast and boundless ocean." And I think it's the same with computational thinking, if they're yearning to do it and you have good role models around you, you will do it. The danger with assessment is it can suck the life out of anything, it can suck the joy out of it.
So, I would hope, assess it as little as possible, assess it with a big smile. I'd rather them have open ended exercises and activities and say, "How can you solve this?" And have a celebration in the class where everyone sees everyone else's things and they go, “Wow, look at what Janelle did. Isn't that fantastic?" And Janelle goes, "But yeah, look what Betty did." And Betty says, " Look what John did." And you can see there's multiple parts to a solution.
It is such a complex domain, it's like painting a picture, it's not as though there's one right picture at the end. You can have a classroom full of beautiful pictures. Unlike, say for example, a trigonometric equation, which has only one answer. Let's just assess it with joy and pleasure and happiness and let's not feel that we need to rank everyone and say this person's better than that one. It's such a rich, complex field and people can be great in one dimension and not great in another. And I've seen students come to uni who've been damaged by that. Who've had a teacher, who themselves might have not been a computational thinker, who've marked them wrong for something that was actually right in a beautiful and different way that was unexpected. So, of course it can be assessed, but please, please don't assess it, or assess it as little as possible.
Assessment certainly is a thorny area. In what ways can computational thinking reinvigorate student interest and love of mathematics?
I love the use of the word 'love' in this question. How often do we have 'love' and 'maths' in the same sentence? But it makes complete sense, 'cause maths is beautiful. Because I do think, when we’re a child, maths is enjoyable. Counting, noticing whether you count from the left or the right you get the same number. New little mathematical puzzles, as children we enjoy them and we lose that love of maths through school. And at the end of school in year 12 there's very few left who profess a love for maths.
I have a T-shirt which says, there's a maths exam tomorrow and I just wear it around uni, it freaks everyone out. It's like maths is a threat, it's an evil thing, almost, by the end. So, computational thinking is a great opportunity for students to rediscover their love of thinking rigorously and systematically. Yet, at the same time, being able to be creative because at school it's very hard to teach maths to be both rigorous and creative, but there are 17 million programs that can solve any particular computational problem.
So, you can have 17 million answers and if you give the same question every year to a different group of students over your whole profession, I bet you'll never see the same thing twice. And that's wonderful. And that is more inspiring to a student than a right, wrong tick. Yes, cross, no. So, I absolutely love that about computational thinking. Also, I love that you are solving real life problems. So, solving a problem in mathematics sometimes can seem very abstract, but writing a program is nicely concrete.
So, those who say, “Aw, I'll never have a use for maths,” as their reason why they don't like maths anymore. They wouldn't say that about computational thinking because they'll see, "Well actually, I wrote this program to do 'blah', and it was really fun, and now I want to do another one." So, yeah, absolutely. And it's playful, and you can share it with other people and you can do it collaboratively. There's just so many good things about computational thinking. So, yes, absolutely. Let's hope it rediscovers a love of mathematics and mathematical thinking, amongst all our kids.
Could something like data science, as an example of computational thinking in maths, together in action, be an in-road for students? What might other applications be?
So, data science is very trendy at the moment with employers, and there's all these new AI, well, there's one main new AI strategy, which people have discovered, deep learning, which is now allowing us to do all sorts of data science stuff.
So, yeah, I guess the answer is yes. You could use data science and that would be fun, but the sky's the limit to what you could do. I would ask the students, what are the problems that they're interested in, what are the things that they care deeply about? Maybe it's something to do with global warming, so then collect data, build devices that collect stream temperatures or salinities and log that. Find out what they really like and do it. There's computational solutions to every problem, partial solutions, at least.
So, I find problems I care deeply about. If you’ve got students that care deeply about data science then it's the perfect example of a way of doing it. But find what it is they love and get them to do that. Music is a great thing, art is a great thing, helping people is a great thing. Maybe there's a community nearby they can help, maybe there's an old people home, maybe they can come up with devices that would help the old people. Maybe they care deeply about sport and they can come up with things that help their local sporting team. And you can later on get people from the team to come along and thank them. There's so many fun things you can do.
That certainly does sound like fun. Computational thinking is still an unknown for many people. Are there ways to make computational thinking more accessible for teachers who are not trained in computer science?
It's the age old problem. How can you learn music from a teacher that's not an expert musician? So, I have three strategies that you can think about. One is, have the teacher be more a facilitator and rely on students to teach students. So, farm the student committee, do a sort of crowdsourced exercise. Really the only skill the teacher then needs then, they don't need to be a computational thinker, they need to be enthusiastic and supportive and a nurturing sort of person. And then let the students go and do all these crazy projects and have the students help each other.
Now, it's very hard to self-teach yourself computational thinking. See, the first time I ran the course, if I had three or four students who were really good at it, I would ask them quietly, "Would you mind coming back and helping me next year?" And then they can be teacher's assistants next year. And then maybe you'd get ten people then and they can come back and then...
I helped at Ruse for a while and I taught a bit of computer programming there, and the students I taught then set up a club and they taught each other. As far as I know, that club is still going. And it's senior students teaching junior students and I don't have to go along or do anything anymore. They're brilliant, they're doing all these great things.
So, one is, make use of the student expertise you’ve got. Two is, you could teach yourself a little bit 'cause it is fun. I don't think you have to be an expert, I think you just have to enjoy it. So, if you are learning at the same time as the students or slightly in advance, I think that would be a really impressive teacher. When I teach my students how to program, I get a lot, 500 or 1,000 sometimes, in first year. Maybe half of them have never programmed before, we do an intensive programming course, they constantly are stressed and want to give up and are worried because it's hard to learn this skill. I tell them don't give up, you'll make it. I try and give them small successes early so they know that feeling of pushing through and having this... I try all this stuff, but I can still see they're struggling. They're just pouring their heart into it and they can't see results yet and they won't for another ten weeks.
So, what I did, one year, was, I said, “Okay, I’m going to learn the guitar. It's really hard, can anybody tell me how to learn the guitar?" 500 people calling out 'cause lots of them are musos, "Oh, do this, do this." And they're telling me you gotta practice everyday and they’re telling me all this stuff. And I said, “I'm gonna do that, and that advice you gave me, that's my advice for you about programming.” And then every week, I'd come along and I'd bring the guitar along to the class and then I'd show them how I was proceeding with the guitar.
Now, I was crap. But I didn't give up. I sometimes would tell them how depressed I was that I wasn't good and they'd say, “Don't give up, you'll get there you just need to keep practicing.” And of course, that is the exact thing. And then another year I did it with trying to lose weight. “I've got to lose weight, I'm so unfit. So, how can I lose weight?” So everyone's giving me all this advice about, “Oh, structure your life so the things you like doing line up with the skill you wanna have.” And then I say, "Oh, I can tell you the same with computing. That's the same. Don't give up. And if you slip up one day, don't give up and gut out on ice cream and hate yourself. Pick yourself up, forgive yourself and move on. Just keep going."
And that's the advice they gave me, brilliant advice, and that's the same advice to give them. So, if a teacher was learning programming at the same time I was, I'd find that a little bit inspiring as a student. You'd have to do it right. But maybe the teacher grappling with things would be cool. And then the students could be teaching the teacher. But I think the students would find that quite interesting.
And the third thing was, look for external sources of expertise. So, there's online videos, there's online courses, I've got a million students here at my uni and I'm sure there's a million students at all the other unis. Reach out to me and I'll send students after school and we can get students to teach students. But find lots of resources online, there are so many good resources for thinking computationally that I don't think the teacher needs to be the expert. I think you could make use of those researchers and the teacher be a facilitator.
Those resources include parents of students sometimes, who are really good former students who have graduated. I know firms send engineers out to help in local schools and they're full of enthusiasm, but then sometimes the schools say, “Oh, don't send us anymore, please.” Because somehow you need to get someone who's both really good at computational thinking and knows how to teach. That's a bit hard. I'm running little training sessions here, where I teach people how to teach. Teach people from the industry how to teach so that they then can go out to schools and teach and things, and I run it so my students learn how to teach, 'cause I get my students to teach my students in the final year. So, you'd be welcome to send people along to those courses, I do, they're all free.
Yeah, so just be aware of that danger that you could get someone dysfunctional in front of the class. But if you can manage that, that would be great, cause that's a great resource. We're all new here, there is a massive shortage of people over here. There's a massive shortage of these skills. And there's very few people in the world that both know how to teach and how to think computationally. So, it's a problem everyone is facing. But, you know, teachers are smart, they're problem solvers, I'm sure they can solve that.
Richard, thanks for that. Last question, if you could go back in time and give one piece of advice to yourself as a school student, what would you tell yourself to focus on to help you prepare for what was to come? And would you give different advice to students today?
My advice to myself would not be about learning particular academic topics. It would be more about managing myself as a person. So, think more about other people and think more about kindness. That's more important than you'll ever know and it's very motivating. When things are tough, other people will help you, so build networks of friends and support. Always be a good person even when you're tempted by short term pressures not to be. You might be wondering why am I saying this, this has nothing to do with computational thinking.
But for me it has everything to do with it. Because teaching yourself a skill, whether it's losing weight or playing the guitar, or learning computational thinking, these are really hard things to do that are really worth doing. And when you master them at the end, it's fantastic. And your biggest enemy and danger isn't that the thing's poorly explained or that the exercises aren't right or the assessment skill's not right.
The biggest danger is that you will give up. That you will think you can't do it and you will lose heart and you'll still do the things you're compelled to do, but inside you'll have switched off. That's the biggest danger, so, not giving up. I think knowing how important other people are, as a mathematician, I never understood that. It's only now that I'm older that I see it. When I see students helping students, it inspires them both. It encourages the one who wants to give up, and the student that's helping gets a shot of adrenaline too.
And I often tell my students, I want everyone to learn this once and then I want you to teach it once, because the first part through, you learn it to this level. But when you teach it, you learn it to that level. So, this interaction with others is such a driver for humans, I never understood that. So, if I went back, I'd go to that arrogant loud mouth little guy who thought he knew everything and he could do everything by himself, and I'd say, "No, think of other people, look at other people. And work with other people and that will solve 90% of your problems."
The other piece of advice I'd give myself is to remember fun. So, it's so easy at school, well, it was for me, to forget that I was doing these things cause they're enjoyable and pleasurable. And to forget that maths was, as I said before, it's something you can love, it's exhilarating. So, I would somehow tell myself when things seem grim, don't tell yourself, "I hate maths." Tell yourself, "I hate the way this particular class is teaching maths right now. But I love maths. Maths is amazing." To somehow hold on to that and if you keep happy, and remembering that joy, it will drive you through, I think, everything.
And would my advice be any different to students today? Yeah, it probably would have all that, but one new thing that I didn't have, which is, if you're not getting what you want in school, well, don't get angry with the school or your teacher or your class. That's unfair, they've only got limited time and resources and they're doing the best that they can, and they're nice people. If you're not getting what you need, then take control of your own learning and learn it yourself.
So, if you're trying to understand something and you don't get it, go online and learn it. Go to Khan Academy and learn it, read it on Wikipedia. Form a study group yourself. When I was at school I used to think it was a school's job to teach me and I'd grumble if I had a bad teacher. But I was a bad student. It's not the school's job to teach me. It's my job to teach me, I should take control of my own learning. And if I have a bad teacher, well, the job's just a little bit harder for me. Or maybe it's easier for me, maybe that teacher is doing me a favour by not explaining everything in an easily digestible way. Maybe that's forcing me, in some way, to face some challenge.
So, my third piece of advice to existing students would be something like, take control of your own education. Work out where you want to be and why. And then do everything in your own power to achieve that.
Thank you for listening to this episode of the Edspresso Series. You can find out more about the Education for a Changing World initiative via the New South Wales Department of Education's website. There you can sign up to our mailing list or you can join our conversation on Twitter, @education2040.