Categories
Uncategorized

Podcast Episode 3: What do Braille and Burger Emojis have in common?

The transcript of episode 3 of my podcast is here!

Transcript:

 Welcome to how to teach computer science, the podcast. This is episode three. and we’ll start with a fertile question. What have Braylin burger emojis got in common. I’ll be answering that question and many more with the help of today’s special guest. 

If you are grateful for my blog, please buy my books here or buy me a coffee at ko-fi.com/mraharrisoncs, thanks!

 One of my old lecturers asked me what I thought for me epitomizes computer science. And at the time I said algorithms then went home and I thought about it, actually I thought no, it’s data representation isn’t it? Because it links everything together. 

More on that at the moment. My name is Alan Harrison, and I wrote the books how to teach computer science and how to learn computer science available in online bookstores, more details at the companion website. HTTCS dot online. That’s the initials of how to teach computer science.online. If you like this content, please subscribe. Tell your friends, buy my books. Leave a review or buy me a coffee. details at HTTCS dot online. 

Every week, I’ll transcribe this recording and blog it at HTTCS to online slash blogs. So, if you don’t like my voice let’s begin to answer our fertile question. What have Braille and burger emojis got in common? Let’s start our story over in Paris, not far from where Disneyland Paris now stands, in the town of Coupvray, in the leather workshop of La Famille Braille.
 

Louis Braille injured an eye in his father’s leather workshop at the age of three, and the resulting infection caused him to go blind in both eyes by five. At age 10, he obtained a scholarship to the Paris Institute for Blind Children. which at the time used a system of raised letters. Braille found the system hard to learn and when he was shown a system of raised dots used by the military to communicate at night, he took it and improved upon it using just six dots to represent all the letters of the alphabet, plus numbers and some punctuation symbols.

Each dot is raised or flat and a blank space, effectively six flat dots separates words and sentences. In this way, the grid of six dots could represent two to the power of six or 64 different characters. Braille is therefore a binary code for representing text. If we ordered the dots as Braille did from one at the top left, finishing with six at the lower right, then each of the Braille codes can just as easily be written out as a sequence of bumps and flats.

So A is bump, flat, flat, flat, flat, flat. And H is flat, bump, bump, bump, flat, flat. Replacing bump with one and flat with zero we can write A as 100000, and H as 011100, We can now write any text using just two digits, zero and one. Braille has created a binary code to represent text, and electronic computers have not yet been invented. 

Fast forward to 1961, when IBM engineer Bob Bemer proposed a single code for computer communication and two years later announced the American Standard Code for Information Interchange or ASCII. ASCII is a lookup table that translates letters and punctuation marks to numeric codes. A character set thus enables the storage and processing of text by a digital computer, which also means data created on one computer can be processed by another computer.

Advertisements

Originally a 7 bit code representing only 128 unique symbols, international popularity demanded more characters. Various 8 bit versions, often called extended ASCII, were popular in the 1970s and 1980s, with an 8 bit standard emerging in 1987. Computer makers standardized on 8 bit bytes in the early 1970s, so the extended ASCII character set made perfect sense.

But the 256 different bit patterns available from 8 bits were not enough for languages such as arabic, Chinese and Japanese and the Unicode standard was inaugurated in 1991. Originally a 16 bit code giving over 65 000 characters, a later version called UTF 8 allows up to 32 bits per character, which has given room for all modern languages.

Unicode opened up the internet to non English speaking peoples who had previously been forced to work in European languages. And in that sense, the Universal Character Set was an important leveller. As Unicode consortium lawyer Andy Updegrove put it in a 2015 interview, 

“Without [Unicode] we would be stuck in an upgraded example of a colonial world, where historically first world nations continue to force their cultures and rules on emerging nations and their peoples.”

Advertisements

So why does all that link braille and burger emojis? Well in each case real world information has been encoded into binary. Braille is a 6 bit binary code, and emojis are part of the Unicode 32 bit standard. This is all part of the computer science topic of data representation. At the heart of this topic is the idea that if we can turn information into binary data, we can use a computer to process it. 

Digital computers process binary numbers because they use two state electrical signals. The challenge is therefore to find a transformation from real world information to binary. This transformation is called encoding, and it makes use of a code. ASCII and Unicode are used to encode text. JPEG, GIF, and PNG do the same for bitmap images, and WAV, MP3, and AAC encode digital sound as predicted by a brilliant young mathematician, more than a hundred years ago. 

“[The Analytical Engine] might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action of the operating notation and mechanism of the engine. Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.”

Ada Lovelace, 1843

But it’s important to realize that there are virtually limitless ways of encoding information, and these are just the techniques that are widely used owing to their effectiveness, or official recognition, or both. That’s really the fundamentals of data representation covered. The most important concept is we need a way of encoding information as binary, and then we’ve cracked it.  You can read more about data representation in my book, How to Teach Computer Science. 

 I am delighted to say it’s not just me rambling on today because I have a special guest in the studio today hello to the man behind advanced-ict.Info welcome, Andrew Virnuls. How are you, sir? 

Very well, thank you.

Good to have you on the podcast. So you were listening to all that, was that a reasonable intro to data representation? 

It was, and it made me think that that idea of the combinations is also an important idea, isn’t it, across computer science from things like, how many rows you got in your truth table, to the width of your data bus, to colour depth, and in fact the way that you can actually make a binary counter using nested loops as well. 

Yeah, absolutely. Can you just tell us where you work and what you do, Andrew, for the listeners? 

So, I am lead teacher and computing specialist for a service in Warwickshire, local authority service for children out of school for medical reasons. So, effectively like a hospital school, but Warwickshire hasn’t really got a hospital. it’s interesting. It’s got some challenges. So we get students from schools all over the county with a variety of, , backgrounds and prior learning, and all doing different courses, possibly, and some having learned different programming languages.

That sounds really fascinating. I mean, There’s a lot of teachers listening, thinking, well, I’ve got quite a diverse bunch of classes in my school and then, and then there’s you with 

well, yeah, in the same class a couple years ago, I had students doing three different boards in computer science, most of them doing Python, but one of them doing visual Basic, which made demonstrations of programming techniques quite interesting. Luckily, the theory is quite similar, actually, between the GCSEs these days. 

Yeah, no, that’s true. And you’ve got a website. Let me get the address. Right, advanced-ict.Info, otherwise known as computing and ICT in a nutshell. That’s you, isn’t it? 

That’s right. It used to be called ICT in a nutshell because I created it back in the ICT days. And it started off with the databases section because I used to find every year the A level ICT students would ask me the same questions about, you know, normalizing their access databases.

But I’ve added the computing stuff over the years. I did, I did toy with the idea of. Changing the domain name but I thought, well, actually, you know, I think like BMW still use the propeller, even though they don’t make aeroplanes anymore, don’t they? Oh, that’s a good 

point. Yeah. No, I have used, I’ve used your website in the classroom. A number of times, there’s some really useful stuff on there. I like the bitmap generator thing to demonstrate things like bit depth and number of colors relationship. And, and we were talking about the sound wave one recently, and you’ve improved it after conversations with me. I think sampling the sine wave I think that’s really useful.

There’s some great stuff on there. So the metadata one was the interesting one because we were talking about misconceptions and I suppose it’s not quite a misconception, but I found that the students didn’t really remember what metadata was for. So I added that you could upload a picture and basically it shows the pixels but just arranged into a square, so you have to kind of rearrange them into the right width and height to reconstruct the picture. So knowing the colors of the pixels isn’t enough to reconstruct the picture. You need to know how they’re arranged as well. Yeah, 

I like it. I like it. made a note that I wanted to talk about today the parallels across different file types. You know how things like bit depth is the same principle in JPEG images as it is in digital audio. So the number of bits in a sample is the same concept, no matter what sort of file you’re in.

Advertisements

Yeah, so yeah, the other thing I think about image representation is there’s obviously different types of things. One of the things I’m never sure about with GCSE, for example, is what we do about palette based file formats like GIF, because it was an interesting question a few years ago, and it was one of those true or false tables, and one of the statements was the color for the pixel is stored in metadata, and I thought, oh what if the actual colours are in the palette, which is presumably the metadata?

Yeah, that’s a statement that could easily be misinterpreted, couldn’t it? And I think I’ve seen questions like that, exam questions asking where the the colors are stored, and I guess there’s a difference between the color of a pixel and the colors in the palette. So I guess the palette needs to be stored somewhere, and that would be in metadata.

Yeah so all of this stuff, so. WAVs or JPEGs or PNGs. Underneath, it’s just binary noughts and ones. So somewhere in data representation, when you’re teaching it, you have to teach binary. So how, big question, how do you teach binary? 

Well, what I tend to do is first of all, say everything’s stored as a number and then say the numbers are stored as binary. And I don’t know whether I’m getting better at explaining binary. or just whether students have more exposure to it but find as time goes on they seem to struggle less with it because if you look on my website there’s a number base abacus which I used to use quite regularly and I say well you know this is it with tens and hundreds and things and you would Slide the beads across to represent certain numbers then say what would happen if you only had one bead on each row and could we make a number that way and then say well basically you take that abacus you turn it on its side and those are your columns and you know those are the same as the binary digits but actually I tend to find I don’t need to do that now I can jump straight to the noughts and ones and they they seem to get it.

That’s interesting I mean I guess our colleagues down in primary are teaching this now, so it’s it’s good to know that it’s coming through. I like what you said about the abacus and if an abacus only had sort of one bead, I always try to explain binary as just a place value number system in the same way that denary or decimal is and I’m at great pains to go back and forth between decimal and binary and to reinforce the notion of place value because it’s just a different number base, but the numbers work exactly the same way as decimal. So I go over that place value thing over and over again. I think that’s very important to say and in fact I start off by saying actually if you want to communicate a number, say four, what’s all the different ways we could write that down?

We could write it in roman numerals or tally and binary is just a different way of writing it down effectively. But actually the first slide of the presentation that I use, because I know PowerPoint’s a bit out of fashion, I teach mainly online, I don’t know if the listeners know that, so we have to have something that they can see.

Trust me, PowerPoint is not going anytime soon, but I know exactly what you mean. I teach a lot less on PowerPoints now, but yeah, sometimes you need them. Sorry, 

carry on. So my first slide is literally just a reminder of how denary works, because I think that when you use something so often, you tend to stop thinking about how it works.

So I’ll show them why it’s based on tens, and the fact, you know, as you move across, the place value increases by a factor of 10. And in each position, you can have one of 10 possible digits. And then I repeat that slide when we look at binary, and I use the same slide, I just replace the word ten with two and then replace the word two with 16, but and then I also show them other things.

So in the same way that 99 is one less than 100. So effectively the largest value you can have in a given number of digits is one less than the first unused column in that 111. You could say, well, that’s four plus two plus one, or it’s one less than eight, which is the first empty column. 

And then also the shifting idea. So if you move numbers one place to the left. They get 10 times bigger, if you do it with binary, they double. So it’s about making it appear consistent. I think that’s the, that’s the thing for me. 

If you are grateful for my blog, please buy my books here or buy me a coffee at ko-fi.com/mraharrisoncs, thanks!

So I said in my intro to the podcast that if we can turn information into binary data, we can use a computer to process it. And I called that encoding. So we just need a different encoding method for different types of data. So ASCII and Unicode are a way of encoding text, how do you go about teaching ASCII and Unicode in the classroom?

Well, I just, start off with everything that needs to be stored as a number. So how do you think we can, how can we store text? And actually. That’s probably the most straightforward of all of them in terms of the students being able to understand. So I just show them an ASCII table and say, look, everything’s got its own number.

Sometimes they struggle with the idea that uppercase letters and lowercase letters are different, but I point out that that’s actually why, if you write in your Python program and you say, you know, do you want to continue y or n and they put a capital Y, that’s why it doesn’t recognize it. Whereas Google doesn’t care or Access or Excel tend not to care in their searches because actually it’s checking the aSCII values. And similarly, when you sort things into order obviously letters are, in alphabetical order, but also things like punctuation marks and stuff get sorted into that order as well, presumably based on the ASCII value of, those symbols.

Yeah, no, that’s a good point, and I hadn’t really thought of mentioning things like sorting in algorithms at this point when teaching ASCII, but it’s a good link to make. So if we can get things into numbers, we can process them.

So, Images. Thinking of JPEG and so on, this is one of my favourite topics to teach. Do you get the graph paper grids out and get them to colour in? Do you do colouring in when you’re teaching images, Andrew? 

I don’t because I don’t physically see a lot of our students, but I have, there is a, there is a page on my website where they can click and color in the dots. And I do explain that like, like knitting patterns as well. You can kind of knit things with different color stitches or cross stitch that might be familiar with. Yeah, 

So there’s a story in the book. Did I mention I wrote a book? There’s a story in the book about the woman who created the first icons for the Apple Macintosh, and she was a cross stitcher. Susan Kare, and she was hired to create some striking fonts and icons for the Apple Macintosh. So it’s her fault you’ve got the bomb emoji and things on a, on a Mac. But she was a cross stitcher and so it was exactly the same principle of creating images with just a grid of pixels. 

It’s interesting that idea as well. You know, people say, why do you need to know this? But I think it kind of demystifies the process of editing images and things. And that’s why I created the page on my website where you can upload a photo and it pulls out the numbers of, you know, the amount of red, green, and blue, and you can add or subtract from those numbers and see the impact on the image, and then you realize, like, Photoshop’s really just arithmetic. 

But then once you start thinking about how things are stored, so one of the things I say to the students is basically, But Computers only deal with numbers so if you want to store a new type of information you need to think about how you can measure and store that as a number and I used to give the example of smell for example so you know something unfamiliar you need to think about how you do that and then about two or three weeks ago my wife was reading the news one evening and she said oh Apparently there’s this new screen where you can lick it and you can taste what’s being displayed and my first thought was obviously but I hope it’s a personal device

But secondly was, I thought, well, how does that work? I said, could you, could you make a flavor? By mixing together amounts of, you know, saltiness and sourness and bitterness and umami. And she went, yes, that’s exactly how it works. How did you know? And I suppose it’s that computer scientist mindset, isn’t it, of how you store stuff? How would you do that? And again, it’s the same principle that we’ve been talking about today, data representation. And yeah, just turning that information, in this case a taste or a smell, into numbers. I’m sure I’ve read somewhere about, not taste, but smell generators that they’ve been experimenting with that you can pass digital data to and a smell will come out.

But I’m kind of hoping that they, that stays on the drawing board, because imagine, imagine pranking your friends with that if they had a, smellable monitor that’d be fun. I like it when students ask questions and it doesn’t often happen. I just live for the day when I explain binary to a Key Stage 3 class and somebody puts their hand up and says, but you’ve only mentioned positive whole numbers. You know, what about fractions or what about negative numbers? But I did get a question the other day. I was doing representation and I talked about ASCII and a lad said, So if you want to store a whole sentence, do you add up the numbers? Oh. So I thought that that’s, that’s an interesting. Well, not misconception necessarily, but a thought of how, how it might be done.

And I’m wondering the reason that nobody’s ever asked that before. We have a quite a high turnover of students and sometimes I repeat lessons from earlier in the year if the class has changed. And so normally I do firstly representation, everything stored as a number, and then we do binary and I include things like binary flags. So, you know if you number stuff 1, 2, 4, 8, you can have unique combinations of those. And I think we’d done that the week before. So it was a slightly different sequence. So we, I suppose he’d seen me adding numbers together that represent different things, and then he’d, he’d made the leap to the ASCII, which is interesting.

So it made me wonder whether actually the order is more important than I thought it was. I thought in my head, storing everything as a number and then numbers are binary was the logical way to do it. But whether that actually has an impact on the learning, 

I’m still thinking about that. And I’d love that question to be asked of me in the classroom as well, because I’m just I’m whirring away in my head there thinking what I could do with that question. It’s great when the kids ask those questions. The answer is, of course, no, but It’s, I could lead on to hashing and check sums.

 It’s a check sum, isn’t it? So, Mm-Hmm. We could talk about the problem of transmitting data with integrity and the idea that you could send the whole ASCII sentence, but you could also add up all the ASCII values and send the total. Yeah, and we do a bit of parity as well you know. 

Yeah, and it’s a bit like parity. So, so you could explore those things with that question, but I’m totally with you. Students asking questions is the best thing to happen in your classroom, and I wish it would happen more. 

And sometimes they ask things I’d never thought of myself. So last year I was with a GCSE class, we’d done adding binary and this lad said, oh, can you, can you multiply binary in the same way? Now, I’ve, I’ve been doing computer science for like 40 years and I’d never thought, thought of that. So we did it on the board exactly as you would do with binary numbers. So adding the zero and, and it worked. And I thought, oh yeah, I don’t know why I’d not thought of that myself.

Yeah, why wouldn’t it work? Because again, it’s just a place value number system. So yeah, but it’s not something you do a lot. I had a question in the class popped into Andy Colley’s classroom earlier in the week. And he’ll be on the podcast next week, and he was doing a little bit of programming at the end of the lesson, and I like the idea of doing a little bit of programming at the end of every lesson, which is what Andy does, and it was his year 10 class, and we were talking, I don’t know how we got on to it, but.

Oh yeah, some website had a rounding error on it, and I said, oh, just do this. 0. 1 times 3 in the Python shell. 0. 1 times 3 in the Python shell, and it came up 0. 30000006 or something, so a binary rounding error, and we got on to why that works, and suddenly year 10 are being taught binary fractions, and getting it, you know, and it was a fun diversion.

 Oh, that sound means it’s competition time. In episode one, I asked you to promote the pod on your socials and someone who did just that is Mrs. Bowen, AKA. Tech craft girl on Twitter. who wins a copy of how to teach computer science. In episode two, I set a riddle and let’s hear a sneak preview of next week’s episode to hear the solution. 

I just wondered if you had an answer to my riddle last week. So if I made a binary worksheet, Andy, and accidentally guillotined off the right hand edge, it wasn’t really important. Why was that? 

The right hand edge, not really a significant bit, is it? Yeah, 

there you go. , I’ve just cut off the least significant bit of all my binary numbers. 

 Well as Andy Colley on next week’s episode with the answer, on the socials, the first correct answer was from Mr. Pete Dring, who wins a book and I’ll be getting Pete on the pod sometime soon. 

This week’s competition is back to shameless self promotion. If you have one of my books, you can enter the prize draw. If you review it on Amazon, the prize is the other book if you don’t have it, or if you have both books well done you, thank you for supporting my work, you can have some lovely merch an HTTCS mouse mat, mug and pen can be yours. Plus a shout out on the podcast in a couple of weeks. So give me a review on Amazon and win a prize. Amazon links are at httcs.online/books. 

 So let’s get back to today’s discussion with Andrew Virnuls. 

We were talking earlier about bit depth and sample rate before we came on air and how those things are kind of the same across images, text, and sound. This is something I try to make clear that the number of samples per second in a sound file is similar to the resolution of an image file or, bit depth the number of bits you are allowed to play with for a text character is similar to the number of bits per pixel or bits per sample in sound. So is that a concept that it’s important to get across? 

I think so, and I recently made a page for the website which is in the math section. I think it’s called a range of binary values because in the space of one week I found myself effectively teaching the same thing but in different contexts. So there was the sample size and the color depth, but also we were doing truth tables. So the number of rows in the truth table for a given number of inputs was, is basically the same thing, isn’t it?

So you’ve got three inputs, you need eight rows, and also again nested loops. So if you had three nested loops, each looping through values of zero and one, then that effectively gives you a three bit binary counter with eight rows. So there’s that idea of effectively combinations, and students are quite okay with that idea if you explain it like, you know, if they’ve got a combination lock on their bike and they’re familiar with the idea if you put an extra digit on there it makes it more complex, but there’s that, there’s that idea, there’s that misconception, isn’t it, that twice as many bits gives you twice as many values.

Yeah, yeah. I’ve seen that misconception in several places where you know, bit depth being the number of colors in an image, or color depth being the number of potential colors in an image, when of course it’s just the number of bits, and you have to raise two to the power of the number of bits to get the number of combinations, which is of course true across text, images, and sound, which is kind of the point I’m making.

Any more tips on teaching this whole topic? We were talking about when to teach this topic earlier, weren’t we? So what would you say about when to teach it? 

I suppose they’re all interlinked, isn’t it? One of the things I quite like about computing compared with ICT is ICT seemed to be a bit of a random selection of stuff. You know, like one day you were making a spreadsheet, the next day you were reviewing a website. But you’ve got these overarching ideas in computing. the two state thing. So storage, you’ve got two states. Most storage media rely on You know, so you’ve got your north and your south and your magnetic storage and things reflect, or they don’t reflect, or back in the days of paper tape, a hole or no hole.

 So that you can link that to the binary. So I tend to do that first, because I suppose that you need to think about where this stuff is actually going to go. Then I say computers only really deal with numbers.

And then I go on to the numbers are stored in binary form, but I do that early on first term because actually, you know, then that idea of representation goes across everything. So you do networking. Well, what’s in your network packet? How do you address it? they’re all kind of forms of representation, aren’t they?

Advertisements

Yeah, there’s a link there. I like what you said about the overarching themes of computing which I never really thought about it, but you’re right, ICT is just. A load of random stuff.

I quite like the way you can go back and revisit stuff as well. So you can do binary, you can do Boolean logic, and then if you so choose, you can combine the two to do bitwise logic which is really not any, extra thing. It really is just a combination, isn’t it?, I don’t hear much about bitwise logic these days, but it’s something that we do at Key Stage 3 because there’s that thing in the National Curriculum that says operations on binary numbers, when I first read that.

Because it was in there with the binary and the Boolean logic, my first thought was bitwise logic because that was something we did when I was in school and actually it’s quite useful. So if you want to write a program that converts to binary, for example, I would do that using bitwise logic. So you do, you know, AND 1 for your end digit and then AND 2 for the next digit and AND 4 and so on.



So practically, it’s a useful thing because the thing about computer science. It’s both a theoretical subject, isn’t it, because you’ve got the written paper, but also there’s the practical aspects to it. So those might not appear on paper two in OCR, for example, but you might want to use them to create a program, you know, in the evening or whatever.

Yeah, absolutely. So we’re going to run out of time about there. It’s been fantastic talking to you. So it’s Friday afternoon.

Are you done for the week, sir? Just a little bit. I’ll do some backing up and stuff of our, because I do the IT systems as well, so I’m going to back up our lesson recordings and registers and stuff. 

It’s been lovely to talk to you, Andrew, on the podcast. 

Well, thanks for having me. 

You’re welcome, and I’m going to ask you back in a few weeks to talk about the GCSE qualifications, we can, at that point, have a little reminisce about Computer Studies O Level, which we both sat in the 80s, that’s right, isn’t it?

That’s right, and it’s surprisingly similar, I find, to what we’re doing now. I was just 

talking to someone about it Andy Colley, who’s going to be on next week, and I was saying, I remember in my computer studies O level exam having to write a program in binary. I don’t know if you remember doing that, or just assembly language.

Opcodes and that kind of stuff.

Yeah, opcodes and operands in binary. so we will have a chat about that in a few weeks, thank you very much for coming in, Andrew. Well, thank you.

We’re out of time. So let’s revisit our fertile question. What have braille and burger emojis got in common? Have we answered it? Let me know on the socials, this has been how to teach computer science, the podcast. I am Alan Harrison. If you want to give me feedback or get involved, just go to HTTCS dot online. Or check the show notes. 

 I’m also on threads, Mastodon, an X as mraharrison. Or you can email me, Alan, at HTTCS dot online. Remember, if you liked this content, please subscribe, tell your friends, buy my books, leave a review of my books on Amazon. Or at the very least buy me a coffee details at HTTCS dot online. 

 So I’m off to change my password because I keep forgetting it. So I’m going to change it to the word incorrect. Then if I forget it again, I’ll get a nice little hint. Unfortunately, we sometimes have to pass a Captcha, you know, prove you’re not a robot. I am so bad at them. I mean, does this sliver of bicycle tire count as a bicycle? I feel like getting the guy who invented Captchas, sitting him down in front of one that just says tick all the squares without a tick in them. And he can’t leave until it’s done. That’ll sort it. Then you’ve got secret answer questions, which tempt my intrusive thoughts. Like what’s the name of your first pet? And I type Sleipnir the mighty Steed of Odin the All -father. Is that just me? 

Next week on how to teach computer science. I will have special guest, Andy Colley, and we’re talking all about pedagogy. 

You’re not going to want to miss it. It’s going to be a real groovy fella. See you next week.

If you are grateful for my blog, please buy my books here or buy me a coffee at ko-fi.com/mraharrisoncs, thanks!

By mraharrisoncs

Freelance consultant, teacher and author, professional development lead for the NCCE, CAS Master Teacher, Computer Science lecturer.

Leave a comment