Teaching Python

Video in TIB AV-Portal: Teaching Python

Formal Metadata

Teaching Python
Title of Series
Part Number
Number of Parts
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Production Place

Content Metadata

Subject Area
Robert Lehmann - Teaching Python Using Python in bringing people closer to programming has been popular for a while. But what are the most effective ways to do so? The OpenTechSchool reports. ----- Python has been used in educational programmes ever since. With a bandwidth that large, navigating the landscape of Python tutorials is hard indeed. This talk will look at successful Python teaching material. From the numerous iterations our material has gone through, we draw conclusions on what's crucial in teaching Python. It will introduce how the OpenTechSchool is teaching Python and what measures it found most effective in spreading programming in general and Python in particular. Among these are rapid feedback, supervised learning, localization, and knowing your target audience. The author is a member of the OpenTechSchool, a free community initiative which offers Python workshop on a number of topics. Some of the workshops have been running for more than two years now. He has written the first versions of "Python for beginners," a workshop which has been used in many cities to teach Python to programming novices.
Keywords EuroPython Conference EP 2014 EuroPython 2014
Link Lecture/Conference
programmers Meeting/Interview directives time digital absolute open languages form
Relation Computer animation directives guide rights sort
raw breadth fit Calculus program algebraic Computer animation Lecture/Conference strings calculations strings integer patterns
mud Gap PROM 3rd Infinite EOS program variance languages Twitter quotients recording website pubs Sum of onto Systems overflow ICONS unit projection Programmable menu com Computer animation URN university fingerprinting
programmers OOP inherits Lecture/Conference ones objects Twitter
Computer animation Fault Tolerant
mobility point functionality connection range students part Variables indexing job Computer animation strategies strings
turtles Computer animation state consistency feedback Stäbe total write
addition turtles Computer animation total
Computer animation Lecture/Conference objects languages languages
versions areas effective runtimes Computer animation Case Decision stations translations set security languages
effective job Computer animation Lecture/Conference software developers unit set Ensemble languages
programmers awareness Computer animation Lecture/Conference directives program
versions slides Computer animation Decision Latin list shell rights Sum of
point read slides rectangles awareness file code time sources field programmers causal strategies Lecture/Conference profile integer rights errors data processing turtles ARM file moment constructor range Stäbe rectangles Word job Computer animation statements objects
Functional Programming state time set open part program Computational languages different memory analogues Arrow model errors Systems cover software developers Gradient moment feedback sample bit messaging Ordering iOS rights sort Referenzmodell mode recording point laptops functionality Barriers Real events number versions loops critical temperature Lecture/Conference level structure form inherits Bracketing cells projection analysis total rectangles Word loop environmental networks Case Trees objects pressure abstractions
thank you very much thank you and it's becoming an a like the link got a great last lesson advanced you but a lot of of them the so
I've been direction that's the
of the vessel that's random under the open lexical as workshops for teaching of absolute beginners to for them in how to program and Python and other languages and How reduces is together bunch of people among them coaches were nozzle on Titan programmers who know how to program and learning someone and learn how to program in the I had very different backgrounds from mostly non-technical people on then we give them material in digital form mostly on so let's say can browse on and 2 hours of time you to browse and and broken the material and the exercise so as carry on such a regular and was walking down the
streets afterward and after the direction on I reached some kind of a yet funky plays a million and solid
and so there lot would anyone I mean this is just 1 style right we all love and intuitive and related pictures and shortly afterward relatives maybe that's this so some somebody apparently was very sad out about Python style guides and adhering to on coding style some sort of looking at the Titan material because we have the tutorials and stuff and if you look at it on very official
patent tutorial it starts off with talking about calculations and stuff and how do you at 2 integers to each other and to baby called on its stops with some thank you stuff we references and it's pretty advanced for tutorial by the cake so I scrolled through it and what do you guys think where on doesn't talk about the immutability of things for example just run and get to the and the middle beginning middle and middle of it's at the very beginning in the French chapter actually like right after talking about what do we have to integers you about talking about text and string on like how do I do Boston and caves and and how do I repeat little balls of strings like from working features not even experienced by the program as every user and pattern tutorial just goes about and talked about this in in length and a very detailed on a given and at the beginning of the tutorial there was the very 1st sentence you read in the Python Tutorial as they you can start to tighten it if we don't have guessed an 2 important what you get to to invoke the command line of best fit to do interactive sessions so and if I get a to a beginner always
so they would be like bull there's a lot nobody nobody would understand them
and I look at that little and so that was some guy asking hey and trying to teach on my system someone on how to but a program and you would use patent and he asks about what is the best example project example thing I can give them what do you think that would be where would you start at the beginning any guesses when total references again and they also they have this is yeah just started the kids that we did do you know what I think of you just have to to teach them is about there's a lot of language I mean I have is less than interview questions but why would anyone teacher begin and how to do this but I mean having had a world of his because this is buzz on your commandments pretty high but not the best thing to them for the and the
trend continues if you look at the Python books which out there like the ommatidial universities have for example the MIT starts
with object-oriented programming this is easy and ITS ICP ones like 6 0 1 causes the very beginning to programmers and the stuff talking about objects inheritance and stuff and so that's pretty function so what you can observe is that the the general trend in the patent community is write
references so everybody wants to be a reference everything needs to be correct and and very very wide and very profound against from and I understand that some
people react very badly and so on so if you take anything out
of the session today Pompidou Centre references on tolerances of every 2 very different and distinct concepts I would even say they are disjoint or and do not contain exactly these the different and you try different approach so everybody's the often need references on tutorials very good thank you and I'm Grace this audience I've ever had to do and
so I tried to come up with some points like what would I say as a reference and mobilization tolerance so as a reference you try to be very correctly every single thing you say it should be correctness of nothing where somebody could come and say knows this wrong and this is clearly part not true also the reference you would always try to be complete so I can well understand why the Python Tutorial and about and talked about strings in depth because it was translated it try to come to examine strings and try to tell you everything it knows about things like the immutable you can slice and dice them and you can count how long they are and all that kind of and this is most cited references strategy to matter right so on for example if you want to introduce students to general then you would not want to to introduce my and of index variables and stuff but you would want to use the fall in the range of functions that are I think this is the wrong approach for components suppose tutorials you want do a very different approach when comprehensible so that people can actually understand what you're talking about going to the coherence of there's like defined further movement through the whole tutorial and sometimes you the job at hand that might sound strange right now but I come to this in a 2nd so the point and
that the maybe understand where the distinction comes from and how it makes sense so I tutorials need to be comprehensible so 1 1 point I was trying to make into the the is graphical this to the
hands on me to see something into you something in your text you start that so somebody's
adjustable fault for teaching Python already and that's a great tool use it and you can you can I mean most of you not picture of consonants what about 90 per cent of the room etc. 99 something also total is a very nice tool for teaching writing because you can instantly see staff and you can come and get instant feedback that it is very great now some people come to me when I suggest using total and the state this not I noticed that you know and it's like
a very old and people not to use it but it's such high-yield additional but he wants to use it later this is for little little children why would I want to talk to the teachers to adults and which is always an essay no it's not so experience has shown that when we and show showed you the trouble or total material to to adults their
react like this you you have it's pretty shall use but let me play with it they they spent 2 always playing that and instantly forget it's for children's it's very funny another thing
to be comprehensible is using their
language this applies to to like any deterrent on predators of course on so that you can don't speak about like the objects in the very beginning but maybe you wanna use things instead because people can understand what the thing things your called a person but had an object like this a very elastic constant and try to use their language on their own not your concept of the world another thing is to use their language so in your potentially translate material and
those might come very obvious to most of you but very few people actually do it by translating tutorials is still something I would say I'm very few people do understand important because you can do a lot of things that are wrong with it so and you can the
runtime example about translations always on have is culturally so when you talk about let's say I'm buying are something for you as dollars it might not be obvious what that means to to Chinese people want to European people for example so you want translated as well it's not like only 1 to 1 translation on other things you have to watch out for is that using model in hot I can only recommend things so that the discriminative also that we use whatever you want are and the last thing about transitions areas try to have 1 master set of decisions we've had 2 stations where we had like a German version of the english version of and they kind of security and we have 2 different versions and we didn't know cases fixed was applied to the German 1 what was it applied to the English 1 I don't know well so try to have the
english or whatever language of the fair as mentioned master set of transitions and always applied fixes development and translate them back into the of so we
think about how to make material comprehensible the the individual units but how do we make it so that's a whole different different story like not wanting so very much like in music you need to have some have something which is the the main voice of it right so you need some kind of story which you will run through it so that that is not only in the material itself but also in the process of making the material we have material where we have a lot of people contributing to it and so to say a lot of voices and it's kind of
got very noisy so the material on diversity there are very many directions and try to have 1 main boys all we have OK this material goes into that direction and this is out of scope this in school 1 thing we
programmers it's very we think about that is that we might have a look at all when we write any example and programming we very often have but the context of concepts around which programmers don't think about because we know it but other people are have to be told
what to do like which entities which including is not on this
is also very easy like you control them use whatever and about comes to other questions like Which versions will use people tend to say had just use free your right into whatever but make the decision you will be informed person can make decisions not the the very critical thing I've seen on a slide of list is and the distinction between trials and the shell so when you have the interactive shell is not for trying things out all but you
want to have 1 morning in the teaching process very tall and became was nice that's good to find the cause it's much better to to maintain and stuff but but have that 1 point in nanomaterial until that actually made the error that we kind of left it open for the learner to decide where they at which point in time they when switch to the 2 files and so you never even knew it is thus evident already know about finance why does he use that's use them the so pay attention for that it's a very critical distinction which we intuitively make about normal people so to say that the last
time all the most confusing surprising 1 but I think to tolerance sometimes need to be idiotic so when you think about on i use this idiom and this slide I and whatever and exists the 1 true right way to do it but it's it's all bullshit I mean I've seen people just very true staff in the sense that it is saying for programmer but not for long for example it is suggested that the material which was about data processing and it needed to open and close highest to read from them and finally came along and said while opening using the open profiles is not the best way to handle because it can sources and stuff so that user with constructs which is a very true objection but is not helpful in the in in the context of learning how to process data because opening fire was not the main context like was was not the main goal some people want to learn about data processing of the Wisconsin is was on not the use of the object might able exercise our I always do with beginners is is this 1 I give them the larger size draw a rectangle and the will have any light like writing code like this and so on with that of all words in 2 divided into 4 times and then you have erected fundamental and effective was great knowledge lawfully rectangles so let know copy and paste the code so they are not rectangles which they go and then I come I'm being the year and call them OK now we resize the rectangles make them twice as much of a small enough so that having copy-pasted this code need to go in and just every single all interested in the field of there the Baroque found for aid to integers from correct art which is very painful and not a nice experience for approval for a beginner which is the best moment you have the teaching process to reduce full statement because you can tell them yes you would not have that kind you use the full statement for the great is it wrong I was called the no pain no gain strategy to teaching on begins if you try to let them go through that little pain you can medical we teach them how to how to use the abstractions and and to value instructions you're actually trying to become the arms I hope I get a classifier that tutorials are not references to and that you need to be comprehensible
career and and sometimes a little bit idiotic when trying to teach people tighten or any children language and the birds and non human open permissions thank OK thank you so far on this 1 microphone it was the 1st of many of the of i at which point do you explain the difference between the reference model of a the Python and the way I see doesn't barbarians I so because most of our audience is non-programmers we don't have to explain the difference we can just explains that their concept of references made and dumb the the metaphor I always uses using sticky labels so that you put a sticky label on object and it has that name on the point where we do that it's pretty early on the material when we talk about the animals and the variable assignment so long that's different chapters of his because if you don't have to compare it to to see and like this is a memory slot something and it's pretty easy to get across because of you states of the out but the next but again this thank you for of I was curious about that the problem and faced with general that's cells learned helplessness problem I think in teaching in general that sulfur development in particular that there's a lot of and fear for 0 I can't do this this is only for debate the guys the peaks and analysis popularizing and what your opinion about this may be a set of general discussion within the teacher environment of the charter developments to overcome that when we have the problem of the scaring the people get a point on I'm afraid I don't have a very good answer for you but because people just sign up for courses and the apparently those people already motivated enough to to do that and they seem to have a non-technical background so what I am not sure I know what is the reason for that but if you so I've had people I I've talked to people and tools and just try and just give me this to our workshop to try and the most people would come out of the workshop and the are motivated enough to do it and which is also the critical point because I people like when people prepare workshop most people are like I need to explain the objects and loops and inheritance and does everything don't try to do that if you have a motivate them they don't need explains the very basic stuff you need to spark some inspiration and that's something we always do but the beginner cost does not go into objects at all I guess but because you just wanna spot motivation and in the in the audience if there is an answer to question go them did thank you very much for the most of I think it's Superfund to teach present so I do it myself and I have 2 questions the 1st 1 is do you have any personal experience with using using IPython notebooks for teaching purposes the answer is no OK good because I think it's that let me so some people in the open their school years I played and apparently they're pretty successful without on but I can't say anything possibly because of the use of for teaching so and the 2nd 1 2nd is how much time do you actually spend on explaining syntax because Python is very simple and like syntactically but I in my experience with the level of a program before depending on what language that we speak it is a very difficult thing to explain that now everything really matters you can just switch things around but in some languages the sentence structure is completely flexible and in English is often quite flexible so people think that if I turn things around it should still work but in Python it's really that yes if you initiate a for loop unique this call on at the end mode and then the brackets around functions these things that's an excellent question on so we don't actually do anything text explanations to them like going through all this and and and something I would just tell them you need to write that in order to do do that on so that sort for example take the form we show them a very simple form open and we tell them OK now use the rectangular sample something and my guess would be that most people are so if afraid enough of computers that they would just vital what you told them to write and in the beginning so that they know OK every single character was important when there is a character that was just a right so that's not too bad because then there is a fixed by just seeing so those are all they will ask 1 of the coaches and we can tell them OK and now this is a computer in its understand you need to cover like like Aaron said thank you for the effort soccer I had a question about desire organized the will of Python tutorials and someone for the well and someone catastrophically bad and the 1 there which was really bad words are exactly as the question and I kind of were stuck between input very easy answer in a very comprehensive answer and the question was OK introduction you've introduced us with this fall loops and if but what do
I want to do our software structure designed for because I don't need a for loop I wanted to HTML always so you I was basically stuck without having no answer to this this person who was attending a substring développement Seminara without knowing why she was doing it so far and in these kind of events you basically some some have to convince people that as you have to explain to them why they need what why that might want to wear and suffer designed such developments in some sense that we why here ends I feel like a lot of Baikonur tutorials do not in cover the like why would you even do Python or software development and so I don't have any idea about that yeah the point on the indeed 1 of the reasons I would say people don't ask that no version of this topic total is the single best teaching to other because they instantly see what they're doing and they are intrigued enough to abide by that kind of traffic on graphical feedback that they will stick to it so total seems to be very powerful in getting people to actually use wanting to do that so many just had trouble and time and see that gives you and that in itself so he's just just for the recording said that immediate feedback is important and just immediate feedback is the 1 single best thing I would say in the you can use in teaching yeah so talking about Sparrow messages and reading arrows when you have a syntax error when I see from 1 of the fuses they don't know the new users coterie error message and it's sort of what translating it it's not just that it is in English but world and z is oral message that they don't understand like a tree rooted at don't function whatever so you approaches problem the Cervantes just asked and so very often see and it is the interpreted explode in front of people's faces on and they're like allowed this number another and then I just go to them and ask them to pay you do have any clue what just happened to what does it say and then people was done actually reading the error message if you ask them what just happened on and that usually helps to to get them and trying to understand what the error means and if you then ask them to explain to you what just happened then they were kind of dig into it and and and try to understand the do you think people post uh so that that was a great teaching tool that teachers and of language and it's fun uh but at some point somebody's going to want to apply them to real world problems and the moment when rich barrier between drawing pictures and searching for all systems so I think that isn't the pressure gradient you're talking about real world problems and talking moving from to get was yeah sure and so the gaussian was that how do you move from totalled to to real world problems and that and a hot topic would we of so the so I thought about motivation right so what we you struggle for is mainly the motivational part on so to get people to to to like this programming think and what and you're right that travel is very limited in what it can do in a real world use case we sometimes use like a very simple drawing problems like you want to draw some nice and it's called nation like on 1 very country used on geometrical figures on but this is rare total stops here right so a trouble is useful in getting people understand the concept of it so I would say not to useful and getting them to work on a project that's the truth yeah thank you OK 1 more question because then we have to switch rooms and stuff and you can read the speaker I used yet so when the how and sometimes they have to teach people of course programming and all stuff that close to that and there is 1 guy is has the small thinking this his money that way this season solution and the interest repeated but of course in these particular cases abstract thinking is really important so this kind of uh became useless successful but uh it's really hard for him to overcome this model of thinking have you ever met such a such a person and if you did you have how did you help him to overcome this very very subtle small of just repeating solution instead of finding analogies and thinking obstruct so the question was and how do you help people who have very different model of thinking to adopt a new 1 and so there's 1 story I once met a guy who was parent whose brain worked like functional programming which was pretty amazing to me but what about and I I don't think that there's a good solution to that but just let them do enough exercises which is well suited to the model of thinking you want them to to doctor and that usually helps like that using exercises gets people into into the right mood for for on critical thinking that so hands on most important what basically we're much you and thank you