Transcript [0:18] Write hello and welcome to teaching python the business episode 25 looking at the best python editors for. [0:25] Welcome my name is Sean Tibor I'm a coder who teaches, so how are you doing Kelly it seems like we've flipped roles this week with you teaching summer camp and Me Away traveling and and learning my first week of. [0:46] Teaching ages 5 to 13. It is we have about 43 kids this week a lot busier than what you had the last couple of weeks but it's still the same kind of thing where we're just getting in our hands on anything that. Computer science related it's been really a lot of lot of fun this week in Austin Texas, and so we are I think we have a few interesting wins to show this week so why don't why don't you start what's your win of the week to share you know I was trying to go through all the winds we've we've had a lot of fun little things I get to see the little kids in action and to see the the excitement when they see a new robot or I have the some 4th graders taking apart a laptop so I think my when's my win this week is actually just seeing the kids faces when they when they find something new whether it's Kubo whether it's our Vector Cosmo. All of its just. [1:49] Been really great just to see their expressions on their faces so that's something that's my win this week when I was teaching summer camp earlier this summer it was really great to see. [2:00] That taking a step back from the day-to-day School environment just letting kids explore and play and try something new and different especially since. So many of our students that we have in summer camp aren't necessarily the same students that we have during the school year so. Have a fresh taken in a different way of looking at things during the summer camp. [2:21] Can I get you to remind yourself of where you are in the the learning process you have to take a step back and we restart the whole concept of computational thinking, and just get your hands dirty again with a whole bunch of new faces each time it's pretty exciting and challenging and fun all the same time so. My my twin has been a little bit different is more focused on myself and my own self improvement, so this week I'm at SCI Pie as I mentioned in in Austin. [2:54] And this week I just finished the tutorials track of sci-fi so I've been meeting people and learning new things and brushing up on some new skills, but there been some really fantastic talks here and. What I've been appreciating most are kind of biggest win is realizing that there's so many ways that we can bring python into both our classroom and other classrooms, so I've met people from in a researchers and universities and academic settings to computer scientist who support. [3:26] Like near the US geological Services Department here in the in the federal government. So there's been just all kinds of really interesting connections to make and conversations to be had about teaching and learning Python and. Looking at how adult Learners especially very accomplished. Scientists and researchers go about the process of learning Python and applying it to their to their daily work so it's been a really exciting and Kevin vigorating conference from that perspective me pictures I don't know if it's to make me jealous or just to inspire me to learn more but I'm really excited about looking at some of these these GitHub link that you sent me, and seeing what you've learned it said I can't wait to get dig into that pandas book that you just got, yeah it's really great I spent about an hour talking about ways to apply data science or introduced data science. To middle school and high school students with the author of that book today over lunch so that's you know we're just one more reason to go to conferences is the ability to sit and talk with the people that. [4:30] Are published in our thought leaders in the space and have unique and different viewpoints from your own when it comes to pedagogy and Technology of python. I don't depend cut that out I might have to leave it in, a little bit brain dead today from the from the teacher is going to say what it will lead into that is so what kind of codeine are you doing just can you give us a little bit of a snapshot of what you're saying, besides so I've been focusing really on different tools that I think will be helpful for us in the classroom. So I spent some time in a tutorial on matplotlib so I wanted to take more of an introductory course and really step through all the different pieces, of how matplotlib plots are created and so that was really help I feel like I have a much more solid foundation to work from now with with visualization. I also took a whole tutorial on how to model oscar-winners or how to analyze the winners of the Academy Awards for movies. [5:39] And predict what types of movies are best suited for awards at the Oscars like if I wanted to create a, Fame and Glory type movie that would last forever what kinds of things would I need to incorporate in my movie is it the actors and actresses is it the screenwriter is it the, here it is in a blockbuster do I need to make it make sure that it makes a lot of money to get the visibility that it needs. So is a really fascinating process we did a lot of web scraping to do that as well as some regression analysis in in pandas to be able to pull that off I don't answer I have a clear answer I think you know there's more data to be gathered but it seems like anything that has Tom Hanks in it tends to do pretty well, yep it's just things like that. How can I help build out some of these units we've done I also did some work with Jupiter lab which is for the next generation of jupyter notebooks. And then there's been some really great tutorial to I haven't seen that I get to check out on online later around things like Jupiter widgets and, gpu-based machine learning or GPU based numpy, type acceleration so lots of really great projects out there that are getting good tutorials this week and now it's continuing with talks and more like shorter presentations, for the rest of the conference sounds great I'm so excited we're going to have a lot of fun bringing some of that stuff out of our classroom and into other teachers classrooms. I can't wait to see what we can do with that. [7:09] Absolutely absolutely so this episode you know going from that kind of this idea of what tools we use and how we use technology in the classroom, one of the things that we wanted to do this week is talk about what type of code editors we use to write python code. This was a great idea, you brought this up now that we've got enough knowledge to be dangerous when it comes to code editors, it gives us the opportunity to take a look at this from a rather unique perspective that I don't think a lot of other in a guides or blog posts are comparisons Roy Look at which are. What are the best editors for teaching python or for learning it for that matter so from both perspectives as a student and as a teacher. Which editors are best suited for for this processing and where their voice drinks between them it's my, my editor and I'm working with another one this summer trying to. [8:09] Introduce myself to the root a little bit more of a real-world professional editor it got me thinking about. Could we bring this into that to our students would this be something that wouldn't be scary and then also our talk with Meg and we were talking about how terminal is still, still something that I I struggle with getting my head around and how can we transition and say using that, in our course so that's where I was thinking about where we're going with this. Nice nice so what makes a good editor for teaching in your opinion Kelly what it what are the things that you're looking for when it comes to choosing an editor. For your students to use to Learn Python and this instant kind of gratification child where everything is clickable and we can move around a lot I like to keep something. [9:02] And give something to our younger students that is a little bit less cluttered and so. [9:09] Things that bigger buttons not such smaller print and not a lot of words on it that's where we started when we first started coding this year. So that's one of my things that I look for sounds like you're talking about making starting simply right so starting with something that is the simplest possible editor and then building up from there. Do are you looking for just one editor or do you think that there are Cent there's value in having a few different options when you're teaching a course when we were when we were coding and. You brought in a couple of different editors started getting confused as to. So there must be a fine line there's got to be a fine line before introducing a lot of editors and also giving choice to the student so some kids will may prefer to have. [10:06] Something installed others might prefer to work online but the the biggest thing that I find is being able to store and save the files and a easy location for students to confine, that's where I am with choosing a good editor for me a lot of the attributes that I'm looking for really are, how how simple or complex is it to get started right from the time that you choose to download it or go to it and get going to be able to write that first line of code you know what's at 02 first line of code. Time frame look like. [10:40] And then I'm not is as interesting I'm not necessarily looking for a really deep editor I'm not looking for something that's going to grow with the student over time. [10:52] I believe that their editors that are well suited for beginners. [10:56] And then there is a process about growing that as well so I'm looking for something that is very focused and simple and knows what it is and delivers on that really well, in the classroom. I don't need it to be something that you have to be able to become a professional coder in as well I feel like it's perfectly fine to switch from a beginner Editor to one that has a few more features that may be more suited for the next phase of your your Development Career, that's when I remember I remember catching myself at the end of the fourth quarter, talking to some students and I said okay if you really want to be a professional coder in Python you need to switch out of Acts and go into why because you know that just looks cooler so, there's something about giving that little bit of a push to to say you graduated you graduated the baby steps and now you can go on and go to a professional ID I agree and then I think the other thing that has to be set as it has to be free to start because we don't want to make a big investment into a coding editor. For students especially that that we're have spent a lot of money on for tonight could be a short course especially if you're teaching a volunteer course or something where the students can opt out of it some of its optional or intellect. [12:11] In a wire why would you spend money on a tool to learn in a save that for when they student grows into it you know so I where's the next stage for them, and I caught myself doing that today or yesterday when I introduce a couple of. Short python programs to the campers and I said listen let's just open up this program right here is online you don't need to login, if you like it go home tonight and make yourself an account and then tomorrow, if you want to code some more you'll be able to save it and I had five kids come back and said and said that they they made them an account and so they must have liked the the codeine if I thought it was pretty option where I don't want to have to install things I just want them to jump in and start coding right it's so everything we've got simple. Easy to get started focused and clear in terms of what it does and what it doesn't do. [13:06] And it doesn't need to be the end-all solution for editors I bet it's something that you should be able to outgrow and yeah but transfer what you've learned as well. To look at these out of there so, what's the what's the first editor that comes to mind when you're thinking about teaching python, Mo and and what Nicole has done with developing mu editor has to be my top favorite when we are starting to code with our kids. Here I agree it's really a valuable tool it's the first thing that comes to my mind as well it hits a lot of the criteria, it's simple it's free it's easy to get started it is something where I have to train students who are used to using the cloud for everything, that you can download programs to this to your computer and then run them on your computer to where it's not running in a web browser it's another program that's probably the biggest hurdle to getting started. Helping them install a program for the first time in many cases on their computer. [14:15] I'm going to have to make a correction its next time sorry I was I was signing his his Twitter handle is in tolls on Twitter sorry I like it. Buttons are are big and you know you have some icons on there because you know how kids hate to read. The check function and he's constantly making some updates with the help of feedback from others it's a simple program download and for some reason the kids really like. Use the theme. [14:49] Feature of mu and turn that white to the black screen and I think just having that simple which just really brings us together as a great editor for starting with n e. [15:00] Python coding or microbit coating on circuit circuit playground Adafruit. Card game all that stuff not eat a fruit help me out here at the BBC micro bit, pygame zero the way that its design there's room for additional modules in the future so I think in the next version that's currently an alpha release right now there's even a a web mode there where you can create your own web apps. Curtis Mill so there's a lot of really great features there. It would you also had on the fact that it does have all these different modes so you can use it to code the BBC micro bit bored and flash code directly to that board by clicking a button. Just fantastic if you've ever tried to 2 flash code to a micro bait using the command line it's a little bit more challenging and then. [15:52] You know you can also do circuit playground pygame zero, then there's the full standard Library as well so it comes with python built-in like so the batteries are included in the box when it comes to me you, that is a huge deal because instead of having to get python installed on your computer first to be able to use the other, editor's that you want to it's all included it's one download one installation and you're writing code pretty much immediately. Nick Cox actually even tells you that you know this is your first step in programming with this editor, there is a article that says good luck now it's time to move on your Advanced so now try these other IDs he had that mindset that this is the first thing to go with and. I agree that's my top one before we go on it might be helpful to just Define what an ID is versus an editor. So they're there is a difference and editor can be used to write code and edit code in it often includes things like syntax highlighting and maybe some, some combat convenience features like the code completion using the tab button things like that. But generating editor is very lightweight and it just allows you to change the text in your source code and maybe gives you a few like short cuts for you no running at or executing it. But an IDE by contrast goes quite a bit further and offers a lot of tools for full development so it might include things like. [17:20] Debugging tools that might include. Code inspection tools and more robust library or code completion tool set so if you're going from a an editor, to an ite you should be expecting a lot more features to it and I would say that new acts sort of like a beginner ID where it does have some of those more advanced features like debugging and even applauded her and things like that for, for reading serial data but it's still as lightweight as a as a typical code editor. Thank you that's it that's a good explanation so for me though the one that I went to after I graduated from you and it's it's hard to believe it's only been a year since I started learning python but I started learning python using me like like our students to. I went on to visual studio code R vs code as they call it and, this is from Microsoft and I know that in a people of a certain Generation IV mine you know many of them look at Microsoft products and go I don't know if that's such a good idea I get doesn't doesn't feel right I can assure you vs code is. Part of the new Microsoft there's a lot of really great things that Microsoft is doing in the open source community. To embrace Python and in other languages and vs code is one of their Flagship efforts in that space, Sophie s code is a is a program that runs on Windows Mac and Linux. [18:42] Fully open source you can install a python extension for it in the python extension which gives you kind of all the python. Conventions in features everything like that in vs code is the most popular extension in the library I particularly like vs code because it is too kind of that next editor, where it has a lot of powerful Advanced features there many full-time developers who are using vs code on a daily basis, but what I particularly like about it is it it starts off much simpler for you I mean you can use it just as an editor. [19:17] That what you got at text code and text files and make changes into C syntax highlighting and then you can add the features that you want to it so, it's still preserves a lot of that simplistic view that the mule editor has it has a lot of the powerful features you would expect from a professional environment in there as well so it gives you kind of that nice ramp up from you into a new editor wants to be my default I do not code directly in vs code and I think that's one of the ones that I might, maybe eventually get into but that's all I have to say after going to Pecan and seeing jetbrains and seeing all the things going around with pycharm I wanted to check that out I have been working on trying to figure out how. To even start digging into all the cool features of hitron we have a book here and that's one of the things I'm going to do when we start school. [20:25] But I like Paris charm it was easy to install. For educators the pycharm for educators is free it is an open source and it is free install and I also have free for Learners and I like that, that aspect of it you also have the pipe term for professionals which is a paid version but just going into it. [20:47] It's very easy for me and there is a an opportunity I think you can switch into terminal I haven't really gotten into that aspect of it but I like the way I can see the path that the file program path and I can store all my files within a project and just opening up the difference. [21:07] Auctions in there and running my program within pycharm I like the way that it checks things for you which is super, super awesome when you are trying to look for that missing parentheses at highlights you can you can click on a lightbulb and it says, you know it tells you the options of what's missing it it's got that extra kick that I didn't have a new, and I think I'm starting to feel like I'm more of a coder using pycharm, although I think I've only covered about I don't know a hundredth of what the features are there's a lot in there you know it's interesting that they have a ton in there in the education Edition on and I don't know if you saw this yet cuz we haven't really used it in the classroom. Has a number of lessons that you can take if you're as a learner their courses built in pycharm that you can take to Learn Python and learn different libraries or different different parts of the language. There's even the ability to integrate with external coding challenges websites and complete your code right there in pycharm so there's some really interesting features with pycharm EDD EDU. Because for educators you can actually create your own courses as well so we could create a course for our students all in pycharm me to you. [22:25] They can get from their edu Edition as a learner as well so it's a pretty neat. Extra feature that they've added to pycharm specifically for educators, yeah if you just go to their website with jet frames.com the link will be in there are show notes but you can click on the pycharm at edu and you can see for yourself just getting started introduction to python even there's a course that in itself is just a great. [22:52] A great opportunity to look at what time you think these are kind of the big three there's another editor out there that just frankly we haven't used as much called funny that's also designed to be a basic code of, for beginners and then we've also had students using the built-in idle editor in python as well with the fair amount of success also. So there's plenty of different options out there when it comes to installing editors on your computer now. [23:20] Something that's interesting that we've been we've used quite a bit in our classroom or the code editors in your browser. Kelly tell us a little bit about you know the code editors that you've used online and and where you choose to use an online editor instead of a I want that since all on the computer the one that we use here at Camp right now because it's something that the kids can go home and and use on their computer is wrapple are Apple. It it's just an easy easy get to, you go online you can you can choose a language and how many languages does Ruppel ITC. [23:57] Just looking at it it's just insane and I started using Rebel back when we were playing around with her I didn't even know what I was told to be honest I just was. [24:10] Copying some code and watching the turtle make some shapes this is before I started coding in Python and I was doing it on Rebel and then when I found out that I was going to wait I've done this before it's one of those things where you can just tell because jump on it here some code I can even share it and and they can click on a link and it'll take it take them straight to my code it's got some, great features I know you used it in class to grade as well so you can create a assignments using the replit education Edition. So you can create classrooms and assignments for students to complete and then even set up your own manual or automatic grading using testing Frameworks. [24:50] They also have templates in rapel so. Just looking on it you can do your block bog site you can do a bootstrap 3D animations with. I don't even know P5 OJs so you can go on and learn any of any language besides python using Code any language besides python on Rebel that i t. Something that you can do in other editors. [25:15] But that I don't know that's your that's a something for you to say especially for things like pair programming or collaboration is that they just introduced. [25:27] Earlier this year they introduced multiplayer mode so for anyone who's coding in a wrapple on. Python or whatever language there's some now multiplayer mode where you can invite other people to collaborate with you in the same workspace using the same kernel. So you can be on the same code base you can see them making changes at sort of like Google docs for code with all of the live editing features so I think that that's a that's a great one and I suggested that the students when they're looking to collaborate on a project together, especially if they can't get together in the evening face-to-face to work on their project I suggest they use Rebel because a replit because they can. [26:08] Collaborate together even if they're sitting at home in their own rooms on the computer. Well not nothing new here but you know getting little still back in there but my mind that kind of gets you segwayed into, GitHub now it's going to give you the idea of making the split of the code or working together it lets them realize that this code is not something that has two lives. Only on their computer or be shared by email or some other way so I think that's it is just a nice feature of being able to code and share and collaborate in real time. [26:43] Yeah I agree it's it's kind of late it's get him collaboration without having to learn get right away. So that can be really helpful for students because it if you're if you layer on Version Control on top of learning how to code, it can be a little bit overwhelming for cover whole lot of people hate it for me warning jet has not been an easy process I'm still learning. So I certainly want to make sure that it's easy for our students to collaborate without having to add another layer of complexity to their coating over five but one of one of the ones that. Is on our list is more specific only for micro bit and that was another one that's easy to jump on. And use when you're done can for when you're working with kids and you want to get something for you just buy something micro bit and you can code. [27:37] Straight online using if you're using the microphone in which I thought was a kind of a neat adding the website is python. Microbit. Org. And right okay and not. I haven't use that for a few months but if I recall correctly what's really great about that as it gives you an environment for coding python specifically for the micro bit with all the libraries and everything. And then I think you can download the code directly to the micro bit is that right that's correct and it it's kind of got that move feeling but even less there really only 1 2 3 4 5 6 7 buttons on on this and you code your micro bit code straight there you can save it you can load it they have the Snippets of. [28:22] What diesel triggers will do and you download it straight into the microwave it's something that is simple quick you don't have to install anything you can grab your microbats and you can have kids coding. [28:36] Straight into it with python and in a matter of seconds we should definitely bring up here I don't know if it makes a top 5 list or top six list or or whatever but I have to give a shout out to Jupiter, as a coating environment especially with what we have for Jupiter lab upcoming Jupiter lab is becoming more of a coding environment not just a a notebook anymore. Women use notebooks quite a bit in our classroom to be able to do. I analytics to be able to do code-sharing and one of the big challenges I know many Educators face is the. [29:12] The sharing right how do I share this notebook with my student how do I get them to start it up if I want to start up a notebook or Jupiter lab on my own computer. It's not a trivial exercise me I think I've got it down to about a 5-minute process to start up a new Jupiter lab. Or jupyter notebook by after the after I create a virtual environment install the packages and all those things one of the great things about Jupiter that's that's been really encouraging to see is how many you online versions of Jupiter available and the two that come to mind the most for for me are Google colab. And binder so if you want to start up a jupyter notebook in the cloud you know how many of these different options and for us being such a Google dominant School. [29:58] Google call that makes a lot of sense because it's yet another version of a Google doc that students are very comfortable with the interface and familiar with the idea of sharing it. And have the ability to run code and run it line by line or section-by-section against the colonel. [30:15] Instagram to run the same script over and over and over again and they can make a change and run just that cell that contains the most recent update that they made, yeah and I and I forgot about that I do I love the the collab feature I love using that in outside of the computer science class and when we bring the stuff into other curriculum just being able to text and it. On on that space and still run the code is is a nice feature to have to teach python exclusively in a jupyter notebook in fact, many of the tutorial sessions that we've been going through here at Sipe I have been hot in a jupyter notebook, because it's an easy way to guarantee the environment that we're working. It's got all the Right Packages already it has all the code already installed that you're going to need it also has instructions in line or interspersed with the code blocks, so I'm seeing Jupiter used, quite a bit in a variety of different forms for teaching python in teaching computer science. As it continues to grow and develop and more into a specially now with being in with collab and Linkedin Google drive or it's just something that's so flexible and easy to you so good good call on remind, and it's been fun here at sipi to see just the absolute Wizardry that people are pulling off with Jupiter and all the different parts of the Jupiter project. [31:40] In a variety of different settings so. If you are worried about the future of Jupiter there's really no reason to be there's some pretty amazing stuff that's happening. [31:53] Editor's adult swings a editors rides. Here at school and at camp and then are coating at home, if anyone else has something else out there that they find should be made or put on the list or we should check out let us know. [32:16] Tweet at us at the teaching python put into the show notes just so that, if you get a sense of what's out there and there are so many different ways to learn coding down to Learn Python now, that is a really exciting time to see all the different tools that are available to us so. Please if we miss something let us know for those of you out there who are using them in a terminal to write code and you think that everyone should learn it that way, you know it put your case forward let's see you know what's I want to hear your best Arguments for why everyone should learn vim and the terminal. [32:51] And then and then you can come teach me an easier way because I get lost in there, it's funny it is one of those things we get we get really comfortable with the editors that we use of the IDS that we use regularly and it still blows me away to watch someone who is proficient at using them, or Emax right code it's just kind of magical to watch them cruise through stuff so I say this with love I just don't know how I'm going to teach 6th graders how to use them well I think we've covered it and I have to go prepare for the 43 summer campers that are coming in tomorrow and you have to go learn some more at sci-fi. That's right so without any further dude for teaching python this is Sean.