{"id":55671,"date":"2020-01-25T00:00:00","date_gmt":"2020-01-24T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kak-ya-uchu-detej-pitonu"},"modified":"2020-02-18T14:03:48","modified_gmt":"2020-02-18T11:03:48","slug":"kak-ya-uchu-detej-pitonu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/kak-ya-uchu-detej-pitonu","title":{"rendered":"How I Teach Children Python","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"How I Teach Children Python\" src=\"\/wp-content\/uploads\/2020\/01\/9748f29696b5623468fed223b408b578.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMy main work involves data and programming in <code>R<\/code>, but in this article I want to talk about my hobby, which even brings in some income. I've always enjoyed telling and explaining things to friends, classmates, and colleagues. I've also always found it easy to connect with children; I don't know why. In general, I believe that raising and educating children is one of the most important activities there is, and my wife is a teacher. About a year ago, I posted an advertisement in a local Facebook group, gathered a group, and started teaching Scratch and Python once a week. I currently have five groups, my own classroom at home, and individual sessions. How I got to this point and how I teach children is what I will share in this article. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nI live in Calgary, Alberta, Canada, so some details will be related to local specifics. <\/p>\n<h2>Space<\/h2>\n<p>\nThe availability of space for lessons was a major issue from the beginning. I tried to find office spaces and classrooms to rent by the hour, but not very successfully. Our university and SAIT \u2014 a local equivalent of MIT \u2014 rent out classrooms with and without computers. The prices there turned out to be quite unmanageable, and ultimately it became clear that the university does not allow minors, while SAIT only rents to its own students. So this option was off the table. There are many office centers that rent meeting rooms and offices by the hour; there are entire companies offering a bunch of options from full classrooms to small rooms for four people. I had hopes because Alberta is an oil province, and since 2014 we've been going through a slow crisis, resulting in many commercial spaces being empty. I hoped in vain; the prices turned out to be so exorbitant that at first, I couldn't believe it. It's easier for owners to sit on empty offices and pay overhead than to lower the prices. <\/p>\n<p>At that moment, I remembered that I pay my taxes regularly, and I wondered if there was anything for us from our dear government, specifically from the city of Calgary. It turned out there was indeed. The city has arenas for hockey and other figure skating, and within these arenas, there are rooms where the fierce ice warriors discuss strategies for future battles. In short, each arena has a couple of rooms with tables, chairs, whiteboards, and even a sink with a kettle. The price is quite reasonable \u2014 25 Canadian dollars per hour. Initially, I decided to conduct sessions that last an hour and a half, so I set the price at $35 per person in a group of five to offset the rental cost, and to put something in my pocket. Overall, I enjoyed practicing in the arenas, as it solved one problem \u2014 most Russian speakers live in the south, while I live in the north of the city, so I chose an arena roughly in the middle. However, there were some inconveniences. Canadian bureaucracy is good and friendly, but, to put it mildly, can be rather slow. There are no problems once you get used to the rhythm and plan ahead, but sometimes unpleasant moments arise. For instance, the city\u2019s website allows you to conveniently choose a time and place, reserve a room, but you cannot pay; there\u2019s no way. They call you by phone to take payment by card. You can also go to the office and pay in cash. There was a funny but not very pleasant moment when I was waiting for their call to pay for the second session, but they didn\u2019t call, and I arrived at the office fifteen minutes late on the last day. I had to approach the security guard with a bold face and lie that the room was reserved. We, Canadians, take people at their word, so they let me through without checking anything, but I wouldn\u2019t do that if people weren\u2019t already on their way to the session. <\/p>\n<p>I worked through the winter and spring, but then changes happened that became the last straw. First, the office was closed to visitors and they suggested accepting payments over the phone around the corner. I sat for at least half an hour in the hallway before I got through. Second, if before a nice lady used to take my payment for an hour and a half, now some girl answered the phone and declared that payment was only for an hour. At that time, my group fluctuated between three and two people, and those extra $12.5 were definitely not unnecessary. Of course, I have ideals, but if my wife kicks me out onto the street, there will be no one to teach. I was still unemployed back then. <\/p>\n<p>And I decided to go to the library. Libraries offer wonderful rooms completely free of charge, but there's one catch \u2014 you can't conduct commercial activities there. Even charitable organizations are not allowed to collect money on-site. I was told that this isn't really enforced, as long as you don't take money at the entrance, but I really dislike breaking rules. Another issue is that the rooms are often booked, making it difficult to hold classes on schedule in one place. I taught at libraries during the summer and the beginning of winter, and had to choose those with available space, ultimately changing five or six libraries. Later, I started booking a room two months in advance, and even then, I could only manage it in one small library; in others, there regularly wasn't space at the needed time. That's when I decided to set up a computer class at home. I hung a board, bought a second table and a couple of old monitors from ads. For work, my company got me a new powerful laptop because my computer was taking almost 24 hours for analysis. So, I had a new old computer, an old old computer, a laptop that my little one broke the screen of, and an ancient netbook that I broke the screen of myself. I connected them all to the monitors and installed Linux Mint everywhere, except for the netbook, on which I installed a very lightweight distribution, it seems to be Puppy. I also have an old new laptop I bought for $200, which I connected to the TV. Also, importantly, our landlord recently replaced our windows, so instead of the terrible dilapidated eyesore, we now have new white frames in the room. My wife uses the living room, kitchen, and second bedroom as a kindergarten, so the entire floor has turned into a purely educational space. So now that the room situation is good, let's move on to teaching. <\/p>\n<h2>Scratch<\/h2>\n<p>\nI start teaching the basics of programming with Scratch. It's a language that uses ready-made blocks and was invented back at MIT. Most kids have already seen Scratch at school, so they get the hang of it fairly quickly. There are ready-made programs and lesson plans, but I don't like them at all. Some are strange \u2014 like, create your own story, for example. The whole program consists of countless blocks. <code>say '' for 2 seconds<\/code>It's clear that very creative individuals came up with it, but such an approach can teach one to write classic Indian spaghetti code. From the very beginning, I explain principles like D.R.Y. Other task collections are quite good, but kids quickly grasp the essence and start doing them like a machine gun. As a result, in one lesson, they accomplish what they should have done in five. A lot of my personal time goes into searching and selecting tasks. Overall, Scratch resembles not a programming language, but an IDE, where you just need to remember where to click and where to find things. As soon as the students get the hang of it, I try to transition them to Python. I even have a seven-year-old girl writing simple programs in Python. What I find useful about Scratch are the fundamental concepts that are learned in a playful manner. For some reason, everyone, without exception, finds it very difficult to understand the concept of a variable. Initially, I rushed through this topic and moved on until I realized that they had no idea what to do with it. Now, I dedicate a lot of time to variables and continuously return to them. It's necessary to engage in mindless repetition. I change different variables on the screen and make them state their values. Scratch also has control structures and value checks, like <code>while<\/code>, <code>for<\/code> or <code>if<\/code> in Python. They are given fairly easily, but problems arise with nested loops. I try to provide several tasks with nested loops and aim for their actions to be visually clear. After that, I move on to functions. Even for adults, the concept of a function can be non-obvious, and even more so for children. I spend a long time explaining what a function is, discussing a factory that takes in items and outputs goods, or a chef who makes food from raw ingredients. Then we create a program to 'make a sandwich' with ingredients, and later turn it into a function that takes the ingredients as parameters. I conclude my exploration of Scratch with the study of functions. <\/p>\n<h2>Python<\/h2>\n<p>\nWith Python, everything is simpler. There's a good book, Python for Kids, which is what I use to teach. It covers everything standard\u2014strings, order of operations,<code> print()<\/code>, <code>input() <\/code>and so on. It's written in simple language, with humor, and kids enjoy it. It has a drawback common to many programming books. Like the famous joke \u2014 how to draw an owl. Oval \u2014 circle \u2014 owl. There's too sharp a transition from simple concepts to quite complex ones. It takes me several sessions to explain how an object is tied to a method with a dot. On the other hand, I'm not in a rush; I reiterate the same points in different ways until some picture starts to form. I start with variables and continually drill them, already in Python. Variables are some sort of curse. <\/p>\n<p>A bright student, who skillfully clicked variables on Scratch a couple of months ago, now stares like a sheep at new concepts and can't figure out how to combine x and y, which are clearly written on the board just above. Let's repeat! What does a variable have? A name and a value! What does the equal sign mean? Assignment! And how do we check for equality? With a double equal sign! And so we repeat again and again, until complete enlightenment. Then we move on to functions, where explaining arguments takes the longest. Named arguments, positional, default, and so on. We haven't reached classes in any group yet. Besides Python from the book, we study popular algorithms, more on that later.<\/p>\n<h2>Training<\/h2>\n<p>\nMy lesson is structured like this \u2014 for half an hour I give theory, check knowledge, and reinforce what we've learned. For an hour \u2014 labs. I often get carried away and lecture for an hour, leaving half an hour for practice accordingly. When I was learning Python, I watched a course. <i>Algorithms and Data Structures<\/i> Khiryanova from MIPT. I really liked his presentation and the structure of his lectures. His idea is that frameworks, syntax, and libraries become outdated. Architecture, teamwork, and version control systems are still premature. In the end, algorithms and data structures remain, which are well-known and will always exist in similar forms. From my time in college Pascal, I only remember integers. Since my students are mostly young, between seven and fifteen years old, I believe that it is more important to lay the foundations for their future than to rush and write a platformer in Python. Although they are more keen on creating a platformer, and I understand them. I teach them simple algorithms \u2014 bubble sort, binary search in a sorted list, reverse Polish notation using a stack, but we analyze each in great detail. It turned out that modern children don't know how a computer works in general, which I also explain. I try to connect several concepts in each lecture. For example, a computer \u2014 memory\/process \u2014 memory made up of cells (I let them hold a memory stick, guess how many cells are here) \u2014 each cell is like a light bulb \u2014 it has two states \u2014 true\/false \u2014 and\/or \u2014 binary\/decimal \u2014 8 bits = 1 byte \u2014 a byte = 256 variations \u2014 a logical data type with one bit \u2014 integers with one byte. <code>float<\/code> on two bytes \u2014 <code>string<\/code> on one byte \u2014 the largest number on 64 bits \u2014 a list and a tuple of the previous types. I specify that in a real computer everything is somewhat different and the amount of memory for these data types varies, but the main thing is that we ourselves create more complex data types from simpler ones. Data types are perhaps the most complicated thing to remember. That's why I start each class with a quick warm-up \u2014 one student names a data type, the next gives two examples, and so on in a circle. As a result, I have managed to get even the youngest kids to cheerfully shout \u2014 float! boolean! seven, five! pizza, car! During the lecture, I constantly call on one or another student, otherwise, they quickly start picking their noses and staring at the ceiling. Plus, I need to check each student's knowledge in between. <\/p>\n<p>My students never cease to amaze me with both their dullness and unexpected cleverness. Fortunately, cleverness is more common. <\/p>\n<p>I wanted to write more, but it turned into quite a lengthy piece as it is. I would be happy to answer any questions. I welcome all criticism, but I kindly ask everyone to be more patient with each other in the comments. This is an insightful article.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/485424\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u043e\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430 R, \u043d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0441\u0432\u043e\u0451 \u0443\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442 \u043d\u0435\u043a\u0438\u0439 \u0434\u043e\u0445\u043e\u0434. \u041c\u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0437\u044c\u044f\u043c, \u043e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0430\u043c \u0438 \u043e\u0434\u043d\u043e\u043a\u0443\u0440\u0441\u043d\u0438\u043a\u0430\u043c. \u0415\u0449\u0451 \u043c\u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u044f\u0437\u044b\u043a \u0441 \u0434\u0435\u0442\u044c\u043c\u0438, \u043d\u0435 \u0437\u043d\u0430\u044e, \u043f\u043e\u0447\u0435\u043c\u0443. \u0412\u043e\u043e\u0431\u0449\u0435, \u044f \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u0432\u043e\u0441\u043f\u0438\u0442\u0430\u043d\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":55672,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55671","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u043e\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/kak-ya-uchu-detej-pitonu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u044f \u0443\u0447\u0443 \u0434\u0435\u0442\u0435\u0439 \u041f\u0438\u0442\u043e\u043d\u0443 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u043e\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/kak-ya-uchu-detej-pitonu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-24T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47How I Teach Kids Python | ProHoster","description":"My main work is related to data and programming in.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/kak-ya-uchu-detej-pitonu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u044f \u0443\u0447\u0443 \u0434\u0435\u0442\u0435\u0439 \u041f\u0438\u0442\u043e\u043d\u0443 | ProHoster","og:description":"\u041c\u043e\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/kak-ya-uchu-detej-pitonu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-24T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55671","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:38:32","updated":"2022-09-30 15:25:40","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/55671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=55671"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/55671\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/55672"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=55671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=55671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=55671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}