 Dwy'r iawn i'r unig, ychydig yn ddechrau Lillian Nandi, ond rydw i'n ddweud ar hwnnw i ddweudio i ddweudio'r pethau o Eurtyn 2022, yn dwyblin a rydw i'r audience i ddweud yma. Mae'r cyflosbeth o'i ddweudio'r pethau yn gweithio'r gennau llyfodol o'r bliones, part 4, o hyfoddau i'r pethau. As this is a continuation of parts 1, 2, and 3, allow me to quickly bring you up to speed with the synopsis of the previous talks. Coding, computer programming, is now regarded as many by an essential skill for any aspiring, ambitious self-respecting young citizen in an aspiring nation, and as such it has been dubbed the fourth R along with reading, writing, and arithmetic. In recognition of this new status of computer programming, governments worldwide have launched initiatives to have it taught in schools, starting at the beginning of the school career in kindergarten through to junior school and all the way through to secondary school, and the regions in red are where this is deemed to be happening. So I for the past few years have had appointments to actively lead and introduce computer programming to children aged 11 to 18 in UK schools, and in doing so I wanted to make it interesting, fun, educational, and also motivate them properly. Okay, so now embarking upon this venture, it came as an extremely pleasant surprise to discover that young people are generally extremely interested in the subject, and they really do want to learn it. Coding has very positive associations with space rockets, driverless cars, robots, et cetera, and they can see a great future associated with it. Whereas the challenges in the venture were, suffice to say, the establishment's reaction is somewhat lukewarm. Also, as the economist rightly points out, the subject is so young that teachers and curriculum designers have little pedagogical research to guide them. To put this into context, if we look at other subjects such as maths, English, history, geography, these have been taught for hundreds and thousands of years all over the globe. So there's a great deal of collective experience and knowledge on how best they should be taught, how best people should learn them. Contrast computer programming has only been around for the past few years, and there's little collective experience, knowledge about the teaching and learning of them. So with a dearth of pedagogy, I decided to develop my own framework. Now in developing my own framework, certain key decisions had to be taken. The first key decision that is, do we introduce a block-based language or a textual-based language? We decided to introduce a textual-based language for every single age group right from the start. We decided the language should be Python, as it is the number one teaching language in schools at universities, and the students would be in good company. And the rationale behind it was at the age of 11, children in English learn William Shakespeare in maths. They solve simultaneous equations. In geography, they write about the merits and demerits of excessive carbon footprints. So at these ages, they are mentally prepared to process textual data successfully. Yes, visual languages are very helpful, but we also felt textual languages are also enjoyable and within their intellectual remit. Second key decision is what approach should we be used in teaching coding? Should we employ a bottom-up approach or go for a top-down approach? Decision was made to introduce computer programming using a bottom-up approach rather than a top-down approach. The bottom-up approach is a tried, tested, successful traditional method it used in teaching computer programming to adults. Foreign languages and mathematics have also been taught in this manner traditionally. And in this approach, the concepts and operational definitions of the concepts are taught before they are applied to a problem. Now, this is not the only way of teaching. It's not at all unusual that this is a somewhat alien approach to the modern school student who could have predominantly been taught by a top-down approach whereby the problem is specified and they then delve further to see what tools are available to solve the problem. However, the approach was well received. This was then preceded with an explanation that programs are analogous to essays, programming languages to sentences, keywords analogous to words. We would therefore be learning about a keyword at a time and learn about its uses before building it up in due course to create more complex programs. The students appear to like this explanation and buy into the bottom-up concept and from time to time I was asked by the students questions such as, are you fluent in the Python language? Indeed, parents mentioned in Parents' Evening how much their children were enjoying and loving the language. The third key decision was could we or should we use traditional coding examples to demonstrate concepts or should we create child-friendly age-appropriate examples? We decided to use traditional coding examples and see how they are received by the children. We use standard mathematical examples to demonstrate concepts. For example, the children were shown a for loop to generate odd numbers. Very soon they gleefully wrote their own for loops to generate their own sequences and they were absolutely delighted. This is something which they are learning about in maths and they find it fascinating. Another favourite program of theirs was the generation of multiplication tables. But the program which generated the most excitement was the some consecutive numbers, 1 to a million. That's 1 plus 2 plus 3 plus 4 plus 5 all the way to a million. The children were amazed by how quickly the computer could compute the answer to what large numbers it could deal with and the simplicity of the method. The excitement was quite something to behold and something which is relatively unexciting for an adult is really exciting for a child. AlexH12 commented, the for loop, I like it particularly because it does all the laborious calculations so quickly and saves a lot of time. Also code eliminates human mistakes which could arise out of boredom of doing the same task over and over again. So we had a good degree of success from this approach with both comments from students and parents about how much the children were enjoying the subject. We found that year 7, that's 11 year olds are better than year 8 which are 12 year olds who seem to be better than 13 year olds who seem to be better than 14 year olds so starting properly from the beginning is better. The students were also quite happy with this teacher-led approach rather than a student-led approach or independent learning at this beginning stage. And of course the best students are the ones that are motivated to do well in the subject and as educator we found that a congenial home atmosphere is extremely beneficial. So after establishing the success of the method we felt that children had developed a solid foundation, we began to think of how to proceed further with all of this. We felt that we should be using Python to look at and analyse real-world situations and using Python to look at various aspects of climate change came to mind. Now in embarking on this venture we felt that we'd be able to maintain the educational integrity of all of this. We'd be putting our energies into and time into an educational and worthy topic and we'd be able to make use of commonly used Python data visualisation libraries such as Matplotlib. So let me take you on a journey of what we did here. So in the first instance we just wanted to get going with Matplotlib so the first exercise was to create a programme to plot a straight line graph of the form y equals mx plus c with the given coordinates. The young people managed this successfully, c figure 1 and 13 and 14 year olds do this in maths anyway so it automated it, delighted them. Exercise 2, we're always hearing about our huge carbon footprint and how we should reduce it. We're told that the population is responsible for this so let's look at the population of the G7 countries, c figure 2. Young people were struck by the huge difference in the populations of Canada and US, two neighbouring countries with the same landmass. Of course we need a reference frame and the G7 countries form about 9% of the world's population. They then did an exercise 3 to construct pie charts showing the relative populations of the G7 countries and here they were struck by the fact that you can explode segments in Matplotlib, you can put percentages on something which you really can't do manually and they also wrote code to generate figure 3b which shows the relative world population of the G7 according to the total population which is about 9%. Exercise 4, they created constructed programmes for bar charts showing the landmass of the G7 countries. They were struck by how similar the landmass of Canada and US were and for comparative purposes G7 countries occupy about 4% of the total global landmass and they did calculate that. For exercise 5, they constructed programmes for bar charts which show the carbon dioxide output for G7 countries. Again they were struck by the huge carbon dioxide of the US far outstripping other nations. In fact the G7 and they calculated G7 countries output is about 25-27% of the world total carbon dioxide output. They looked at it a bit further, exercise 6 they constructed, the young people constructed programmes looking at carbon dioxide output in terms of population of the country. Here we see from another view that Canada appears to rank second in the stakes and if you compare the sort of do a comparison of carbon dioxide output of G7 countries compared to the average world total output it's interesting to note that the ratio is about 2.27%. A rather precocious child commented if the average carbon dioxide output consumption of G7 countries is encouraged and replicated for all countries of the world the world will surely perish within 10 years. And finally last but not least the young people looked at carbon dioxide emissions versus landmass and we get a different story here. We get a normal distribution with the Germany, UK and Japan centres and the US and the Canada at the outskirts and again if we sort of compare this to a metric comparison compared to the world it's about 18 times more. So, to conclude the young people saw by using Python for real world examples that data, big data is a big window of transparency onto the world and it helps them to understand real world situation. Why research, why continued research? Well it teaches the teacher young people how to interact and respond to newly arising problems and situation. Such exercises enable young people to build a more comprehensive, holistic and balanced view of the world. More importantly such activities motivate young people to learn about computer coding. The classroom lessons should be done in conjunction with computer coding clubs in school and also outings to external seminars around about the real world applications such as climate change, financial markets and medical research. So let us finish with some quotes, ideas from Plato about education, ideas which we have great respect for and we endeavour to implement and these are the beginning is the most important part of the work. Education is teaching our children to desire the right things. Thank you very much for listening in your time. Thank you so much Lillian for operating in a much more constrained time schedule as well so thank you so much. Guys now we have time for Q&A. We're just ahead of schedule actually by, well we're just on schedule, it will be five minutes. Do we have anybody in the room who would like to ask a question or anybody remotely? Nobody remote? Great. So you can take, you can queue up just behind this microphone here. Thank you. Hi, could you tell us how you compare different approaches like you said you talked about bottom up and top down. Did you do one class of one and one class with another? I'm a teacher myself I can't get my head around how you would work on that kind of scale with comparing things scientifically. Okay, I didn't do one class with another or another class with another but however having said that I have observed other classes with say a top down approach. I'm not convinced how it's actually working but I felt more, I just delved in, I felt more intuitively that a bottom up approach would work. It's the way that I've been taught, it's the way that we learn languages, it's the way we learn music, it's the way that I've learned mathematics. And I know how to implement it and I know how to make it work and I've seen it working so I decided to go for that approach and to see whether it works or not. And I found that it did basically. Yeah. Hi, thank you for the talk, it was excellent. I'm curious, I have my own kids around eight to eleven years old and I'm curious about, you mentioned the block based learning versus just strictly text based learning or if they can use them in conjunction with each other because there's so much gamification of learning how to code these days and writing kind of pseudo code and understanding the concepts behind programming that seem to really, the kids really get interested in developing their own games and things of that nature versus just kind of jumping right into writing text based if there was a study that's been done about both approaches or using both approaches in conjunction with each other. Okay, I have not actually come across with both approaches in conjunction with each other. I have come across students being introduced to block based language first. I can only really say anecdotally to be honest and I feel that block based languages, they're good but there may be more introduced for ease of implementation. You can't get a syntax error, you can only get blocks which is like a jigsaw puzzle really. And so I feel for more administrative purposes it can be quite good. I don't know how it's received on the other end but it's modeling. I haven't met a child yet who is complimenting block based learning and the child even different ability range spectrum children on different ranges of the spectrum. I've never come across one who has complimented it, put it mildly. So therefore, I won't text your base, I know they can cope with text because they're reading, they're writing, they're doing maths and they cope very well and they feel as if they're doing something grown up and worthy. Yeah. Yeah, thank you. Okay guys, we've last in two minutes left but still time for another question. Thanks for the talk, it was really nice. It's been a while I'm out of school but in traditional subjects it was that you are not really encouraged to take the try and error approach and like I was wondering how kids were, if there are some struggles with trying different parts to the same results and just playing with the code. The challenges. Yeah. Well, the thing is, I gave them worked examples, you know, so a work of a very small worked example of a code and then they write a code which is very similar to the worked example kind of thing. So what you're doing is you're imprinting a structure in their mind and they're not, first of all, making something up from scratch. They are having the structure just in the same way as they're learning to read. They read and they've got imprinted in their mind sentences and paragraphs and then they construct sentences and paragraphs of their own. They seem to kind of like the approach as such and, you know, giving them a structure, quite, I didn't think they would be typing in the worked examples but they all typed in the worked examples and managed to get it running and it gives them a sense of achievement. So I think they feel, you know, with small programs they can get sense of achievement and they seem to like that. Okay, thank you. Thank you, Lily. I'm afraid it's hard stuff there, guys. We need to prepare for the next talk. But thank you, Lily, for coming today. I really appreciate your time and thank you all, both in person and virtually as well. Take care.