 Hi everyone, my name is Yulia. I'm a software developer and Python fan girl that's how I introduce myself every time and I'm going to talk to you about what's written on that screen I'm gonna begin by giving you a short intro or of this talk so Back in April I Attended Django con as a speaker where I talked about algorithms and why I think that it's important that we continue studying them even after we finish university or after we get that We pass that interview and These are some main points which I made that it's really good as a mental exercise because it keeps your skills sharp and The more studying you put into this the more knowledge you get out of it that it breaks routine that after a while we might get tired of writing pipelines or Websites or whatever and this is like doing that really nice puzzle on the beach That it helps you with the understanding of logic that you understand how certain things are implemented and how to make them faster and better and also, it's a social duty that I think that we have as developers because Algorithms nowadays are the buzzword out there and they have a really bad reputation With the people that are not knowledgeable in this field they think that it's biased and that I don't know algorithms rule the world or that it's going to cost you that Health insurance and I think it's our duty that We know them better and we can better explain them to other people. I just think that this is like community service in a way So I came out with this wobble scheme that I use in my training. It's not perfect Last time in the April talk I focused on the resources part. I talked about what kind of websites books and Problems and all sorts of resources that I use in my training and This time I want to focus on the gamification step the one in the left corner and I don't know my plan is that if I ever give another talk on the subject The next one will be on the keep track of your progress and the analysis So what is this gamification shenanigans? Anyway, so the gamification is the application of game design elements and principles in non-game context It's main focus is to combine work in play and to make work more Interesting take a look at this picture. This comes from a life hacker article, which was very interesting about how to give me finding your life and it was Also focused a bit on fitness. So is what it was like calling your mom two points doing that exercise five points and Basically, it was introducing game the game type elements to Habits that you're trying to introduce like I don't know brushing your teeth every night or whatever The idea is that this should make it a bit more fun to accomplish Gamification is also highly used in training like experiences like I Don't know when you're let's say you're in a volunteering company And you're trying to get each other better and you have all sorts of games and all that kind of stuff to ease you into knowing each other and all that so Why does it work? If you look at the neuroscience behind gamification, it all comes down to this little fella The open main or the feel-good hormone This is rewarded whenever you do something that is That is a reward full in a way such as eating or sleeping or Playing a game. So gamification focuses on Giving instantaneous feedback, which might not otherwise be available because by earning rewards in that whole gamification system You begin to associate learning with a positive experience and positive emotions and This will make you want to do them more and more and more think about the kids that should go to bed at a certain hour and After the parents turn off the light and everything they just go to the computer and play video games till the morning and Think about the reasons why those children might do my risk at all because if they get caught they will be punished To play some video games Dopamine is the primary neurotransmitter involved in the brain's reward system and It's also responsible for motivation motivation controlled movement like I Couldn't believe this like just walking straight across the room. Dopamine is involved in this memory and focus which are all elements that you need in order to learn also serotonin is released Whenever you remember past successes or whenever you achieve a challenging mission and Serotonin together with dopamine helping balancing mood And appetite if you ever wondered why some people manage to work all those long hours and forget to eat This is the reason Also that's real and excitement of playing a game is the result of endorphins being released Endorphins are the nature's painkiller they reduce stress levels and insomnia and anxiety levels and Can create a sense of euphoria Combined with all the other neurotransmitters this creates the perfect environment for learning also Gamification helps with cognitive overload if you ever feel like your brain is going to explode from too much information This is going to make it seem that much easier And also it creates an emotional bond to the task and This is very important because it has been noticed that Attention spans are affected by the emotional response that you have to a certain task so We know how this works now. How is this implemented before as I said gamification is the buzzword There are tons of articles on the internet about How to implement gamification in your business this talk mostly about how to make your Employees work work more efficiently But also how to make students learn better and all that is a subject of research you can find articles on from universities on how to implement gamification in actually teaching computer science and Data structures and algorithms and everything so it's not unheard of And also games are fun. Let's be honest so this is This is a schema from one of the the research that I've read when preparing for this talk. It's From the University of Jakarta and I added a source there and this is basically Saying that all the those three elements combined Bring to a better learning outcome first. There are there is the cognitive support This comes mostly in the form of visualization Originally, this has been textbooks or explanation but nowadays They are better and more dynamic forms of visualization such as Graphs that have Animation inside them and you can see for example an algorithm being played step by step Also learning instructions are very important by learning instructions, I mean Instructional activities such as the problem statement. What do you need to do? the resources that are put like the visualization or I don't know examples, sorry and Also the methods of evaluation when teaching something It's really good to know how you're going to make sure that you're going you're on the right track and Then comes the gamification part which helps with engagement and making everything stick long term because The cognitive support tools fail to engage long term. It's very interesting in the moment It's like ooh colors interesting But if you ask someone like two weeks from now, do you still remember what you've read about? That might not be the case So here are some gamification features that you can find implemented In order for an activity to be gamified, you don't need to have all of them at the same time as I've read in multiple articles just because you have some gamification features implemented that doesn't mean that It's being implemented with success or that it's having a good effect on the users but All of these like narrative For example, it's a known fact that It's much easier to remember stories than facts or points or achievements Challenges are really really fun feedback to know how you're doing if you're doing well or not Personalization is the most important one. I think but I'm going to talk about that later rules and so on Um, so this isn't new as I said this has been implemented in various places For example has anyone used to lingo from here It's fun, isn't it? But apart from saying that I'm a girl and I like white shirts I'm not sure if I Learned much from there, but everything is set to levels with the topic and points and nice looks and it doesn't feel like studying a Language textbook style like writing stuff over and over and over again getting bored at some point and Can Academy for example is a very very good example of things are implemented or the Nike app where you can run and surpass your friends and I don't know do physical exercise while having fun at the same time Um Doing a Google research will bring you ideas on how to add gamification to your business for example and how to make clients more open When I when I had my first my first job ever the first thing that we had to do on the first day was to build a Tower out of marshmallows and spaghetti It seemed very very weird at the time, but at the same time now that I think about it It was fun and it helped us open up more But since I'm talking about algorithms I'm going to show you a couple of sites that I use for example hacker rank has badges At this point, they don't have a lot of badges and more most of them are like for something simple like days of Python or days of code or whatever and they have medals and some other stuff which I haven't added here But it's really really nice and it helps also on lead code. You can You can view your progress quite a lot They have tracks for example like the one with binary search and they have problems that Target binary search which is nice and you can also see how many of your attempts have been correct versus How many wrong attempts you had and also How fast your solution was compared to all other solutions across the website which is brings up the competitive side of people There is this website which I haven't tried much, but I've heard of coding game where each problem actually has a story and you have nice graphics and This is like the first level and you have to write something in the loop such that you attack all the The ships that come to you and you have levels and it really really feels like a game and in the beginning I haven't advanced much with it, but it might make you think How am I going to learn? How am I going to get better at programming or algorithms with these types of games? but these types of games Just push you a bit further like make you feel like you have a bit of fun instead of I Don't know dry repetitive task So can we do better? Before we can think about this we need We need to read the instruction manual first. I've mentioned some of the features of gamification and also Something about learning is this chart to the blooms taxonomy and it talks about Ordering cognitive skills on a hierarchy that helps the process of learning So in order to reach the high top and be able to create in this case Maybe your own algorithms on problem statements or maybe write your own contests We need to start at the bottom. We've seen before that in the instruction design is very important So when starting this we need to take into consideration that the first step is understanding the basics Remember facts like understand and understand basic knowledge like what is a loop how to do a sort etc Then I'd put understanding complexities under this category But if you're anything like me computing complexities is sometimes harder than solving the problem then you need to Apply your knowledge. You need to be able to apply this knowledge in new situations new problems You need to be able to read a problem statement and know that you're going to have to solve it using binary search for example You need to be able to analyze and evaluate Feedback is very important when applying knowledge. Are you doing it correctly? Are you on the right track? And also there was a TED talk by Gabe Zimmerman That talked about the legs of gamification Constraints drive creativity for example if you have to solve a problem and you know you have to do it in a certain amount of time or The solution needs to run a certain amount of Seconds or that you cannot use division for example, then this is going to make you more creative Um, for example when using when competing in competitive Algorithm Contest um, I use Python all the time because I like Python But we all know that C is faster So I need to come up with creative solutions to make it pass the time constraints. Otherwise, I'm in trouble You need to have the ease of failure Which is you need to fail and know that the world is not going to end Just like in a game if your hero dies you can just try again or go back to the last save point You need to have perseverance You need to know that Doing it once or twice or once every blue moon is not going to cut it but you're going to need to have fun doing it because we're not Sisyphus pushing up the boulder and Speed and pressure seem to help Um, I hate competition. So I hate speed and pressure But some and most people thrive on this Also levels need to be designed carefully You need to have just the right amount of hard or easy because if you do them too easy Then you're gonna get bored or if you do them too hard, you're going to give up eventually So let's make a game of rabbit now that we have the rules Let's ask ourselves some questions and design the perfect game to study algorithms or anything else for that matter But first time for a challenge because this is a talk about demification Here you have some code and two requests Whoever is going to find me after this talk and give me the time complexity and find The edge case that I mentioned in the talk. It's going to receive this box of chocolate. So Have fun made the best win So back to our topic Ask yourself. What is your favorite game and why? Do you recognize any two of these logos? It's from World of Warcraft This is my favorite game So I I try to think about what are some things that I like about World of Warcraft It's the story the fact that you can go through the lore and do quests and find out all sorts of back stories and characters and blah blah Then the achievements. I really really like those things like Get friendly with the certain race or stuff like that the community that you're able to play with other people the challenges and by challenges, I mean the dungeons and The fact that you can level up And create a character that in level one can get killed by rat to Something overpowered so Let's think about the story if the story is important When solving algorithms, do we like problem statements with the story or? Do we like a story behind a collection of problems? For example, do we want to solve a track about binary search or do we want problems that have a story in the statements such as I Don't know Jane and Mary try to decide how many chocolates each is going to get yada yada yada Then with achievements, do we need to do we like badges? Do we like do we need a progress bar? Do we need to see how much we've sold how many problems this week or How many days in a row or stuff like that? whatever Whatever Helps you best whatever you like the most and it's going to help you get more productive Then the community do you like to compete with friends or do you like to compete against friends? Do you want to talk to them about solutions and see whoever come came with the best solution or? Do you just like to win against them in a contest and how high did the best rating? Do you like challenges? Do you should you have a 30-day challenge and solve one problem each day or? Do you do you want like solving very hard problems from time to time or do you like? solving all stuff in new ways and With the level up Should you level up to the number of problems that you solved or should you do it through a rating system? For example with a number of problems solves might be an easy way of leveling up But after a point it says nothing about your progress because you could just be solving easy problems But a rating system is not very good on its own either because I'm going to give you an example. So last week I took part in a code forces contest and I dropped more than 100 points for the reason that I was at the jazz concert in the park and I participated from my phone which was not very friendly with the code and because of that I made very a lot of bad submissions and after a while I just gave up because it would interpret one of my characters in an ASCII code and then I Just dropped in rating like right now my rating is the one of a beginner But does that say anything about me or does it say something about that particular contest? Also Analysis is a very powerful tool. You need to know where you're at Right now. I don't have many ideas on how to Evaluate the progress you could keep a bullet journal and I don't know keep track of how many problems you solved how many of those were easy hard or medium how If you solved more on this website or that website if you sold more to contests or just on your own I Don't know little things that like this that matter to you, but I'm still thinking on this one. So Hang on tight and now the boss level What is the point of all of this the point is to keep up the motivation? To encourage fluid intelligence fluid intelligence Involves being able to think and reason abstractly and solve problems for example Coming up with problems problem solving strategies on on the spot without reading beforehand in a textbook It's very useful in our field It's also to read your stress levels To re-word yourself short-term They keep saying about Millennials that they like instant gratification and it's true The biggest reward of you studying algorithms should be that you'll become better and better at the end But sometimes a little pushed down the road is really nice and appreciate it also remember the Research that I mentioned earlier This is a graph that is showing the results of Students taking the test for the first and second time after just reading about algorithms in a book and After playing the game in both cases when they took the test the second time they all took Straight tens or a the maximum rate But look at the difference between just reading about them or doing them in a fun way I think that gamification help help solve problems that We until now we might have thought that it's some somewhat our duty to do it And if it's hard we should just do it even if it's hard, but that doesn't mean that it shouldn't be fun and My last my last point is Don't be ashamed if you need If you feel the need to gamify something that you love this doesn't mean that you love it any less it just means that life can get messy and It's really easy to lose focus of what's important to you. It's one of the really bad points of growing up and being an adult So Gameifying something and making it fun doesn't mean that you're not good at it or that this isn't this isn't important and And That's it. Get over any questions Thank you very much for your enthusiastic presentation and now it's a good time to raise some questions Hi, thank you for your talk one you Try to create a gamification gamification environment in a corporate team How can you address the fear to lose? from people Hmm very good question I think that By making it a really Safe environment to fail like if you fail that doesn't mean anything Let's joke about it. Let's try it again next time. I'll show you next time. I'll be better than you. Ha ha I think that's by by just implementing a carefree attitude towards this and not treating it like a sort of Evaluation towards a raise or a Promotion then this way is going to make people think that it's okay to fail. It's okay to try It's okay. Not to fill in the mood to participate once in a while and Take all the benefits of this sort of activities If did I ask you your question? Yes, I know that there is I mean there is not an easy solution because even if it's something that is not tied to promotion It's just the subjects feeling respect to the others is independently to yeah from but in my experience The community is a really big factor in this if you have friends to do it with or if you I don't know have a really strong community behind you then they're going to motivate you a bit They're going you're going to feel left out if they compete without you for example, or they're going to just encourage you come on Let's try So I think that the community is a really really strong factor in This further questions, okay. Well if anyone has the answer I have the topics so Yes, I Actually have a question Do you maybe know some examples where this kind of gamification is applied in mainstream education like brick-and-mortar universities? Unfortunately, no What I studied for example, I don't mean that it was like a jail or something, but we didn't have this kind of reward system we We did have like Frequent hackathons which felt a bit like a contest which were nice But I've seen recently at lower levels of education like a Kindergarten or the first levels of school that they're trying to make things more and more fun in a way that we didn't have it when we were young Okay, thanks. I just I just discovered that in France there is for mathematician teacher You can submit exercise to the students and the elements are not the same for every students So you and you cannot copy on your on your on your co-workers And you can try as much as you want and you got the best score out of everything So if you are the best one you try once and it's okay But if you are bad you try ten ten times and then you will do achieve that and it's a good way just to make Simple exercise and to let the students play for a real exercise not just for fun. Yeah, that sounds great Thanks You've got time for one more question. Okay. Thanks