1 00:00:00,480 --> 00:00:03,480 foreign 2 00:00:12,920 --> 00:00:18,180 but I've known Jack for a decade or more 3 00:00:15,839 --> 00:00:20,460 so I was just gonna add Libs and really 4 00:00:18,180 --> 00:00:23,460 embarrassing facts about how awesome he 5 00:00:20,460 --> 00:00:26,340 is how he's been passionate about 6 00:00:23,460 --> 00:00:28,080 Computer Science Education uh since I 7 00:00:26,340 --> 00:00:29,640 met him and he was a teenager at the 8 00:00:28,080 --> 00:00:31,080 time I thought it was a bit weird no it 9 00:00:29,640 --> 00:00:34,500 was fantastic 10 00:00:31,080 --> 00:00:36,120 um he is a CTO of connected ed code 11 00:00:34,500 --> 00:00:38,760 um and he's particularly keen on making 12 00:00:36,120 --> 00:00:40,739 Tech accessible to students I'm really 13 00:00:38,760 --> 00:00:41,760 excited about hearing about that in this 14 00:00:40,739 --> 00:00:43,320 talk 15 00:00:41,760 --> 00:00:47,700 so 16 00:00:43,320 --> 00:00:49,739 Jack welcome come on up uh join us thank 17 00:00:47,700 --> 00:00:51,920 you very much hello oh I'm on yes very 18 00:00:49,739 --> 00:00:51,920 loud 19 00:00:52,680 --> 00:00:56,340 all right 20 00:00:54,290 --> 00:00:58,739 [Music] 21 00:00:56,340 --> 00:01:02,120 sorry too many layers this is great 22 00:00:58,739 --> 00:01:02,120 footage for all of you online 23 00:01:06,479 --> 00:01:13,200 all righty alrighty yes cool nice back 24 00:01:09,840 --> 00:01:15,360 on sorry about that cool oh sir yes my 25 00:01:13,200 --> 00:01:18,500 talk today is about wrapping up the 26 00:01:15,360 --> 00:01:22,619 craft and what I mean by that is making 27 00:01:18,500 --> 00:01:26,580 wrappers to hide complexity 28 00:01:22,619 --> 00:01:29,820 um so who am I and what do I do why why 29 00:01:26,580 --> 00:01:33,840 am I the one to talk about this well 30 00:01:29,820 --> 00:01:36,119 I'm a bunch of stuff I teach at 31 00:01:33,840 --> 00:01:37,680 Presbyterian ladies College in Sydney I 32 00:01:36,119 --> 00:01:39,240 teach Cambridge computer science to 33 00:01:37,680 --> 00:01:41,520 grade nine 34 00:01:39,240 --> 00:01:43,380 um since I wrote this slide I'm also 35 00:01:41,520 --> 00:01:45,780 temporarily teaching at Emanuel School 36 00:01:43,380 --> 00:01:48,420 in Sydney teaching nine to twelve while 37 00:01:45,780 --> 00:01:50,100 they thought out a new teacher because 38 00:01:48,420 --> 00:01:54,000 one's left 39 00:01:50,100 --> 00:01:56,100 um I'm the CTO at Connected code so our 40 00:01:54,000 --> 00:01:58,140 whole mission statement thing is 41 00:01:56,100 --> 00:02:02,579 connecting code with context community 42 00:01:58,140 --> 00:02:05,700 and curriculum we do basically any kind 43 00:02:02,579 --> 00:02:07,920 of education-y thing we make uh projects 44 00:02:05,700 --> 00:02:10,380 for people to do we help with teacher PD 45 00:02:07,920 --> 00:02:14,700 we come and run events all sorts of 46 00:02:10,380 --> 00:02:16,680 stuff around Tech education and then I'm 47 00:02:14,700 --> 00:02:17,940 also a professional dungeon master I run 48 00:02:16,680 --> 00:02:20,520 role-playing games for people with great 49 00:02:17,940 --> 00:02:22,620 team building events come talk to me yay 50 00:02:20,520 --> 00:02:25,620 let's focus on the relevant one which is 51 00:02:22,620 --> 00:02:26,819 connected to third we do all sorts of 52 00:02:25,620 --> 00:02:28,879 events 53 00:02:26,819 --> 00:02:32,099 um the big four events that we've done 54 00:02:28,879 --> 00:02:34,620 uh so far are the first one was called 55 00:02:32,099 --> 00:02:37,440 Data detectives and with this we planned 56 00:02:34,620 --> 00:02:40,680 a whole uh murder mystery just a fake 57 00:02:37,440 --> 00:02:43,980 murder but a murder mystery and we went 58 00:02:40,680 --> 00:02:47,519 to a school and had them develop all 59 00:02:43,980 --> 00:02:50,700 sorts of programs to solve the murder 60 00:02:47,519 --> 00:02:53,519 things like using moisture sensors to 61 00:02:50,700 --> 00:02:56,400 check whether a car had been in a car 62 00:02:53,519 --> 00:02:57,900 park when it had rained and if they had 63 00:02:56,400 --> 00:02:59,340 been there when they said they weren't 64 00:02:57,900 --> 00:03:01,400 well that's a little dodgy isn't it 65 00:02:59,340 --> 00:03:04,319 things like that 66 00:03:01,400 --> 00:03:07,620 we ran Escape artists another incursion 67 00:03:04,319 --> 00:03:08,819 into schools where we went and we took 68 00:03:07,620 --> 00:03:12,000 uh 69 00:03:08,819 --> 00:03:13,680 all of we took a whole year level all of 70 00:03:12,000 --> 00:03:14,220 grade eight 71 00:03:13,680 --> 00:03:16,319 um 72 00:03:14,220 --> 00:03:18,360 we assumed they had no programming 73 00:03:16,319 --> 00:03:22,019 experience beforehand which was largely 74 00:03:18,360 --> 00:03:26,000 true and in three days they built whole 75 00:03:22,019 --> 00:03:28,200 Escape rooms in about eight groups 76 00:03:26,000 --> 00:03:30,360 and these were 77 00:03:28,200 --> 00:03:31,980 moderately complicated moderately large 78 00:03:30,360 --> 00:03:35,220 Escape rooms 79 00:03:31,980 --> 00:03:38,099 um with all sorts of things RFID reading 80 00:03:35,220 --> 00:03:40,500 you know ciphers to crack 81 00:03:38,099 --> 00:03:42,540 um you know lock boxes with solenoids 82 00:03:40,500 --> 00:03:44,760 and all sorts of things there 83 00:03:42,540 --> 00:03:47,459 and we've worked with the University of 84 00:03:44,760 --> 00:03:50,340 Wollongong on a couple of cubesat 85 00:03:47,459 --> 00:03:53,879 workshops uh cubesat being a little 10 86 00:03:50,340 --> 00:03:55,860 centimeter cubed satellite 87 00:03:53,879 --> 00:03:59,459 um basically a little weather station 88 00:03:55,860 --> 00:04:01,680 and we got the kids again a variety of 89 00:03:59,459 --> 00:04:03,360 Ages variety of programming experience 90 00:04:01,680 --> 00:04:04,379 some who've never done any some who've 91 00:04:03,360 --> 00:04:06,180 done quite a bit 92 00:04:04,379 --> 00:04:07,739 and we got them all to program this 93 00:04:06,180 --> 00:04:09,659 weather station tied them to balloons 94 00:04:07,739 --> 00:04:12,959 hanging time to drones flew them up in 95 00:04:09,659 --> 00:04:14,040 the air and got atmospheric data out of 96 00:04:12,959 --> 00:04:15,599 that 97 00:04:14,040 --> 00:04:17,160 so these have been typically aimed at 98 00:04:15,599 --> 00:04:18,919 high high school students who've done a 99 00:04:17,160 --> 00:04:21,419 little bit with primary school students 100 00:04:18,919 --> 00:04:24,120 and one thing we do that I touched on a 101 00:04:21,419 --> 00:04:26,780 bit there is we aim for differentiation 102 00:04:24,120 --> 00:04:31,320 we want to support all experience levels 103 00:04:26,780 --> 00:04:34,259 particularly with school students even 104 00:04:31,320 --> 00:04:36,960 though coding is part of the curriculum 105 00:04:34,259 --> 00:04:38,160 it's implemented at the moment pretty 106 00:04:36,960 --> 00:04:40,020 differently at a lot of different 107 00:04:38,160 --> 00:04:42,180 schools and so we can't make any 108 00:04:40,020 --> 00:04:43,620 assumptions about what the kids are 109 00:04:42,180 --> 00:04:45,300 coming in knowing so we want to give it 110 00:04:43,620 --> 00:04:48,060 so that the kids who've never done 111 00:04:45,300 --> 00:04:49,320 anything can learn and grow and have a 112 00:04:48,060 --> 00:04:51,419 fun experience and get excited about 113 00:04:49,320 --> 00:04:53,580 tech but the kids who've done loads of 114 00:04:51,419 --> 00:04:55,080 programming aren't really bored because 115 00:04:53,580 --> 00:04:59,100 they're learning about if statements 116 00:04:55,080 --> 00:05:01,340 again for the nth time so 117 00:04:59,100 --> 00:05:04,560 one tool we use for this are 118 00:05:01,340 --> 00:05:07,139 kookaburrias so the kookaburries are 119 00:05:04,560 --> 00:05:10,919 great they are a little micro computer 120 00:05:07,139 --> 00:05:12,840 made by the OST stem Foundation which is 121 00:05:10,919 --> 00:05:13,860 up in sort of the Central Coast Sydney 122 00:05:12,840 --> 00:05:16,919 area 123 00:05:13,860 --> 00:05:19,139 they run micro python they're easy to 124 00:05:16,919 --> 00:05:22,440 use they're flexible they're fun they're 125 00:05:19,139 --> 00:05:24,060 a lot like a BBC micro bit if you've 126 00:05:22,440 --> 00:05:25,979 used that 127 00:05:24,060 --> 00:05:27,479 um and they're a little less like but 128 00:05:25,979 --> 00:05:31,440 still pretty similar to things like 129 00:05:27,479 --> 00:05:34,020 arduinos and Raspberry Pi's and so on 130 00:05:31,440 --> 00:05:35,699 one great thing about these is that 131 00:05:34,020 --> 00:05:38,220 they've got a bunch of plugs on the back 132 00:05:35,699 --> 00:05:40,020 and they can have peripherals you can 133 00:05:38,220 --> 00:05:41,820 plug in all sorts of things 134 00:05:40,020 --> 00:05:43,919 so many things 135 00:05:41,820 --> 00:05:46,139 and this is just some of the stuff that 136 00:05:43,919 --> 00:05:46,919 I've already written rappers for 137 00:05:46,139 --> 00:05:48,060 um 138 00:05:46,919 --> 00:05:50,759 now 139 00:05:48,060 --> 00:05:53,160 how do we get it so that the kids can 140 00:05:50,759 --> 00:05:57,120 use all of these different devices and 141 00:05:53,160 --> 00:05:59,340 feel capable and like they're achieving 142 00:05:57,120 --> 00:06:01,199 things and get excited even though some 143 00:05:59,340 --> 00:06:04,259 of these devices are quite complex and 144 00:06:01,199 --> 00:06:06,259 they're all wildly different well 145 00:06:04,259 --> 00:06:10,080 we wrap up the craft 146 00:06:06,259 --> 00:06:12,840 so what do I mean by Craft 147 00:06:10,080 --> 00:06:15,060 I mean really the stuff that doesn't 148 00:06:12,840 --> 00:06:16,680 matter I'm gonna do an unconventional 149 00:06:15,060 --> 00:06:19,380 thing for a talk at a python conference 150 00:06:16,680 --> 00:06:23,280 and start by talking about Java 151 00:06:19,380 --> 00:06:26,400 um so let's look at Hello World 152 00:06:23,280 --> 00:06:27,479 um there's quite a lot in hello world in 153 00:06:26,400 --> 00:06:30,180 Java 154 00:06:27,479 --> 00:06:32,100 and that can be pretty intimidating for 155 00:06:30,180 --> 00:06:33,780 a first time programmer and it's also 156 00:06:32,100 --> 00:06:35,819 very intimidating for a first-time 157 00:06:33,780 --> 00:06:37,560 programmer when you guide them through 158 00:06:35,819 --> 00:06:39,780 typing all this and then they have a 159 00:06:37,560 --> 00:06:42,240 question and they have a question about 160 00:06:39,780 --> 00:06:45,300 kind of most of it you know what does 161 00:06:42,240 --> 00:06:48,960 static mean and the typical response 162 00:06:45,300 --> 00:06:51,060 that I've seen is don't worry about that 163 00:06:48,960 --> 00:06:52,860 for now 164 00:06:51,060 --> 00:06:55,199 and the problem is when you say don't 165 00:06:52,860 --> 00:06:57,060 worry about that for now to a kid who's 166 00:06:55,199 --> 00:07:01,020 maybe a little unsure of texts for them 167 00:06:57,060 --> 00:07:02,580 what they hear is Tech isn't for you 168 00:07:01,020 --> 00:07:05,039 this is bad 169 00:07:02,580 --> 00:07:06,120 so let's talk about the stuff here that 170 00:07:05,039 --> 00:07:08,220 doesn't matter 171 00:07:06,120 --> 00:07:10,020 um you know what let's just go ahead and 172 00:07:08,220 --> 00:07:12,919 change the color of everything that 173 00:07:10,020 --> 00:07:15,900 doesn't really matter to red 174 00:07:12,919 --> 00:07:18,060 that's a lot of stuff 175 00:07:15,900 --> 00:07:18,960 so how about we can get rid of all that 176 00:07:18,060 --> 00:07:21,060 stuff 177 00:07:18,960 --> 00:07:23,460 huh 178 00:07:21,060 --> 00:07:26,639 that's better 179 00:07:23,460 --> 00:07:29,280 also doesn't that look a bit like python 180 00:07:26,639 --> 00:07:32,819 so Talk's done if you just use Python 181 00:07:29,280 --> 00:07:36,000 then you're good to go 182 00:07:32,819 --> 00:07:38,280 maybe not okay so let's look at a bigger 183 00:07:36,000 --> 00:07:39,360 example and we'll flash some lights so 184 00:07:38,280 --> 00:07:42,360 we're going to make a little program 185 00:07:39,360 --> 00:07:43,740 that lights up the first three neopixels 186 00:07:42,360 --> 00:07:46,319 in this bar it's going to light them up 187 00:07:43,740 --> 00:07:47,400 red green and blue in turn and then 188 00:07:46,319 --> 00:07:48,900 they're going to stay on for a little 189 00:07:47,400 --> 00:07:52,380 moment and then they're going to clear 190 00:07:48,900 --> 00:07:55,919 and it's just going to do this forever 191 00:07:52,380 --> 00:07:57,360 so here is all the code for that you 192 00:07:55,919 --> 00:07:59,280 don't have to read all this I'll skim 193 00:07:57,360 --> 00:08:01,500 through it but 194 00:07:59,280 --> 00:08:04,319 there's a few things here 195 00:08:01,500 --> 00:08:06,539 um we got a whole bunch of imports we've 196 00:08:04,319 --> 00:08:09,360 got some mysterious line here that 197 00:08:06,539 --> 00:08:11,099 initializes the Neo pixel bar and it's 198 00:08:09,360 --> 00:08:12,960 weird because you've got to say pin but 199 00:08:11,099 --> 00:08:16,020 then you tell P1 and you've already told 200 00:08:12,960 --> 00:08:17,940 the kids that the pnp1 stands for pin so 201 00:08:16,020 --> 00:08:19,440 you're saying pin pin one but I don't 202 00:08:17,940 --> 00:08:21,360 really understand that then you just got 203 00:08:19,440 --> 00:08:23,819 this eight 204 00:08:21,360 --> 00:08:27,180 ah 205 00:08:23,819 --> 00:08:30,120 um and then in the loop you're using 206 00:08:27,180 --> 00:08:31,860 indexes and they don't you haven't 207 00:08:30,120 --> 00:08:34,919 started on lists yet this is an early 208 00:08:31,860 --> 00:08:36,300 program so what is an index 209 00:08:34,919 --> 00:08:38,700 uh 210 00:08:36,300 --> 00:08:40,080 and then after you've written in that 211 00:08:38,700 --> 00:08:42,839 you want that first pixel to be read 212 00:08:40,080 --> 00:08:44,459 then you've also got to do right and I'm 213 00:08:42,839 --> 00:08:48,600 now writing twice but I don't really get 214 00:08:44,459 --> 00:08:51,839 why so there's a lot going on here so 215 00:08:48,600 --> 00:08:54,420 what we've done is we've put together a 216 00:08:51,839 --> 00:08:56,399 fancy little library that you can just 217 00:08:54,420 --> 00:08:59,220 replace all of those inputs with from 218 00:08:56,399 --> 00:09:00,660 connected code import Star 219 00:08:59,220 --> 00:09:02,820 and then 220 00:09:00,660 --> 00:09:05,459 we've got to have a nice smaller program 221 00:09:02,820 --> 00:09:07,140 where we just say hey connect a bar 222 00:09:05,459 --> 00:09:09,720 light on P1 223 00:09:07,140 --> 00:09:11,040 and they understand what a bar light is 224 00:09:09,720 --> 00:09:13,440 because it's the lights that are in a 225 00:09:11,040 --> 00:09:14,339 bar and also you've told them 226 00:09:13,440 --> 00:09:16,620 um 227 00:09:14,339 --> 00:09:18,899 and that function does what it says it 228 00:09:16,620 --> 00:09:21,420 connects a bar light and then in your 229 00:09:18,899 --> 00:09:23,160 Loop we've got set pixel and you set 230 00:09:21,420 --> 00:09:25,740 pixel zero you do have to tell them 231 00:09:23,160 --> 00:09:28,320 about zero indexing and then you give it 232 00:09:25,740 --> 00:09:29,940 a color and in fact this function is 233 00:09:28,320 --> 00:09:33,120 actually really robust if you want to 234 00:09:29,940 --> 00:09:35,820 pass in a string that's an uh hex code 235 00:09:33,120 --> 00:09:37,680 that's totally fine three or six 236 00:09:35,820 --> 00:09:39,839 characters that's fine with or without 237 00:09:37,680 --> 00:09:42,540 the hash that's fine if you want a 238 00:09:39,839 --> 00:09:44,940 string that looks like an array of the 239 00:09:42,540 --> 00:09:48,300 red green blue that's fine handle all of 240 00:09:44,940 --> 00:09:49,980 those really uh misunderstanding proof 241 00:09:48,300 --> 00:09:53,700 mistake proof 242 00:09:49,980 --> 00:09:57,180 um because typing in three numbers or 243 00:09:53,700 --> 00:09:58,860 looking up a hex code is not the 244 00:09:57,180 --> 00:10:00,600 learning like that's not the logic 245 00:09:58,860 --> 00:10:04,019 that's not the computer science that 246 00:10:00,600 --> 00:10:06,420 we're trying to teach that's a step 247 00:10:04,019 --> 00:10:08,160 and so and then we don't have a right 248 00:10:06,420 --> 00:10:09,660 step and then to clear it oh yeah I 249 00:10:08,160 --> 00:10:11,220 meant to mention that bit and then look 250 00:10:09,660 --> 00:10:12,720 at the bottom here to set it all back to 251 00:10:11,220 --> 00:10:15,839 black and clear it you've got to fill it 252 00:10:12,720 --> 00:10:17,459 with zeros and then right but we just 253 00:10:15,839 --> 00:10:19,740 turned it off and didn't write turn 254 00:10:17,459 --> 00:10:21,899 stuff on but it's anyway now we've got 255 00:10:19,740 --> 00:10:22,980 it's got Bardock clear and that clears 256 00:10:21,899 --> 00:10:24,420 the bar 257 00:10:22,980 --> 00:10:26,040 and we like that 258 00:10:24,420 --> 00:10:28,680 but that's pretty small example what 259 00:10:26,040 --> 00:10:31,320 about a bigger example 260 00:10:28,680 --> 00:10:34,200 um well one of the things that we wanted 261 00:10:31,320 --> 00:10:36,720 for our Escape rooms was to have RFID 262 00:10:34,200 --> 00:10:39,740 readers that way you could find various 263 00:10:36,720 --> 00:10:41,820 I don't know if you escape the room was 264 00:10:39,740 --> 00:10:43,320 magical themed or whatever you could 265 00:10:41,820 --> 00:10:45,060 find various potions and each could have 266 00:10:43,320 --> 00:10:46,680 a little RFID tag on the bottom and then 267 00:10:45,060 --> 00:10:48,120 you could put that on the sensor and you 268 00:10:46,680 --> 00:10:49,800 had to get the right potions in the 269 00:10:48,120 --> 00:10:52,140 right order 270 00:10:49,800 --> 00:10:54,959 um so here's all the code to make the 271 00:10:52,140 --> 00:10:56,700 RFID reader work 272 00:10:54,959 --> 00:10:58,140 um or actually once we've all wrapped it 273 00:10:56,700 --> 00:11:00,240 up here's all the code to make that RFID 274 00:10:58,140 --> 00:11:04,079 reader work 275 00:11:00,240 --> 00:11:07,620 and now yes absolutely that's 276 00:11:04,079 --> 00:11:10,560 abstracting a lot away but 277 00:11:07,620 --> 00:11:13,200 you can't teach a grade 8 kid who's 278 00:11:10,560 --> 00:11:16,320 never programmed before how to implement 279 00:11:13,200 --> 00:11:18,600 an i squared C protocol in three days 280 00:11:16,320 --> 00:11:21,180 it's not gonna happen 281 00:11:18,600 --> 00:11:23,160 and so you do this and then they can 282 00:11:21,180 --> 00:11:25,740 read a tag name and they can focus on 283 00:11:23,160 --> 00:11:27,720 the procedure and the logic and the 284 00:11:25,740 --> 00:11:29,540 steps and the problem solving and they 285 00:11:27,720 --> 00:11:31,980 can do cool things that they want to do 286 00:11:29,540 --> 00:11:34,019 and there you go 287 00:11:31,980 --> 00:11:37,320 they understand it they feel cool they 288 00:11:34,019 --> 00:11:40,019 make a cool thing that gets them excited 289 00:11:37,320 --> 00:11:44,579 so how do we wrap things up 290 00:11:40,019 --> 00:11:47,399 well I focus on a couple of main points 291 00:11:44,579 --> 00:11:49,019 the first thing I ask myself is uh what 292 00:11:47,399 --> 00:11:51,360 do they want to do 293 00:11:49,019 --> 00:11:53,640 and by this I mean like 294 00:11:51,360 --> 00:11:55,320 when I'm a student sitting down to work 295 00:11:53,640 --> 00:11:59,040 on a project 296 00:11:55,320 --> 00:12:03,240 and I think okay next I have to do 297 00:11:59,040 --> 00:12:05,220 x what am I putting in there 298 00:12:03,240 --> 00:12:07,140 well the biggest and broadest one is 299 00:12:05,220 --> 00:12:09,120 make a device do something 300 00:12:07,140 --> 00:12:12,420 I want to do something 301 00:12:09,120 --> 00:12:15,180 and for a bit more detail there we could 302 00:12:12,420 --> 00:12:17,519 be like checking a condition they might 303 00:12:15,180 --> 00:12:20,579 not know the term condition but they 304 00:12:17,519 --> 00:12:23,820 want to you know see if something some 305 00:12:20,579 --> 00:12:26,519 condition has been met C 306 00:12:23,820 --> 00:12:28,980 if it's ready to do something that kind 307 00:12:26,519 --> 00:12:31,560 of thing they want to update the state 308 00:12:28,980 --> 00:12:33,540 again might not know state but State 309 00:12:31,560 --> 00:12:35,339 includes changing those lights turning 310 00:12:33,540 --> 00:12:37,680 them on and off they want to update 311 00:12:35,339 --> 00:12:41,040 State and then again a bit broader they 312 00:12:37,680 --> 00:12:42,899 want to get input or produce output they 313 00:12:41,040 --> 00:12:45,660 all of these are 314 00:12:42,899 --> 00:12:47,519 kind of verb statements they're doing 315 00:12:45,660 --> 00:12:49,440 things 316 00:12:47,519 --> 00:12:51,600 so 317 00:12:49,440 --> 00:12:54,839 that's their goal and we want to help 318 00:12:51,600 --> 00:12:56,820 them get to that goal so what bits make 319 00:12:54,839 --> 00:12:57,959 sense to them 320 00:12:56,820 --> 00:12:58,980 this is the stuff that we're going to 321 00:12:57,959 --> 00:13:01,320 build off 322 00:12:58,980 --> 00:13:05,399 so 323 00:13:01,320 --> 00:13:07,019 we build off good function names A lot 324 00:13:05,399 --> 00:13:09,240 of the time in programming we have 325 00:13:07,019 --> 00:13:13,079 function names that make sense if you 326 00:13:09,240 --> 00:13:17,700 already know what they are I know that 327 00:13:13,079 --> 00:13:21,180 if I'm connecting to something via uart 328 00:13:17,700 --> 00:13:23,040 then I'll use the uart function but if 329 00:13:21,180 --> 00:13:24,720 I'm teaching a kid like oh yeah you know 330 00:13:23,040 --> 00:13:27,360 you're going to plug into this radio and 331 00:13:24,720 --> 00:13:29,940 then send the radio messages yada yada 332 00:13:27,360 --> 00:13:33,240 and so you type uart 333 00:13:29,940 --> 00:13:34,800 what does uart have to do with radio oh 334 00:13:33,240 --> 00:13:36,139 it's just not 335 00:13:34,800 --> 00:13:37,980 related 336 00:13:36,139 --> 00:13:40,139 and so 337 00:13:37,980 --> 00:13:42,120 a big emphasis is on good function names 338 00:13:40,139 --> 00:13:44,100 and that's why it had names like connect 339 00:13:42,120 --> 00:13:45,720 to Bar Light it might be long it might 340 00:13:44,100 --> 00:13:48,240 be a fair amount of typing 341 00:13:45,720 --> 00:13:51,180 but it says what it does and I think 342 00:13:48,240 --> 00:13:53,880 that's really underrated 343 00:13:51,180 --> 00:13:57,560 the next is clear steps 344 00:13:53,880 --> 00:14:01,940 this is what I was getting at with that 345 00:13:57,560 --> 00:14:04,740 neopixel initializing uh line there 346 00:14:01,940 --> 00:14:06,300 it had a few steps that didn't really 347 00:14:04,740 --> 00:14:09,660 make sense we were telling it connected 348 00:14:06,300 --> 00:14:12,540 on P1 pin one but then we have to tell 349 00:14:09,660 --> 00:14:14,399 it that that's a pin but surely like it 350 00:14:12,540 --> 00:14:15,720 should know that right 351 00:14:14,399 --> 00:14:18,120 one of the things that I was always 352 00:14:15,720 --> 00:14:20,220 taught when I was learning to program 353 00:14:18,120 --> 00:14:21,060 shout out to my mum 354 00:14:20,220 --> 00:14:24,480 um 355 00:14:21,060 --> 00:14:26,839 was don't ask the user for anything that 356 00:14:24,480 --> 00:14:30,899 you already know 357 00:14:26,839 --> 00:14:33,839 I know if I'm setting up 358 00:14:30,899 --> 00:14:37,920 a near pixel or any other peripheral 359 00:14:33,839 --> 00:14:39,420 I know if it needs a pin right and sure 360 00:14:37,920 --> 00:14:41,100 I don't know what pen it's plugged in on 361 00:14:39,420 --> 00:14:43,019 I've got to get them to tell me that pin 362 00:14:41,100 --> 00:14:45,240 but I have to get them to tell me that 363 00:14:43,019 --> 00:14:49,139 the pin that they're telling me is a pin 364 00:14:45,240 --> 00:14:51,240 that's known so remove those unclear 365 00:14:49,139 --> 00:14:53,220 steps clarify things 366 00:14:51,240 --> 00:14:54,839 um get rid of that eight that eight if 367 00:14:53,220 --> 00:14:58,560 you're wondering is how many pixels are 368 00:14:54,839 --> 00:15:01,019 on the bar but I as the teacher in this 369 00:14:58,560 --> 00:15:02,820 scenario I bought all those bars 370 00:15:01,019 --> 00:15:04,019 I know how many pixels are on those bars 371 00:15:02,820 --> 00:15:06,480 they don't have access to any other 372 00:15:04,019 --> 00:15:08,519 neopixel things it's those bars they all 373 00:15:06,480 --> 00:15:11,120 have eight I don't need them to tell me 374 00:15:08,519 --> 00:15:11,120 it's got eight 375 00:15:12,600 --> 00:15:17,639 they also understand generally if 376 00:15:15,180 --> 00:15:21,260 statements 377 00:15:17,639 --> 00:15:21,260 and I did want to call this app because 378 00:15:22,079 --> 00:15:26,519 programs that just do the same thing 379 00:15:23,940 --> 00:15:28,920 every time aren't that exciting to the 380 00:15:26,519 --> 00:15:30,480 kids they want to feel like stuff 381 00:15:28,920 --> 00:15:32,760 changes 382 00:15:30,480 --> 00:15:35,399 and so 383 00:15:32,760 --> 00:15:37,560 and and it's generally pretty easy to 384 00:15:35,399 --> 00:15:39,660 explain if statements to them 385 00:15:37,560 --> 00:15:41,519 the the classic example is if it's 386 00:15:39,660 --> 00:15:43,500 raining take an umbrella they're like oh 387 00:15:41,519 --> 00:15:44,940 yeah you check a thing and then you do a 388 00:15:43,500 --> 00:15:46,860 thing 389 00:15:44,940 --> 00:15:50,519 and so 390 00:15:46,860 --> 00:15:54,240 whenever you can strip the logic down to 391 00:15:50,519 --> 00:15:57,540 present it to them as if statements that 392 00:15:54,240 --> 00:15:59,459 is easier than a lot of other 393 00:15:57,540 --> 00:16:01,139 um like using functions that have sort 394 00:15:59,459 --> 00:16:04,139 of hidden implicit ifs that they don't 395 00:16:01,139 --> 00:16:06,180 know about and things like that 396 00:16:04,139 --> 00:16:08,160 and the last thing that makes sense and 397 00:16:06,180 --> 00:16:10,320 this controversial is variables 398 00:16:08,160 --> 00:16:11,940 eventually 399 00:16:10,320 --> 00:16:14,339 um variables are really hard to explain 400 00:16:11,940 --> 00:16:16,500 I'm sure any of you who have tried 401 00:16:14,339 --> 00:16:19,260 teaching programming will agree with me 402 00:16:16,500 --> 00:16:21,360 variables are one of the biggest 403 00:16:19,260 --> 00:16:24,120 stumbling blocks 404 00:16:21,360 --> 00:16:26,100 but they do get there 405 00:16:24,120 --> 00:16:27,720 and in fact most of them get there 406 00:16:26,100 --> 00:16:30,660 pretty quickly 407 00:16:27,720 --> 00:16:33,060 and so then you can keep using variables 408 00:16:30,660 --> 00:16:34,560 and you can build upon that and they 409 00:16:33,060 --> 00:16:36,199 will understand okay you put something 410 00:16:34,560 --> 00:16:40,380 in a variable and then you can use that 411 00:16:36,199 --> 00:16:42,540 and this helps keep 412 00:16:40,380 --> 00:16:43,980 um keep things going rather than having 413 00:16:42,540 --> 00:16:46,740 a 414 00:16:43,980 --> 00:16:49,199 sort of implicit state or a static class 415 00:16:46,740 --> 00:16:51,240 or things like that put it in a variable 416 00:16:49,199 --> 00:16:52,500 and they tend to understand that a bit 417 00:16:51,240 --> 00:16:55,920 better 418 00:16:52,500 --> 00:16:58,199 so what gets in the way well 419 00:16:55,920 --> 00:16:59,820 this is the stuff that we want to limit 420 00:16:58,199 --> 00:17:01,560 um and in a way it's kind of the exact 421 00:16:59,820 --> 00:17:04,140 opposite of that previous list but we're 422 00:17:01,560 --> 00:17:07,020 going to start with bad names 423 00:17:04,140 --> 00:17:09,540 um bad names are bad they they are 424 00:17:07,020 --> 00:17:10,260 confusing if the name is not clear it 425 00:17:09,540 --> 00:17:13,559 won't 426 00:17:10,260 --> 00:17:16,020 it it provides a barrier every time both 427 00:17:13,559 --> 00:17:18,360 to just using it correctly but also to 428 00:17:16,020 --> 00:17:20,220 remembering it and 429 00:17:18,360 --> 00:17:21,600 the ability to actually just sit there 430 00:17:20,220 --> 00:17:25,319 and be like oh yeah I know what I have 431 00:17:21,600 --> 00:17:27,000 to do that's really critical to feeling 432 00:17:25,319 --> 00:17:28,020 like they're achieving something and 433 00:17:27,000 --> 00:17:30,660 feeling like they're learning something 434 00:17:28,020 --> 00:17:32,580 for a lot of students if they don't feel 435 00:17:30,660 --> 00:17:33,960 like they can remember the stuff that 436 00:17:32,580 --> 00:17:35,700 they've been learning 437 00:17:33,960 --> 00:17:36,720 then they don't feel like they're 438 00:17:35,700 --> 00:17:39,380 learning and they don't feel like 439 00:17:36,720 --> 00:17:39,380 they're achieving 440 00:17:40,140 --> 00:17:44,340 eliminate extra steps 441 00:17:42,480 --> 00:17:46,260 like we saw with the neopixel where we 442 00:17:44,340 --> 00:17:48,780 had that extra right after we told it 443 00:17:46,260 --> 00:17:49,740 what pixel it is now to be clear I 444 00:17:48,780 --> 00:17:51,900 understand the difference between 445 00:17:49,740 --> 00:17:54,120 setting the color and using right if 446 00:17:51,900 --> 00:17:56,220 you've not used neopixels before they 447 00:17:54,120 --> 00:17:58,080 essentially just get treated as an array 448 00:17:56,220 --> 00:17:59,940 you put your colors in and then when you 449 00:17:58,080 --> 00:18:01,260 say write the whole set of neopixels 450 00:17:59,940 --> 00:18:03,240 updates 451 00:18:01,260 --> 00:18:05,460 but 452 00:18:03,240 --> 00:18:07,620 um computers are fast 453 00:18:05,460 --> 00:18:11,640 even like little computers like a 454 00:18:07,620 --> 00:18:14,460 kookaburra or a micro bit and as far as 455 00:18:11,640 --> 00:18:16,500 99 of the stuff that the kids will be 456 00:18:14,460 --> 00:18:18,299 doing matters you could just write that 457 00:18:16,500 --> 00:18:19,679 every time it doesn't really matter so 458 00:18:18,299 --> 00:18:22,320 don't get the student to write it I'll 459 00:18:19,679 --> 00:18:23,280 write it in the wrapper 460 00:18:22,320 --> 00:18:25,500 um 461 00:18:23,280 --> 00:18:27,240 unnecessary arguments things that are 462 00:18:25,500 --> 00:18:29,220 confusing things where you have to 463 00:18:27,240 --> 00:18:32,100 specify stuff that should already be 464 00:18:29,220 --> 00:18:34,020 known a la how many micro how many 465 00:18:32,100 --> 00:18:37,080 neopixels are there 466 00:18:34,020 --> 00:18:39,240 if you can remove those by adding 467 00:18:37,080 --> 00:18:42,299 default arguments or even just 468 00:18:39,240 --> 00:18:43,919 not having them just fixing them that 469 00:18:42,299 --> 00:18:45,660 makes it a lot more approachable every 470 00:18:43,919 --> 00:18:47,940 time they have to have another comma and 471 00:18:45,660 --> 00:18:49,559 another thing inside the brackets it's 472 00:18:47,940 --> 00:18:51,960 another question of wait where does the 473 00:18:49,559 --> 00:18:54,840 bracket go and what order do these have 474 00:18:51,960 --> 00:18:57,179 to go in and have I done all of them or 475 00:18:54,840 --> 00:18:58,980 have I forgotten one so remove 476 00:18:57,179 --> 00:19:01,799 unnecessary arguments 477 00:18:58,980 --> 00:19:04,380 and then uh remove protocols I touched 478 00:19:01,799 --> 00:19:07,559 on this with i squared C and alluded to 479 00:19:04,380 --> 00:19:10,919 uart but when you have to follow a 480 00:19:07,559 --> 00:19:13,679 procedure that is Technical and has many 481 00:19:10,919 --> 00:19:15,299 good technical reasons for existing but 482 00:19:13,679 --> 00:19:18,960 you are just starting your technical 483 00:19:15,299 --> 00:19:20,940 Journey that procedure is impossible 484 00:19:18,960 --> 00:19:22,440 so you won't do it and that limits what 485 00:19:20,940 --> 00:19:25,860 you can do lots of really cool things 486 00:19:22,440 --> 00:19:27,960 use I squared C and use uart and use all 487 00:19:25,860 --> 00:19:31,620 sorts of ways to communicate over these 488 00:19:27,960 --> 00:19:32,520 protocols that students won't manage to 489 00:19:31,620 --> 00:19:34,200 get to 490 00:19:32,520 --> 00:19:37,620 and 491 00:19:34,200 --> 00:19:40,020 if you can do that behind the scenes for 492 00:19:37,620 --> 00:19:42,840 them and expose them in an abstracted 493 00:19:40,020 --> 00:19:45,539 interface that tell that offers to them 494 00:19:42,840 --> 00:19:48,660 what they want to do 495 00:19:45,539 --> 00:19:52,440 that will lead to them having 496 00:19:48,660 --> 00:19:54,299 a vastly expanded set of actions that 497 00:19:52,440 --> 00:19:56,960 they can do instead of features that 498 00:19:54,299 --> 00:19:56,960 they can implement 499 00:19:57,539 --> 00:20:02,039 and the last thing I consider is that 500 00:19:59,760 --> 00:20:05,700 consistency is key 501 00:20:02,039 --> 00:20:07,980 like really this is really key 502 00:20:05,700 --> 00:20:11,280 you want to build on what they know if 503 00:20:07,980 --> 00:20:14,580 they have learned how to use the basic 504 00:20:11,280 --> 00:20:18,299 functions like print or int 505 00:20:14,580 --> 00:20:21,059 build on that keep using basic functions 506 00:20:18,299 --> 00:20:23,280 that are similar to but distinct from 507 00:20:21,059 --> 00:20:25,500 print and int 508 00:20:23,280 --> 00:20:28,740 if they have understood 509 00:20:25,500 --> 00:20:31,020 a while loop build on that let them keep 510 00:20:28,740 --> 00:20:32,100 using while Loops reinforce that 511 00:20:31,020 --> 00:20:34,919 knowledge 512 00:20:32,100 --> 00:20:37,200 and help them to understand 513 00:20:34,919 --> 00:20:38,700 how you can remix that knowledge 514 00:20:37,200 --> 00:20:40,140 essentially into all sorts of different 515 00:20:38,700 --> 00:20:43,020 things 516 00:20:40,140 --> 00:20:44,280 so you're reinforcing these lessons they 517 00:20:43,020 --> 00:20:47,760 can keep 518 00:20:44,280 --> 00:20:50,580 uh using the same systems in different 519 00:20:47,760 --> 00:20:51,179 ways they will 520 00:20:50,580 --> 00:20:54,660 um 521 00:20:51,179 --> 00:20:57,960 become more familiar they'll become more 522 00:20:54,660 --> 00:21:00,000 confident and they will start to achieve 523 00:20:57,960 --> 00:21:03,179 a lot more 524 00:21:00,000 --> 00:21:05,640 and then maintain your patterns 525 00:21:03,179 --> 00:21:08,220 this is more comes to when using or 526 00:21:05,640 --> 00:21:09,539 making this kind of wrapper 527 00:21:08,220 --> 00:21:12,900 um 528 00:21:09,539 --> 00:21:13,860 but if you start to establish one 529 00:21:12,900 --> 00:21:18,179 pattern 530 00:21:13,860 --> 00:21:19,679 keep that going as much as possible 531 00:21:18,179 --> 00:21:21,600 when you have all these different 532 00:21:19,679 --> 00:21:23,880 peripherals like I showed they're all 533 00:21:21,600 --> 00:21:26,100 from different manufacturers and they 534 00:21:23,880 --> 00:21:28,200 all have different 535 00:21:26,100 --> 00:21:32,299 um different feature sets different 536 00:21:28,200 --> 00:21:35,460 interfaces different ways of operating 537 00:21:32,299 --> 00:21:36,600 that each one is a new thing that has to 538 00:21:35,460 --> 00:21:38,640 be learned and we've all come across 539 00:21:36,600 --> 00:21:40,679 that when you install a new library 540 00:21:38,640 --> 00:21:43,100 using pip or you get a new piece of 541 00:21:40,679 --> 00:21:46,140 hardware and you start using its 542 00:21:43,100 --> 00:21:47,400 interface and it's different to other 543 00:21:46,140 --> 00:21:49,200 ones and you have to spend quite a lot 544 00:21:47,400 --> 00:21:53,580 of time learning that 545 00:21:49,200 --> 00:21:55,440 that's time and expertise that the 546 00:21:53,580 --> 00:21:57,840 children don't have yet they don't have 547 00:21:55,440 --> 00:22:00,059 the time with a suitable teacher because 548 00:21:57,840 --> 00:22:01,740 you've got a whole classroom or you've 549 00:22:00,059 --> 00:22:03,720 got a bunch of kids you're tutoring or 550 00:22:01,740 --> 00:22:05,880 you're running a whole event and so you 551 00:22:03,720 --> 00:22:07,620 can't give them the one-on-one time that 552 00:22:05,880 --> 00:22:09,419 many will need to get across that 553 00:22:07,620 --> 00:22:11,520 interface 554 00:22:09,419 --> 00:22:13,740 and then also they don't have the 555 00:22:11,520 --> 00:22:16,620 expertise they're not confident in Tech 556 00:22:13,740 --> 00:22:18,900 they're not comfortable with reading 557 00:22:16,620 --> 00:22:21,659 documentation so you can't just say here 558 00:22:18,900 --> 00:22:24,059 are the docs off you go learn it 559 00:22:21,659 --> 00:22:25,919 they just never open that and then they 560 00:22:24,059 --> 00:22:27,360 will not do Tech and then they all drop 561 00:22:25,919 --> 00:22:29,280 out of the class and then they won't 562 00:22:27,360 --> 00:22:31,620 ever do Tech again because you have 563 00:22:29,280 --> 00:22:33,539 taught them it's not for them so 564 00:22:31,620 --> 00:22:36,419 maintain your patterns 565 00:22:33,539 --> 00:22:38,039 one that I really like to use is from 566 00:22:36,419 --> 00:22:40,500 English I mean lots of other languages 567 00:22:38,039 --> 00:22:42,360 but it's what we do here uh subject verb 568 00:22:40,500 --> 00:22:45,600 object 569 00:22:42,360 --> 00:22:50,400 I want my thing subject to do a thing 570 00:22:45,600 --> 00:22:53,700 verb about this thing object 571 00:22:50,400 --> 00:22:55,679 and we saw this with the bar light bar 572 00:22:53,700 --> 00:22:58,320 dot set pixel 573 00:22:55,679 --> 00:23:00,840 that pixel to that color 574 00:22:58,320 --> 00:23:03,480 same for the iPhone e-reader RFID reader 575 00:23:00,840 --> 00:23:05,159 Dot read tag name 576 00:23:03,480 --> 00:23:06,720 that one doesn't have an object not 577 00:23:05,159 --> 00:23:08,940 every sentence has an object sometimes 578 00:23:06,720 --> 00:23:11,100 the subject verb is enough 579 00:23:08,940 --> 00:23:14,580 she ran 580 00:23:11,100 --> 00:23:17,039 so how have these rappers gone when 581 00:23:14,580 --> 00:23:18,059 we've used them what kind of results did 582 00:23:17,039 --> 00:23:20,100 we see 583 00:23:18,059 --> 00:23:22,320 so as I said before we had four major 584 00:23:20,100 --> 00:23:24,179 events with these rappers and we run 585 00:23:22,320 --> 00:23:26,220 surveys before and after the events 586 00:23:24,179 --> 00:23:29,159 where the students answer a bunch of 587 00:23:26,220 --> 00:23:30,419 questions about what kind of stuff that 588 00:23:29,159 --> 00:23:32,400 they've done before the tech that 589 00:23:30,419 --> 00:23:34,919 they've done before how much are they 590 00:23:32,400 --> 00:23:36,360 engaged with stem what do they like yada 591 00:23:34,919 --> 00:23:38,100 yada 592 00:23:36,360 --> 00:23:40,799 and we asked them 593 00:23:38,100 --> 00:23:43,400 in various forms how much do you like 594 00:23:40,799 --> 00:23:43,400 coding 595 00:23:45,000 --> 00:23:50,580 totaling up the surveys from these 596 00:23:47,100 --> 00:23:52,980 events before the events about 26 597 00:23:50,580 --> 00:23:57,419 percent of students have a positive 598 00:23:52,980 --> 00:23:58,380 opinion of coding and 39 don't 599 00:23:57,419 --> 00:24:00,419 um 600 00:23:58,380 --> 00:24:02,159 clearly that's not 601 00:24:00,419 --> 00:24:05,100 a lot of the kids 602 00:24:02,159 --> 00:24:08,159 so how did we go with using these 603 00:24:05,100 --> 00:24:09,539 wrappers well in the surveys after the 604 00:24:08,159 --> 00:24:11,880 events 605 00:24:09,539 --> 00:24:16,380 55 of the kids said that they like 606 00:24:11,880 --> 00:24:19,740 coding and only 15 said that they didn't 607 00:24:16,380 --> 00:24:22,380 I think this is a huge success this is 608 00:24:19,740 --> 00:24:25,260 this is taking kids who genuinely didn't 609 00:24:22,380 --> 00:24:28,140 like coding thought 610 00:24:25,260 --> 00:24:29,880 like an end when I put this together I 611 00:24:28,140 --> 00:24:31,799 checked like is this are these results 612 00:24:29,880 --> 00:24:34,320 coming from kids who have done some 613 00:24:31,799 --> 00:24:36,539 coding and I filtered down to that 614 00:24:34,320 --> 00:24:39,799 and yeah they've done coding and they're 615 00:24:36,539 --> 00:24:39,799 like yep it sucks 616 00:24:40,380 --> 00:24:45,000 I don't want to do it 617 00:24:42,059 --> 00:24:47,400 but their school said they had to uh so 618 00:24:45,000 --> 00:24:50,700 we had them and then 619 00:24:47,400 --> 00:24:52,980 they did and then they liked it 620 00:24:50,700 --> 00:24:54,659 I think that a lot of the problem is 621 00:24:52,980 --> 00:24:55,980 yeah we're being thrown in the deep end 622 00:24:54,659 --> 00:24:57,059 and being told like yeah you're going to 623 00:24:55,980 --> 00:25:00,360 do this thing and you're going to work 624 00:24:57,059 --> 00:25:02,400 it out and there's a lot here that is 625 00:25:00,360 --> 00:25:03,539 difficult and then they're not given the 626 00:25:02,400 --> 00:25:06,919 support and they're not coped through 627 00:25:03,539 --> 00:25:10,679 and there are a lot of impediments to 628 00:25:06,919 --> 00:25:13,080 achieving things 629 00:25:10,679 --> 00:25:16,020 and I went through a whole bunch 630 00:25:13,080 --> 00:25:18,780 a whole bunch like 400 kids worth 631 00:25:16,020 --> 00:25:21,179 of the feedback and there's lots of it 632 00:25:18,780 --> 00:25:23,460 and lots of it was positive and one of 633 00:25:21,179 --> 00:25:25,020 the really recurring themes was that we 634 00:25:23,460 --> 00:25:28,740 made it approachable 635 00:25:25,020 --> 00:25:31,080 we made them feel like they could do 636 00:25:28,740 --> 00:25:33,600 interesting things that they didn't 637 00:25:31,080 --> 00:25:35,940 think that they could do 638 00:25:33,600 --> 00:25:38,820 we made them feel like they could read 639 00:25:35,940 --> 00:25:40,919 an RFID tag and when that the right tag 640 00:25:38,820 --> 00:25:43,679 is placed on the thing you could open up 641 00:25:40,919 --> 00:25:45,480 a box that was previously locked had a 642 00:25:43,679 --> 00:25:47,940 solenoid in it to be an electromagne 643 00:25:45,480 --> 00:25:50,039 like controlled by circuitry controlled 644 00:25:47,940 --> 00:25:52,740 by the kookaburri locked in there 645 00:25:50,039 --> 00:25:55,440 interesting things it's an escape room 646 00:25:52,740 --> 00:25:58,380 opens up because of code that they wrote 647 00:25:55,440 --> 00:26:01,140 and they can see oh wow yeah when I do 648 00:25:58,380 --> 00:26:03,240 this that happens and I think that's a 649 00:26:01,140 --> 00:26:06,720 really important thing I think this is 650 00:26:03,240 --> 00:26:10,320 as a slight tangent why devices like 651 00:26:06,720 --> 00:26:13,679 kookaburrias are really good is because 652 00:26:10,320 --> 00:26:15,600 if you first teach python using idle as 653 00:26:13,679 --> 00:26:18,059 an example and you teach them print 654 00:26:15,600 --> 00:26:19,500 hello world then they type into the 655 00:26:18,059 --> 00:26:20,700 computer and then text appears on the 656 00:26:19,500 --> 00:26:22,320 computer 657 00:26:20,700 --> 00:26:23,340 and and also text appears on the 658 00:26:22,320 --> 00:26:25,140 computer when they hit the Run button 659 00:26:23,340 --> 00:26:27,299 it's just over there now 660 00:26:25,140 --> 00:26:28,980 and like uh text appears to the computer 661 00:26:27,299 --> 00:26:30,360 when I type all the time 662 00:26:28,980 --> 00:26:31,260 like that's just what happens when you 663 00:26:30,360 --> 00:26:32,880 type 664 00:26:31,260 --> 00:26:34,140 I haven't done anything that's just what 665 00:26:32,880 --> 00:26:36,120 computers do 666 00:26:34,140 --> 00:26:37,440 but they understand the concept of two 667 00:26:36,120 --> 00:26:39,480 different computers 668 00:26:37,440 --> 00:26:41,340 and they understand that the kookaberry 669 00:26:39,480 --> 00:26:43,460 is a different computer with this little 670 00:26:41,340 --> 00:26:46,320 screen and so when you type 671 00:26:43,460 --> 00:26:47,700 display.print hello world and then you 672 00:26:46,320 --> 00:26:50,520 hit go 673 00:26:47,700 --> 00:26:52,320 and it appears on the kookaberry well 674 00:26:50,520 --> 00:26:54,299 now you've made a computer tell another 675 00:26:52,320 --> 00:26:55,679 computer to do a thing 676 00:26:54,299 --> 00:26:57,500 and that's big 677 00:26:55,679 --> 00:27:01,440 like I think that is a huge distinction 678 00:26:57,500 --> 00:27:03,539 that is vastly overlooked that gets them 679 00:27:01,440 --> 00:27:05,880 excited and then when you can go a step 680 00:27:03,539 --> 00:27:08,279 further and you have your computer tell 681 00:27:05,880 --> 00:27:09,539 the little computer to tell the box to 682 00:27:08,279 --> 00:27:11,700 unlock 683 00:27:09,539 --> 00:27:13,500 you can control a lock with a computer 684 00:27:11,700 --> 00:27:14,940 being controlled by a computer that you 685 00:27:13,500 --> 00:27:18,059 typed into 686 00:27:14,940 --> 00:27:19,080 that's good stuff they like that 687 00:27:18,059 --> 00:27:22,380 so 688 00:27:19,080 --> 00:27:23,940 how can you do this too 689 00:27:22,380 --> 00:27:26,279 well 690 00:27:23,940 --> 00:27:28,140 there's a bunch of stuff you can do 691 00:27:26,279 --> 00:27:30,000 firstly you can check out some of the 692 00:27:28,140 --> 00:27:31,440 demo wrappers that I've put together on 693 00:27:30,000 --> 00:27:34,140 GitHub 694 00:27:31,440 --> 00:27:35,700 um that's our organization and the repo 695 00:27:34,140 --> 00:27:37,860 I'll leave it I'm not about to change 696 00:27:35,700 --> 00:27:39,299 the slide anytime soon so take photos if 697 00:27:37,860 --> 00:27:40,620 you want 698 00:27:39,299 --> 00:27:43,380 um 699 00:27:40,620 --> 00:27:45,720 that has a few of these wrappers 700 00:27:43,380 --> 00:27:48,179 available for you there's a couple that 701 00:27:45,720 --> 00:27:49,679 are pre-compiled because also this is 702 00:27:48,179 --> 00:27:53,100 our business 703 00:27:49,679 --> 00:27:55,440 um and but there are a few of them that 704 00:27:53,100 --> 00:27:57,080 are just there as python files you can 705 00:27:55,440 --> 00:28:00,539 have a look you can see how I do them 706 00:27:57,080 --> 00:28:03,020 you can also see the cunning way that I 707 00:28:00,539 --> 00:28:06,900 have that connected code Library set up 708 00:28:03,020 --> 00:28:08,640 where you can import just from connector 709 00:28:06,900 --> 00:28:10,200 code import Star and you get all of the 710 00:28:08,640 --> 00:28:11,880 libraries and all of the wrappers and 711 00:28:10,200 --> 00:28:13,679 everything 712 00:28:11,880 --> 00:28:15,539 um you can make your own wrappers this 713 00:28:13,679 --> 00:28:18,480 is particularly good if you are not 714 00:28:15,539 --> 00:28:20,039 using uh cooker berries which I'll talk 715 00:28:18,480 --> 00:28:22,260 more about in a second most of you 716 00:28:20,039 --> 00:28:23,539 probably aren't using cooker barriers 717 00:28:22,260 --> 00:28:26,940 um but if you're using things like 718 00:28:23,539 --> 00:28:28,679 arduinos or raspberry pies 719 00:28:26,940 --> 00:28:30,419 um writing your own wrappers might well 720 00:28:28,679 --> 00:28:32,820 be the way to go 721 00:28:30,419 --> 00:28:34,320 um email me for advice my email's been 722 00:28:32,820 --> 00:28:35,700 on pretty much every slide it's also 723 00:28:34,320 --> 00:28:37,140 there's a second email for connected 724 00:28:35,700 --> 00:28:39,779 code that's on this side as well so 725 00:28:37,140 --> 00:28:42,000 you've got two of my emails now 726 00:28:39,779 --> 00:28:43,740 um email me and ask for advice or just 727 00:28:42,000 --> 00:28:45,720 show off that's cool I like to see what 728 00:28:43,740 --> 00:28:50,159 people have done 729 00:28:45,720 --> 00:28:51,900 um you can email us at Connected code 730 00:28:50,159 --> 00:28:54,480 um and we can come to you we go to 731 00:28:51,900 --> 00:28:56,700 schools and run events we and and they 732 00:28:54,480 --> 00:28:58,799 can be little events for you know four 733 00:28:56,700 --> 00:29:01,200 or five students who just need someone 734 00:28:58,799 --> 00:29:03,120 to come in and do a fun project 735 00:29:01,200 --> 00:29:06,480 um to help with you know a grade 11 or 736 00:29:03,120 --> 00:29:07,440 12 uh software class 737 00:29:06,480 --> 00:29:08,940 um 738 00:29:07,440 --> 00:29:11,159 or 739 00:29:08,940 --> 00:29:14,580 we can come and run a huge event we've 740 00:29:11,159 --> 00:29:16,980 we've won ones for the escape room was 741 00:29:14,580 --> 00:29:19,559 165 students I think the data objective 742 00:29:16,980 --> 00:29:21,179 was 180 students we did it for two whole 743 00:29:19,559 --> 00:29:23,159 grades each 744 00:29:21,179 --> 00:29:25,860 um and they were huge events and we can 745 00:29:23,159 --> 00:29:28,020 absolutely do that and lastly check out 746 00:29:25,860 --> 00:29:29,279 the kookaburries so the kookaburries uh 747 00:29:28,020 --> 00:29:31,679 real quick quote for them the Austin 748 00:29:29,279 --> 00:29:33,840 stem Foundation is really cool that a 749 00:29:31,679 --> 00:29:34,980 really cool stuff with the kookaburries 750 00:29:33,840 --> 00:29:37,320 and with supporting educational 751 00:29:34,980 --> 00:29:39,539 initiatives 752 00:29:37,320 --> 00:29:41,700 um the cookware is now available to 753 00:29:39,539 --> 00:29:43,620 purchase again you email them and sort 754 00:29:41,700 --> 00:29:45,360 it all out the reason for that process 755 00:29:43,620 --> 00:29:47,880 is because they have had been supply 756 00:29:45,360 --> 00:29:50,279 chain issues crypto miners chips ordered 757 00:29:47,880 --> 00:29:51,899 you all know that or if you don't it 758 00:29:50,279 --> 00:29:52,740 doesn't really matter 759 00:29:51,899 --> 00:29:55,140 um 760 00:29:52,740 --> 00:29:57,899 but they're available again so check 761 00:29:55,140 --> 00:29:58,500 those out at Austin 762 00:29:57,899 --> 00:30:01,200 um 763 00:29:58,500 --> 00:30:03,360 that's pretty much it for me there's a 764 00:30:01,200 --> 00:30:06,260 nice picture courtesy of Apple uh does 765 00:30:03,360 --> 00:30:06,260 anyone have any questions 766 00:30:07,860 --> 00:30:11,340 yeah 767 00:30:09,299 --> 00:30:13,080 oh yeah there's Mike coming that's 768 00:30:11,340 --> 00:30:15,779 better because then everyone on the 769 00:30:13,080 --> 00:30:18,179 recording can hear that 770 00:30:15,779 --> 00:30:20,659 is there a mic I don't know do I have to 771 00:30:18,179 --> 00:30:20,659 just come and 772 00:30:21,240 --> 00:30:26,000 that's good Tech stuff there we go oh 773 00:30:23,760 --> 00:30:26,000 yeah 774 00:30:28,410 --> 00:30:32,340 [Music] 775 00:30:29,700 --> 00:30:33,659 thank you thank you 776 00:30:32,340 --> 00:30:38,159 mug 777 00:30:33,659 --> 00:30:39,600 okay question I'll get on that 778 00:30:38,159 --> 00:30:41,340 thanks very much for the presentation 779 00:30:39,600 --> 00:30:44,220 Jack thank you I had a curious question 780 00:30:41,340 --> 00:30:47,220 when you're introducing coding to kids 781 00:30:44,220 --> 00:30:49,140 of I don't know no matter the age do you 782 00:30:47,220 --> 00:30:51,539 jump directly for them to use Hardware 783 00:30:49,140 --> 00:30:53,580 like koled like a kugaberry or a robot 784 00:30:51,539 --> 00:30:55,260 or a raspberry whatever or do you spend 785 00:30:53,580 --> 00:30:57,179 some time purely with coding with things 786 00:30:55,260 --> 00:30:59,940 like scratch or something that takes 787 00:30:57,179 --> 00:31:01,140 only like software related so basically 788 00:30:59,940 --> 00:31:02,820 yeah the question is like to introduce 789 00:31:01,140 --> 00:31:04,020 them you jump directly to software and 790 00:31:02,820 --> 00:31:05,700 Hardware or you spend some time with 791 00:31:04,020 --> 00:31:07,860 silver only and then once they know the 792 00:31:05,700 --> 00:31:10,980 basics jump into Hardware as well 793 00:31:07,860 --> 00:31:14,039 I think jumping the hardware 794 00:31:10,980 --> 00:31:16,500 um is the way to go I think because of 795 00:31:14,039 --> 00:31:19,559 that distinction I was saying about 796 00:31:16,500 --> 00:31:21,840 um bringing like making your computer 797 00:31:19,559 --> 00:31:23,279 make another computer do something I 798 00:31:21,840 --> 00:31:25,679 think that's a really exciting moment 799 00:31:23,279 --> 00:31:28,320 for a lot of kids and I think the sooner 800 00:31:25,679 --> 00:31:30,480 you can get to that the sooner you will 801 00:31:28,320 --> 00:31:32,520 get them interested and this is 802 00:31:30,480 --> 00:31:33,539 important because the longer you take to 803 00:31:32,520 --> 00:31:35,220 get them interested the more 804 00:31:33,539 --> 00:31:36,779 disinterested they will become and the 805 00:31:35,220 --> 00:31:39,620 more kids will decide that it's not for 806 00:31:36,779 --> 00:31:39,620 them and they're not interested 807 00:31:40,080 --> 00:31:45,840 yes that's a great Point thank you Renee 808 00:31:43,200 --> 00:31:46,500 who is the CEO of connected code 809 00:31:45,840 --> 00:31:49,320 um 810 00:31:46,500 --> 00:31:53,399 one thing that we do do for younger kids 811 00:31:49,320 --> 00:31:54,899 is the Austin Foundation also uses uh 812 00:31:53,399 --> 00:31:57,419 blockly they have their own slight 813 00:31:54,899 --> 00:32:00,240 variant called cooker blockly 814 00:31:57,419 --> 00:32:02,340 um and so these kookaburries can be 815 00:32:00,240 --> 00:32:04,260 programmed using blockly that's great 816 00:32:02,340 --> 00:32:04,980 for the younger kids 817 00:32:04,260 --> 00:32:07,260 um 818 00:32:04,980 --> 00:32:09,779 the rapper concept doesn't really apply 819 00:32:07,260 --> 00:32:12,360 to blockly because you there are fixed 820 00:32:09,779 --> 00:32:14,820 blocks and such but we have also worked 821 00:32:12,360 --> 00:32:17,640 with the ostam foundation to add in a 822 00:32:14,820 --> 00:32:19,020 few blocks when needed to essentially do 823 00:32:17,640 --> 00:32:21,059 the same thing and you know here's 824 00:32:19,020 --> 00:32:22,980 here's a block that does this little 825 00:32:21,059 --> 00:32:25,740 feature fakes the channel on a broadcast 826 00:32:22,980 --> 00:32:27,480 radio or something like that 827 00:32:25,740 --> 00:32:30,380 um so yes great question and great 828 00:32:27,480 --> 00:32:30,380 suggestion thank you 829 00:32:30,659 --> 00:32:34,140 yeah um thank you Jack 830 00:32:33,480 --> 00:32:36,240 um 831 00:32:34,140 --> 00:32:37,200 so I'm curious about what happens and I 832 00:32:36,240 --> 00:32:39,179 know you said it's sort of the one 833 00:32:37,200 --> 00:32:40,200 percent case what happens when the 834 00:32:39,179 --> 00:32:43,980 student 835 00:32:40,200 --> 00:32:45,899 hits the edge of the of the rapper and 836 00:32:43,980 --> 00:32:47,100 I'm I I know there's lots of things you 837 00:32:45,899 --> 00:32:48,360 could do but I'm really curious how that 838 00:32:47,100 --> 00:32:49,919 pans out in the classroom and what your 839 00:32:48,360 --> 00:32:52,020 experience has been with that yeah 840 00:32:49,919 --> 00:32:54,299 terrific question 841 00:32:52,020 --> 00:32:55,860 um so 842 00:32:54,299 --> 00:32:57,419 um one thing that I didn't highlight as 843 00:32:55,860 --> 00:32:58,860 much in this talk as I could have or 844 00:32:57,419 --> 00:33:00,120 should have I don't know there's a time 845 00:32:58,860 --> 00:33:01,679 limit 846 00:33:00,120 --> 00:33:03,360 um is that 847 00:33:01,679 --> 00:33:06,360 with these rappers we aim for 848 00:33:03,360 --> 00:33:07,860 differentiation so we have a few 849 00:33:06,360 --> 00:33:10,080 different 850 00:33:07,860 --> 00:33:11,820 um functions a great example is with the 851 00:33:10,080 --> 00:33:12,960 potentiometer which is 852 00:33:11,820 --> 00:33:17,460 um I think I remember one of the demo 853 00:33:12,960 --> 00:33:18,419 ones where we give them like read in a 854 00:33:17,460 --> 00:33:21,179 number of steps and it will just give 855 00:33:18,419 --> 00:33:23,340 them a number between 1 and 20 or you 856 00:33:21,179 --> 00:33:25,260 can read percentage which I'm same thing 857 00:33:23,340 --> 00:33:27,539 one in a hundred but we also just give 858 00:33:25,260 --> 00:33:31,080 them read which lets them get the whole 859 00:33:27,539 --> 00:33:34,860 number as a 16 bit integer 860 00:33:31,080 --> 00:33:37,919 um lets them see Zero to six five five 861 00:33:34,860 --> 00:33:41,519 three five and then they have to do the 862 00:33:37,919 --> 00:33:45,059 maths to work out what divisions they 863 00:33:41,519 --> 00:33:47,340 need and if they get beyond that then 864 00:33:45,059 --> 00:33:50,640 they can start importing 865 00:33:47,340 --> 00:33:53,820 in other things that like the actual 866 00:33:50,640 --> 00:33:55,440 libraries that our libraries depend on 867 00:33:53,820 --> 00:33:56,940 um 868 00:33:55,440 --> 00:33:59,039 and that's just for the potentiometer 869 00:33:56,940 --> 00:34:00,600 for other ones you can have 870 00:33:59,039 --> 00:34:03,539 um we have a bunch that have optional 871 00:34:00,600 --> 00:34:06,960 parameters so with the neopixel bar and 872 00:34:03,539 --> 00:34:08,820 our other Neo pixel sort of modules 873 00:34:06,960 --> 00:34:10,440 um there is actually an optional 874 00:34:08,820 --> 00:34:12,720 parameter where you can say how many 875 00:34:10,440 --> 00:34:14,099 neopixels you have and so if you do buy 876 00:34:12,720 --> 00:34:15,240 a different thing you can and different 877 00:34:14,099 --> 00:34:17,639 stuff there 878 00:34:15,240 --> 00:34:20,639 with the RFID reader those you can 879 00:34:17,639 --> 00:34:23,159 specify and address to daisy chain them 880 00:34:20,639 --> 00:34:24,960 um and we just always secretly hide away 881 00:34:23,159 --> 00:34:26,580 the default address but if you specify 882 00:34:24,960 --> 00:34:29,220 an address you can connect more of them 883 00:34:26,580 --> 00:34:31,679 and so by putting stuff behind default 884 00:34:29,220 --> 00:34:33,540 arguments or having multiple functions 885 00:34:31,679 --> 00:34:36,240 that kind of do the same thing but with 886 00:34:33,540 --> 00:34:37,800 more or less assistance that's how we 887 00:34:36,240 --> 00:34:39,240 let the kids who are really progressing 888 00:34:37,800 --> 00:34:42,179 get into the more interesting and more 889 00:34:39,240 --> 00:34:44,220 advanced stuff without sort of giving 890 00:34:42,179 --> 00:34:45,659 them a hard stop of well now you have to 891 00:34:44,220 --> 00:34:47,580 really Dive In The Deep End on your own 892 00:34:45,659 --> 00:34:50,060 well we focus on teaching this stuff to 893 00:34:47,580 --> 00:34:50,060 the other kids 894 00:34:51,480 --> 00:34:55,740 I was I was waiting to cut you off we 895 00:34:54,419 --> 00:34:58,260 are out of time I know there are more 896 00:34:55,740 --> 00:35:01,080 questions I'm gonna throw Jack under the 897 00:34:58,260 --> 00:35:03,060 bus by saying around out outside at 898 00:35:01,080 --> 00:35:05,180 morning tea 899 00:35:03,060 --> 00:35:08,880 there's also the Discord I have 900 00:35:05,180 --> 00:35:12,599 connected to the Discord so message me 901 00:35:08,880 --> 00:35:16,020 um we have 12 minutes from morning tea 902 00:35:12,599 --> 00:35:18,240 generous time but as you're packing up 903 00:35:16,020 --> 00:35:20,160 um I want to throw just a slight the 904 00:35:18,240 --> 00:35:22,200 next talk is perhaps the most 905 00:35:20,160 --> 00:35:27,599 controversial of the entire conference 906 00:35:22,200 --> 00:35:29,339 come back to find out why 907 00:35:27,599 --> 00:35:31,079 it's also about Pi game it's really 908 00:35:29,339 --> 00:35:32,390 awesome come and join us thank you so 909 00:35:31,079 --> 00:35:37,710 much thank you Jack 910 00:35:32,390 --> 00:35:37,710 [Applause]