Tekstitykset
so I'm going to tell you something this is probably quite important I'm going to give you some ideas about to the future about computer science and so I need to talk to you about where computer languages are going so how many here of you here have a PhD in computer science that's gonna be tough really nobody I can't see the top maybe some grip there okay so the thing is why would you why would you care about computer science why would you care about programming you know that's it's a tough one um and I think is I deeply care about it and I'm hopefully trying to communicate to you why it's important um one of the reasons why I think it's important is to do with what you can do with it now the thing is I'm gonna show you some things you can do with programming I'm hopefully gonna convince you that it actually well how many of you actually have coded before us a better question Oh quite a few okay so some of you have an idea what it is I'm really addressing now everyone who hasn't coded because hopefully there by the end of this talk you'll go away and you will start to code because you probably have some preconception to what programming is right you think you know what it is and it's probably to do with business and we've all heard that we should teach children how to program because they'll get jobs right but since when was that a useful thing for for school children to learn how to become I do teach mathematics to get jobs in mathematics do we teach them PE to get jobs as sports people I mean it's ridiculous isn't it you know do you teach English so people become writers not really you teach these things because they're important private as tools third broader lives some people of course are going to become readers and writers are professionals but of course let's ask another question how many of you here can read all rights not everyone's put the hands up that's that's confusing how do you give your hands up keep your hands up Khan and then drop your hands if you're not a professional writer right so why have you bothered seriously why he bothered to learn like and then we know if we talk about this in programming terms why should we teach programming in the same way it's not that everyone needs to become a professional programmer that's ludicrous lots of people will nuts great but lots of people will learn to program in the same way for the same reasons you've all learned to read or write and I'm going to argue that that's because it's one of the most creative tools for expression that we have today we just yet haven't discovered it well you haven't I have and I'm hopefully go try and share with you that's that's the goal of today and so now we're really talking about education we're talking about why we should share these things and what's important about it and so when we stop talking about programming in these terms we need to then really communicate why we're doing it and and how we can do this and so one of the goals really here is to lower the barrier to entry and so I've got this this this thing I'm going to show you and it lowers the barrier to entry in three ways the first way is cost right computers are pretty expensive and so not everyone has access to a computer and certainly children they might have a have a computer at home but the parents they don't want them to touch it because it's there they don't know how it really works properly so if the kids mess around with it their emails break right so don't touch the computers they're a family computer so one way to do is to use release things here which is a Raspberry Pi if I don't heard of raspberry PI's before so they're fabulously cheap like 25 pounds right so if you break this it's not the end of the world and so if you're a child you should be able to get your parents to buy one of these for the Christmas or for birthday it's not crazy expensive so that's one of the way to learn the barrier to entry but of course if you already have a computer at home then use that it does available to you so just use a computer or if you haven't got access to one by Roger PI the second and then the other thing is software like this software here behind me this thing called sonic PI where's the information where the buttons what's going wrong with this we share some information this software is entirely entirely free so that's another way of lowering the barrier to entry is cost so cost of hardware cost of software the other way of blowing the barrier to entry is to make sure it's simple and easy to learn because that's another thing computing is a very complicated thing typically people say it doesn't to be just like reading a writing isn't isn't complicated you don't start to learn a writing learn to read or write by reading Shakespeare do you know that's would be a crazy thing to do you learn to read by saying Apple all right and so that's how you start this in the same way with this programming system I'm going to show you how to learn to program in a way that I've taught at your old kids how to do this and this software has been developed in primary schools and secondary schools with children the whole way through watching and observing them and use the software and then modifying the software to make the next generation of kids have an easier life and the cool thing about this is I've seen children do amazing things with software so I know that all you guys could do the same too and then the third way to lower the barrier to entry is to create motivation why would you bother if I say you need to learn to read or write because you can write legal documents how many of you going to do that all right it's ridiculous I mean it's obviously kind of jobs lawyer that'd be a good thing but you learn to read or write because you want to write letters to friends it's Valentine's Day so write poems to our loved ones Susannah I'm gonna write a poem they Scranton haven't got it yet but I will do and and also we can write Diaries and also the readings so there's important to be able to express the science reading writing and sing with programming we don't just want to learn to program that the typical thing I've seen I've seen lots of educational of trusts and organizations create really exciting engaging things for kids to learn to program one of them was by a big examination board in the UK and the title was give binary a try that sounds exciting to me the other one was have fun this is a good stop have fun with sorting how many of you ever had fun sorting anything in your entire lives that's ridiculous right I mean I love sorting my socks that's a good thing so we need to find ways that get to kids and get to everybody else it's not just about giving binary try having fun miss autumn you think of tools to engage them in something that's meaningful to them so they're not talking I'm going to spend the rest of time showing this piece of software which I hope souls all those things have just described so here it is if you want to tweet about it that's at sonic underscore pi is the busy accounts and it's get rid of this information now and so the way to start is to try and think of a way that's meaningful to children but it's also as simple as possible to get started so we're talked about play being an important concept so let's write the word play and then we can choose a number because programming is all about numbers isn't it no it starts choosing them below this and then oh it's very quiet it up a little bit there we are that's the first program you could possibly write in Sonic PI I'm just making a little beep and actually that may sound very simple and not very very exciting but kids go wow that's amazing a beep and so they really that are you should see them now I just light up and the cool thing about this is this is a full program we have lots of opportunities for learning opportunities for teachers to talk about what's going on here there's a full program there's functions there's abstractions abstractions it's a big word abstractions mean really things which map onto other things so you take a domain like numbers and you map it onto another domain right but you need to have some kind of way to make that mapping happen so is that this is a question asked lots of people but rarely people seem to know the answer which I'm quite confused about so maybe you lovely guys some Manchester be able to ask this question what the numbers do it's very quiet right they don't know it they go up and they can go dance come on so the cool thing where these numbers linking over now so in the domain over here what else can go up and down in music pitch exactly notes so if I choose a higher number I get a higher notes choose a lower number I get a low note right so we're done right we've got Rick we can play all the possible notes in the world although these are all whole numbers they actually map onto notes of a piano so as going up in whole numbers I'm like moving from C to C sharp to D and so here actually I can also do numbers in between numbers there's more like a violin sliding so this isn't a normal notion of piano it's in between so lots of things in just one line of code the next thing to do is to sort of make a melody you can make a note let's make a melody Sert's choose note 80 and it's play notes 85 nice nice melody here and that might be a surprise to you if you if you think what's gonna happen I thought was gonna play 80 and 85 but this system is actually not just a programming coding tool this system is a fully functional musical instrument and I really mean it in the broadest possible terms this is like a violin this is like a guitar oh really this is a new kind of instrument if I hope you'll learn to play I use this instrument to perform a night clubs as you can tell the people have a great time these beats is wicked and I'll show you in a moment actually where you can go with this but but yet so it when we talking about musical instruments actually music really and calculates one thing beautifully and that's time if all the notes happened at the same time well that will be interesting but it would limit to us where where we can go with things it would be very quick performance so you want to be able to spread things out over time so there's another important command in sonic PI which talks about time it's called sleep so gasps the computer to go to sleep for a second like this so we win a play notate T or C for a second and then we'll play note 85 this is obviously the nightclub standard quality music audience you might laugh at this but at this point I've pretty much done all of western notation think about that for a moment what is the melody it's which notes to play and when to play them right well if I got here I can play any notes I can choose any length of time between each notes I can do any melody can do any bassline I can take Mozart I can take Beethoven I can take Daft Punk I can represent it in this and children do take their favorite melodies and they reproduce them with just two commands so you can get started tonight's downloading tonight PI for free plays thick plays thick play see my six-year-old niece at the time when she was six I showed her these two commands and she could read and she could type in the keyboard that's all she needed to be able to do and she wrote hundreds of lines of this you know I was like that's great he says I'm not finished yet but you kept going right so you can do have a lot of fun with it just two commands but of course if I'm making this claim I can play this in nightclubs I need to spirit of convinced you can do a bit more and so in addition to be able to make beeps I can also make Sam play samples so I can actually play pre-recorded sounds so a really cool famous sample as the are men break they're not heard of the Amon break you all have you just robably don't know it's called it sounds a bit like this right right say well let's try and make it a bit louder let's go opportunities to talk about how you might manipulate sound so there's a drum break but but in something power you can do like and what I'm showing you in this is next six minutes it's just the tip of the iceberg really there's lots of depth and one way to demonstrate this is you can not just play a sample but you can manipulate it so let's change the rate of its playback so we're playback at a harp speed we didn't some the Matassa team was using pretty much exactly the same way by nwa with Straight Outta Compton you know it really rapping on top of this dr. Dre swearing and things the take a trigger jobs lately slipped out we actually create some sort of early old-school hip-hop sound of course they only play the normal normal rates this is the start of the draw and based things you know we've got the mash it up and play around with it and then if you want to go forward a few more years he took a little bit of Gabbar and fast dance music jungle right I've just changed a number to three different numbers and got three different genres of music that's pretty cool isn't it right and so you can take any sample manipulated in this exact way another thing that you can do is you can take another sample out this guitar sample this one yeah and these samples which are built-in they're all Creative Commons zero license nice guitar sample son was made change of rates and 0.5 so I can then think about what else do want to do so in children will ask to say if we're teaching computer science they won't really ask how to do sorting they'll say well how do I make that sound better they said well actually this is a computer science lesson you can't do that well that's the rubbish answer isn't it so you want some children will ask these questions and you want to maintain their engagements to maintain their motivation and so one way to do it is to be able to say yes you can make this sound better what do you mean by better so one thing they might say is well when I listen to this kind of music it sounds more roomy what do you mean by that's well actually if you think about this in studio terms that means more reverb so how do I have some more reverb to this well I use some computer science i I use what's called a lexical scope that's a fancy word but it's just wrapping this round with some reverb in the same way I take my guitar plug it into a reverb pedal plug that into an amplifier I can do the same to this code I just need to write with effects reverb do to say where what the reverb has start and end so I want the reverb to finish you'll see now that the sample is within the reverb so now that sample will be played with reverb and change a room size second in the same way you have guitar pedals have those knobs that can change the knobs here make it make even more reverb traffic yes it's great but also I quite like it to do a bit more echoing stuff can you do that well of course we can't sure so what we need to do a couple of these things let's do effects what is sounding more load why can you do low file into 8-bit music cool sure I can do that let's do like with effects bit crusher bits eights - can see you all I'm doing just adding and listening and adding understand listening and so this way we're this ability to play samples make beeps and of course I'm not showing you but you can do more than beeps there's about 20 different synthesizers built in each of those synthesizers is like a full synthesizer will fired a shot with about 20 to 30 different controls to manipulate so you have a huge range of sounds you can generate and with the ability to do effects you and the ability to play these things through in time with the sleep command you can do insane number of different kind of compositions with this with this tool already but to be honest that's boring right composition is so old-school where we want to be today and where light where where the electronic music is not today where it should be is live performance when I go and see it got a rock band playing I do not see them going onstage sitting on the chair like this cracking on a CD going on enjoy the CD right where's where's most electronic artists will actually just play a CD of their music or the equivalent of them maybe do a bit of tweaking because their work their virtuosity and there is a lot of virtuosity electronic music is mostly in the studios they spend huge amounts of time in the studio really polishing the sound so that when they go onstage it just sounds perfect but who wants perfection surely modernism was a long time ago seen as a ridiculous idea that everything can sort of go towards a perfect idea I want real people I want real ideas I want what risk on danger want things to go wrong and I want to see what happens when it goes wrong because that's that makes things just a tangibly lie and so with electronic music we can start to do this when we start to use code and this point you need to add something else we've got a thing called the live loop and so if I do if I call this Sally doodle I bleep need to have a name I can play like a sample and a bass drum and like this and then sleep for half a second now I've got a loop why it's already so in the club that's going but I caught at this point I can actually once it's playing I can change aspects of the sounds so change the cutoff value start to bring it up right and so all I'm doing is changing your number and you can see I'm actually performing and so are maybe Jane is gonna play she's gonna synchronize with Sally so they can play at the same time another sample let's play loop not the arm in break industry let's beat stretch that to one beats so this point I'm starting to make a dash home track and I'm thinking how do I make them take the melody to this well since I've only got like one minute left so I'm gonna just skip straight to the point it's like pi will you download it at home which you all will tonight if you click on if you click on the Help button you get a full tutorial written assume you know nothing about code and nothing about music so if you know either of those things you'll whip through it if you don't it's there for you I might promise this to you is if you don't understand some of these things then please email me and I'll help you act and then I'll improve the tutorial for the next people and I can actually do a full performance and I do this weekly on a Thursday so you gotta tune in to my performances you'll see me livestream this out and then I'll do this in nightclub so so please have a play and please change your attitude about what programming is it is one of the most creative things we have available today it is something which is entirely entirely available for you to understand it's not something complicated it's just something that needs patience and just like reading or writing if you see symbols you if you couldn't read or write you see these crazy symbols when you can't read code you see crazy symbols but of course those who can write who can read it can have a much more fulfilled and exciting life because they can express themselves and Wayans just imagine how you could express yourself with code if you could learn to