Editors/IDEs for teaching
Hi everyone, I'm compiling a list of available editors for Python designed specifically for teaching, with information about the primary targeted audiences and would welcome your comments and/or suggestions for additions or corrections. So far, I have Target audience (my own draft definition; feel free to improve upon this): * young learners (elementary and high school students) * hobbyists - beginners of all ages learning on their own * CS 100 course: elective course targeted at non CS (or even non STEM) students. The focus is more on concepts, using Python as the practical tool to learn these concepts, rather than learning the Pythonic idioms or learning the effectiveness of various algorithms. For example, list comprehensions would likely not be covered in such a course as it does not add anything conceptually to an explicit for loop. * CS 101 course: core course in CS meant as a requirement for future courses. Some pythonic idioms and details about algorithms would likely be covered. Editors / IDEs : * IDLE: included with Python. Intended for everyone. * Mu (https://codewith.mu/). Primarily intended for young learners and hobbyists. * Thonny. (http://thonny.org/) I am guessing that it is primarily intended for CS 101. * Wing 101 (https://wingware.com/downloads/wingide-101) Primarily intended for CS 101. * PyCharm Edu (https://www.jetbrains.com/pycharm-edu/) Primarily intended for CS 101. I am not looking for web-based solutions [otherwise, I would have had included Reeborg's World ;-)] and do not want to include obsolete or no longer maintained software (like rur-ple, the precursor to Reeborg's World.) Best, André
On 03/07/18 15:27, Andre Roberge wrote:
* Mu (https://codewith.mu/). Primarily intended for young learners and hobbyists.
Nope. I'm the author of Mu. It's for beginner programmers of all levels (as it says so on the website). Beginner programmer is a "stage" not an age. ;-) The design reflects feedback given to the Raspberry Pi Foundation's education team, extensive UX and feedback from both beginner programmers and teachers. Thanks, N.
On Tue, Jul 3, 2018 at 11:52 AM Nicholas H.Tollervey <ntoll@ntoll.org> wrote:
On 03/07/18 15:27, Andre Roberge wrote:
* Mu (https://codewith.mu/). Primarily intended for young learners and hobbyists.
Nope.
Thanks!
I'm the author of Mu. It's for beginner programmers of all levels (as it says so on the website). Beginner programmer is a "stage" not an age. ;-)
I do agree with what you write ... but, at the same time, I've been struggling to define appropriate categories. Some software can be designed for use by (young) adult beginners but not for young children. (For example: anything that will rely heavily on word menus ... say, like Microsoft Word.) I'm using the term hobbyists for this category. Other software can be designed to be used by young children. I did not see Mu being designed to be used in a CS 101 type of course. Perhaps I am wrong and should simply think of the target audience as "everyone" like I did for IDLE.... ? André
The design reflects feedback given to the Raspberry Pi Foundation's education team, extensive UX and feedback from both beginner programmers and teachers.
Thanks,
N. _______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig
On 03/07/18 16:04, Andre Roberge wrote:
I do agree with what you write ... but, at the same time, I've been struggling to define appropriate categories. Some software can be designed for use by (young) adult beginners but not for young children. (For example: anything that will rely heavily on word menus ... say, like Microsoft Word.) I'm using the term hobbyists for this category. Other software can be designed to be used by young children. I did not see Mu being designed to be used in a CS 101 type of course. Perhaps I am wrong and should simply think of the target audience as "everyone" like I did for IDLE.... ?
Got it in one! :-) Mu is for *anyone* who is a beginner programmer, no matter their age or background. Mu is a *very small* code base (currently around 3.5kloc). However, the installers for Windows and OSX weigh in at around 100mb. Why? Because Mu bundles Python 3, Qt, Tkinter, Matplotlib, Numpy, Jupyter, PyGame, PyGameZero and a host of other things commonly used by those starting computing classes. Why include all this stuff? Because (and I remember this from my university days) just being able to set up a dev environment on your own computer is a royal pain in the arse -- especially if you're a newbie. ;-) If the answer is "just install Mu, 'cos it's easy" then beginner data scientists immediately have a "first steps" IDE they can use to skill-up before they go figure out how to "pip install jupyter" and point their browser to the right place. ;-) Does this make sense? N.
Mu bundles Python 3...
I did not know that, and now I love it even more. Thank you!!! I do "intro to Python" workshops, and I *hate* the "setup environment" step; it chews up so much limited precious time. I've used mu for about 30 min about a month ago when I attended a 1 hour conference session: By Kattni Rembor CircuitPython is Python that runs on microcontrollers... Let me start a new thread about it happening again at PyOhio. back to mu - Yes, it is now my pick for editor to install and use. On Tue, Jul 3, 2018 at 10:11 AM, Nicholas H.Tollervey <ntoll@ntoll.org> wrote:
On 03/07/18 16:04, Andre Roberge wrote:
I do agree with what you write ... but, at the same time, I've been struggling to define appropriate categories. Some software can be designed for use by (young) adult beginners but not for young children. (For example: anything that will rely heavily on word menus ... say, like Microsoft Word.) I'm using the term hobbyists for this category. Other software can be designed to be used by young children. I did not see Mu being designed to be used in a CS 101 type of course. Perhaps I am wrong and should simply think of the target audience as "everyone" like I did for IDLE.... ?
Got it in one! :-)
Mu is for *anyone* who is a beginner programmer, no matter their age or background.
Mu is a *very small* code base (currently around 3.5kloc). However, the installers for Windows and OSX weigh in at around 100mb. Why? Because Mu bundles Python 3, Qt, Tkinter, Matplotlib, Numpy, Jupyter, PyGame, PyGameZero and a host of other things commonly used by those starting computing classes.
Why include all this stuff? Because (and I remember this from my university days) just being able to set up a dev environment on your own computer is a royal pain in the arse -- especially if you're a newbie. ;-) If the answer is "just install Mu, 'cos it's easy" then beginner data scientists immediately have a "first steps" IDE they can use to skill-up before they go figure out how to "pip install jupyter" and point their browser to the right place. ;-)
Does this make sense?
N. _______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig
On Tue, Jul 3, 2018 at 12:11 PM Nicholas H.Tollervey <ntoll@ntoll.org> wrote:
On 03/07/18 16:04, Andre Roberge wrote:
I do agree with what you write ... but, at the same time, I've been struggling to define appropriate categories. Some software can be designed for use by (young) adult beginners but not for young children. (For example: anything that will rely heavily on word menus ... say, like Microsoft Word.) I'm using the term hobbyists for this category. Other software can be designed to be used by young children. I did not see Mu being designed to be used in a CS 101 type of course. Perhaps I am wrong and should simply think of the target audience as "everyone" like I did for IDLE.... ?
Got it in one! :-)
Mu is for *anyone* who is a beginner programmer, no matter their age or background.
Mu is a *very small* code base (currently around 3.5kloc). However, the installers for Windows and OSX weigh in at around 100mb. Why? Because Mu bundles Python 3, Qt, Tkinter, Matplotlib, Numpy, Jupyter, PyGame, PyGameZero and a host of other things commonly used by those starting computing classes.
Why include all this stuff? Because (and I remember this from my university days) just being able to set up a dev environment on your own computer is a royal pain in the arse -- especially if you're a newbie. ;-) If the answer is "just install Mu, 'cos it's easy" then beginner data scientists immediately have a "first steps" IDE they can use to skill-up before they go figure out how to "pip install jupyter" and point their browser to the right place. ;-)
Does this make sense?
Yes, it does. I did install Mu just a few days ago to have a look and this is one thing that struck me as being extremely positive, as it solves so many problems faced by beginners. I am truly, truly impressed by it. I cringe when I see people on the learnpython subreddit reply to people that are clearly absolute beginners that they should use PyCharm. (I do not bother replying anymore as the PyCharm fans crowd wrongly believe that their choice is the only suitable one). My only question about suitability for CS 101 type of audience is that will it be perceived (by those "serious" CS students) more as a toy, given its friendly interface, than a "professional" tool suitable for them - such as Wing 101, or PyCharm Edu. (Don't take me wrong: I really think it would be very suitable - I'm just wondering about the students' impression.) André
N.
Thank you for your kind words! :-) Mu 1.0.final should be out in about a fortnight. N. On 03/07/18 16:29, Carl Karsten wrote:
Mu bundles Python 3...
I did not know that, and now I love it even more.
Thank you!!!
I do "intro to Python" workshops, and I *hate* the "setup environment" step; it chews up so much limited precious time.
I've used mu for about 30 min about a month ago when I attended a 1 hour conference session: By Kattni Rembor CircuitPython is Python that runs on microcontrollers...
Let me start a new thread about it happening again at PyOhio.
back to mu - Yes, it is now my pick for editor to install and use.
On Tue, Jul 3, 2018 at 10:11 AM, Nicholas H.Tollervey <ntoll@ntoll.org> wrote:
On 03/07/18 16:04, Andre Roberge wrote:
I do agree with what you write ... but, at the same time, I've been struggling to define appropriate categories. Some software can be designed for use by (young) adult beginners but not for young children. (For example: anything that will rely heavily on word menus ... say, like Microsoft Word.) I'm using the term hobbyists for this category. Other software can be designed to be used by young children. I did not see Mu being designed to be used in a CS 101 type of course. Perhaps I am wrong and should simply think of the target audience as "everyone" like I did for IDLE.... ?
Got it in one! :-)
Mu is for *anyone* who is a beginner programmer, no matter their age or background.
Mu is a *very small* code base (currently around 3.5kloc). However, the installers for Windows and OSX weigh in at around 100mb. Why? Because Mu bundles Python 3, Qt, Tkinter, Matplotlib, Numpy, Jupyter, PyGame, PyGameZero and a host of other things commonly used by those starting computing classes.
Why include all this stuff? Because (and I remember this from my university days) just being able to set up a dev environment on your own computer is a royal pain in the arse -- especially if you're a newbie. ;-) If the answer is "just install Mu, 'cos it's easy" then beginner data scientists immediately have a "first steps" IDE they can use to skill-up before they go figure out how to "pip install jupyter" and point their browser to the right place. ;-)
Does this make sense?
N. _______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig
On 03/07/18 16:30, Andre Roberge wrote:
My only question about suitability for CS 101 type of audience is that will it be perceived (by those "serious" CS students) more as a toy, given its friendly interface, than a "professional" tool suitable for them - such as Wing 101, or PyCharm Edu. (Don't take me wrong: I really think it would be very suitable - I'm just wondering about the students' impression.)
This is a really *great* point, but it comes with an answer! If you have enough knowledge to ask "Why doesn't Mu do X?" then you shouldn't be using Mu. ;-) It's time to graduate to a "professional" editor. Mu concentrates very hard on making that gap between sitting still and walking (in code terms) as easy to navigate as possible. It's the editor equivalent of toddling. ;-) So, for those CS101 students who already know Emacs, Atom or whatever, then Mu is definitely *not* for them, they should use what they're comfortable using. If you're interested I talk about this in my presentation from PyCon 2018: https://www.youtube.com/watch?v=T5IAf5vGGSk Happy to answer any questions, and as always feedback is most welcome. N.
Debian/unix: because comparative learning, depth, and libre software is also important. Jupyter: because science. Notepad/vim/nano: because they are there. No editor/ipython: because python has a repl.
Hi! I am author of Thonny. My initial target group was my students in our university's first programming course (CS 101 according to your taxonomy). I wanted an easy way to show them the exact meaning of main programming concepts. Thonny was later successfully used in several MOOC-s (both adults and high school pupils, probably same level as your CS 100) and also with high school students in an after school program (young learners). According to web forums it looks like independent learners also use it, but I don't have much feedback from this group. Like Nicholas, I don't intend to copy every feature from professional IDE-s. I do intend to add some new features for beginners, for example error explanation service (instructions for fixing common syntax errors, interpretations of NameErrors etc, reminders about putting str or int in correct places etc). Please add your opinions about which errors should it target: https://bitbucket.org/plas/thonny/issues/458/offer-explanations-for-common-e... BTW, Thonny also comes with Python built-in and it has plug-ins for MicroPython support (https://bitbucket.org/plas/thonny-micropython). best regards, Aivar On 3.07.2018 17:27, Andre Roberge wrote:
Hi everyone,
I'm compiling a list of available editors for Python designed specifically for teaching, with information about the primary targeted audiences and would welcome your comments and/or suggestions for additions or corrections. So far, I have
Target audience (my own draft definition; feel free to improve upon this):
* young learners (elementary and high school students)
* hobbyists - beginners of all ages learning on their own
* CS 100 course: elective course targeted at non CS (or even non STEM) students. The focus is more on concepts, using Python as the practical tool to learn these concepts, rather than learning the Pythonic idioms or learning the effectiveness of various algorithms. For example, list comprehensions would likely not be covered in such a course as it does not add anything conceptually to an explicit for loop.
* CS 101 course: core course in CS meant as a requirement for future courses. Some pythonic idioms and details about algorithms would likely be covered.
Editors / IDEs :
* IDLE: included with Python. Intended for everyone. * Mu (https://codewith.mu/). Primarily intended for young learners and hobbyists. * Thonny. (http://thonny.org/) I am guessing that it is primarily intended for CS 101. * Wing 101 (https://wingware.com/downloads/wingide-101) Primarily intended for CS 101. * PyCharm Edu (https://www.jetbrains.com/pycharm-edu/) Primarily intended for CS 101.
I am not looking for web-based solutions [otherwise, I would have had included Reeborg's World ;-)] and do not want to include obsolete or no longer maintained software (like rur-ple, the precursor to Reeborg's World.)
Best,
André
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig
I use Spyder in my adult beginner Python classes. I like the integrated REPL (not just a window to Terminal) and the I-Python console. Also, I'm a fan of the Anaconda distro of Python which makes it easy to jump into Jupyter Notebooks, an introductory topic in my courses. Given Jupyter grew out of I-Python, there's a lot of commonalities and integration, especially around %magic commands. Spyder is comparable to Wing 101 in its capabilities. Kirby Editors / IDEs :
* IDLE: included with Python. Intended for everyone. * Mu (https://codewith.mu/). Primarily intended for young learners and hobbyists. * Thonny. (http://thonny.org/) I am guessing that it is primarily intended for CS 101. * Wing 101 (https://wingware.com/downloads/wingide-101) Primarily intended for CS 101. * PyCharm Edu (https://www.jetbrains.com/pycharm-edu/) Primarily intended for CS 101.
I am not looking for web-based solutions [otherwise, I would have had included Reeborg's World ;-)] and do not want to include obsolete or no longer maintained software (like rur-ple, the precursor to Reeborg's World.)
Best,
André
On Tue, Jul 3, 2018 at 3:59 PM kirby urner <kirby.urner@gmail.com> wrote:
I use Spyder in my adult beginner Python classes. I like the integrated REPL (not just a window to Terminal) and the I-Python console.
Looking at some old emails, about 3 years ago I had concluded that Spyder would have been my first choice too, because of what you mentioned. I also liked the integrated help. However, I would not describe it as an editor (or IDE) whose primary purpose was for teaching, but rather designed with data scientists in mind. I think it might be a good choice for CS 101 students (to use the terminology I used previously) or for a motivated teacher who can be physically present to help students with it.
Also, I'm a fan of the Anaconda distro of Python which makes it easy to jump into Jupyter Notebooks, an introductory topic in my courses.
I also like Jupyter Notebooks, but I see them more as a tool for producing teaching (or research) material, than for a platform for students to learn Python. I consider the ability to save a program as a .py file something essential in an editor for students. The last time I wanted to do a major update to my Anaconda distro on Windows, I was shocked to learn that the recommended way was not going to work (I believe it was due to the way that Anaconda was stuffing too much stuff on the PATH environment variable which made it not possible to do an upgrade to include a newer Python version). I may have got the details wrong, but I do remember being severely disappointed by the way it worked - as I had gotten really fond of its super-battery included philosophy which made it so much easier to install some packages on Windows... = = = Looking back at my old notes, I see that Ninja IDE (http://ninja-ide.org/) was also recommended by some people. I have much to think about ... André
On Tue, Jul 3, 2018 at 12:45 PM, Andre Roberge <andre.roberge@gmail.com> wrote:
On Tue, Jul 3, 2018 at 3:59 PM kirby urner <kirby.urner@gmail.com> wrote:
I use Spyder in my adult beginner Python classes. I like the integrated REPL (not just a window to Terminal) and the I-Python console.
Looking at some old emails, about 3 years ago I had concluded that Spyder would have been my first choice too, because of what you mentioned. I also liked the integrated help. However, I would not describe it as an editor (or IDE) whose primary purpose was for teaching, but rather designed with data scientists in mind. I think it might be a good choice for CS 101 students (to use the terminology I used previously) or for a motivated teacher who can be physically present to help students with it.
Yes I agree that Spyder is not primarily for teaching. In making the job of coding easier, I good IDE inevitably serves a teaching function. I teach Python in two ways: BYOD (students have their own computers) and spin up a desktop in the cloud somewhere. The Anaconda distro suggests itself for BYOD because of its support of grabbing additional packages as well as integrating lots of tools. In the spin up a desktop courses, I've used Eclipse (O'Reilly School) and more recently Wing (ONLC). What I tell all my students is choice of IDE can be personal, a matter of taste, and they my want to jump around. I mention a bunch of them and demonstrate at least a couple near the start of my course, but then settle into using one most of all. That's been Spyder for the last few years. I'm enjoying Atom these days. I'm planning on sharing it tonight in fact (a 7th meetup of 10 for SAISOFT). What I like about Spyder is it's no cost and continues to improve. I like being able to clear the REPL at any time, also to %reset (wipe memory). In terms of students watching my screen in real time, I've become most comfortable with Spyder, but who knows if this will change. I have the programming window and REPL side-by-side vertically. I've got some Youtubes about it. E.g.: https://youtu.be/yK0LrfQFdQY (10 minute video about going from Codesters to Spyder, doesn't get to Spyder until around 3:52). I do not think my content, style, choice of tools, is in any sense "best" as circumstances and client needs vary, not to mention instructor capabilities.
Also, I'm a fan of the Anaconda distro of Python which makes it easy to jump into Jupyter Notebooks, an introductory topic in my courses.
I also like Jupyter Notebooks, but I see them more as a tool for producing teaching (or research) material, than for a platform for students to learn Python. I consider the ability to save a program as a .py file something essential in an editor for students.
Yes, many ways to slice through the material. I just finished a summer camp in a computer lab where my primary objective was to walk them through cloning a git repo on a mac (git already installed) and then experimenting with Markdown in the Jupyter Notebooks they found therein. Add some pictures from Flickr. Add a few links. I did draw their attention to the Python code cells and encouraged them to experiment by making changes to existing code. One of the campers tried to get a Wolfram Alpha API working through his Notebook however that required dependencies we didn't have permission to install apparently. These desktops were provided by the college hosting the summer camp (Reed in Portland). I talked them into putting Anaconda on. FYI, the repo in question: https://github.com/4dsolutions/MartianMath These were middle schoolers, about 15. I had an assistant instructor but he was mostly involved with C6XTY projects (unplugged).
The last time I wanted to do a major update to my Anaconda distro on Windows, I was shocked to learn that the recommended way was not going to work (I believe it was due to the way that Anaconda was stuffing too much stuff on the PATH environment variable which made it not possible to do an upgrade to include a newer Python version). I may have got the details wrong, but I do remember being severely disappointed by the way it worked - as I had gotten really fond of its super-battery included philosophy which made it so much easier to install some packages on Windows...
Anaconda is a moving target and the experience on Windows / Mac / Linux varies some. Still, it's a viable alternative to the canonical Python.org distro. Jupyter Notebooks represents a kind of "literate programming" (Knuth) where what you're showing with code may indeed not so much be about teaching the language itself. We're more surveying the contemporary workplace, looking at tools that might already be used, or might be soon introduced. In this summer school use case, we were looking at spatial geometry as a primary topic, and were learning a cross-section of skills that would not really characterize a contemporary computer science or computer programming class, even through Anaconda was on every desktop. Most my Python teaching is more conventional in terms of content, not so alien. With kids I've been using Codesters, which compiles Python to Javascript in the browser (doesn't fit the bill regarding IDEs we've mentioned). However must my work is with adults (I focus on andragogy more than pedagogy). What I find useful as a teacher is to keep tackling related challenges at which I'm definitely a beginner. For instance, I've been studying the language Rust quite a bit (recent Pycons have mentioned it, plus I'm about to go to OSCON). Kirby
= = =
Looking back at my old notes, I see that Ninja IDE (http://ninja-ide.org/) was also recommended by some people.
I have much to think about ...
André
Spyder has code cell support for evaluating a delimited block of code at a time: ```python #%% cell 1 print(1) # In[0]: (cell 2) print(2) ``` - Ctrl-Return -- Run cell - Shift-Return -- Run cell and advance $ conda install -y spyder You can export Jupyter notebooks to .py files with the second form of cell delimiters with: $ jupyter convert --to python ... https://github.com/quobit/awesome-python-in-education/blob/master/README.md#... lists a bunch of IDEs, but not with such a useful table of structured criteria. (I'm partial to vim & python-mode; which aren't at all beginner friendly) On Tuesday, July 3, 2018, kirby urner <kirby.urner@gmail.com> wrote:
On Tue, Jul 3, 2018 at 12:45 PM, Andre Roberge <andre.roberge@gmail.com> wrote:
On Tue, Jul 3, 2018 at 3:59 PM kirby urner <kirby.urner@gmail.com> wrote:
I use Spyder in my adult beginner Python classes. I like the integrated REPL (not just a window to Terminal) and the I-Python console.
Looking at some old emails, about 3 years ago I had concluded that Spyder would have been my first choice too, because of what you mentioned. I also liked the integrated help. However, I would not describe it as an editor (or IDE) whose primary purpose was for teaching, but rather designed with data scientists in mind. I think it might be a good choice for CS 101 students (to use the terminology I used previously) or for a motivated teacher who can be physically present to help students with it.
Yes I agree that Spyder is not primarily for teaching. In making the job of coding easier, I good IDE inevitably serves a teaching function.
I teach Python in two ways: BYOD (students have their own computers) and spin up a desktop in the cloud somewhere.
The Anaconda distro suggests itself for BYOD because of its support of grabbing additional packages as well as integrating lots of tools.
In the spin up a desktop courses, I've used Eclipse (O'Reilly School) and more recently Wing (ONLC).
What I tell all my students is choice of IDE can be personal, a matter of taste, and they my want to jump around. I mention a bunch of them and demonstrate at least a couple near the start of my course, but then settle into using one most of all. That's been Spyder for the last few years.
I'm enjoying Atom these days. I'm planning on sharing it tonight in fact (a 7th meetup of 10 for SAISOFT).
What I like about Spyder is it's no cost and continues to improve. I like being able to clear the REPL at any time, also to %reset (wipe memory). In terms of students watching my screen in real time, I've become most comfortable with Spyder, but who knows if this will change.
I have the programming window and REPL side-by-side vertically. I've got some Youtubes about it. E.g.:
(10 minute video about going from Codesters to Spyder, doesn't get to Spyder until around 3:52).
I do not think my content, style, choice of tools, is in any sense "best" as circumstances and client needs vary, not to mention instructor capabilities.
Also, I'm a fan of the Anaconda distro of Python which makes it easy to jump into Jupyter Notebooks, an introductory topic in my courses.
I also like Jupyter Notebooks, but I see them more as a tool for producing teaching (or research) material, than for a platform for students to learn Python. I consider the ability to save a program as a .py file something essential in an editor for students.
Yes, many ways to slice through the material. I just finished a summer camp in a computer lab where my primary objective was to walk them through cloning a git repo on a mac (git already installed) and then experimenting with Markdown in the Jupyter Notebooks they found therein. Add some pictures from Flickr. Add a few links.
I did draw their attention to the Python code cells and encouraged them to experiment by making changes to existing code. One of the campers tried to get a Wolfram Alpha API working through his Notebook however that required dependencies we didn't have permission to install apparently. These desktops were provided by the college hosting the summer camp (Reed in Portland). I talked them into putting Anaconda on.
FYI, the repo in question: https://github.com/4dsolutions/MartianMath
These were middle schoolers, about 15. I had an assistant instructor but he was mostly involved with C6XTY projects (unplugged).
The last time I wanted to do a major update to my Anaconda distro on Windows, I was shocked to learn that the recommended way was not going to work (I believe it was due to the way that Anaconda was stuffing too much stuff on the PATH environment variable which made it not possible to do an upgrade to include a newer Python version). I may have got the details wrong, but I do remember being severely disappointed by the way it worked - as I had gotten really fond of its super-battery included philosophy which made it so much easier to install some packages on Windows...
Anaconda is a moving target and the experience on Windows / Mac / Linux varies some. Still, it's a viable alternative to the canonical Python.org distro.
Jupyter Notebooks represents a kind of "literate programming" (Knuth) where what you're showing with code may indeed not so much be about teaching the language itself. We're more surveying the contemporary workplace, looking at tools that might already be used, or might be soon introduced.
In this summer school use case, we were looking at spatial geometry as a primary topic, and were learning a cross-section of skills that would not really characterize a contemporary computer science or computer programming class, even through Anaconda was on every desktop.
Most my Python teaching is more conventional in terms of content, not so alien. With kids I've been using Codesters, which compiles Python to Javascript in the browser (doesn't fit the bill regarding IDEs we've mentioned). However must my work is with adults (I focus on andragogy more than pedagogy).
What I find useful as a teacher is to keep tackling related challenges at which I'm definitely a beginner. For instance, I've been studying the language Rust quite a bit (recent Pycons have mentioned it, plus I'm about to go to OSCON).
Kirby
= = =
Looking back at my old notes, I see that Ninja IDE (http://ninja-ide.org/) was also recommended by some people.
I have much to think about ...
André
https://github.com/quobit/awesome-python-in-education/ blob/master/README.md#ides lists a bunch of IDEs, but not with such a useful table of structured criteria.
Great listing of resources! Yes, I like using the #%% feature to bracket sections of a script, used that tonight. I failed to find much time for Atom, maybe next time. I've found myself back in Atom recently because I'm learning Rust, at least to a "getting my feet wet" level. Atom has the needed color coding. Which reminds me of an important distinction between IDEs: Those that focus on one language versus IDEs suitable for polyglots (the above listing has some of each). Sometimes the best intro courses hop around among languages, highlighting sameness and differences. I enjoyed a great one at Princeton like that, which had us coding in PL/1, FORTRAN, APL, SNOBOL, an Assembly and I'm forgetting what else. That was in the 1970s (!) so of course the lineup would have changed immensely. Python front burner, maybe look at two others back burner? More like Harvard's CS50. https://youtu.be/n_8zxTH7SvA Sometimes even if just looking at Python, one might go with at least two IDEs as a minimum, perhaps one dedicated to Python, one more general purpose. Kirby
Regarding Atom.io editor for Python (and other languages), I'm just now discovering the Hydrogen plug-in. This allows highlighting contiguous lines in a script and treating this as a cell, as if in a Jupyter Notebook (but we're in a normal program). The output inserts directly below. Here's a screen shot: https://flic.kr/p/27KsgFG Editor split in two columns with in-line Jupyter-like output interleaved I found this Youtube showing the user experience: https://youtu.be/VcDbxEV-OI0 Learn Jupyter Notebooks (pt.1a) Hydrogen with Atom by Mark Jay As with Jupyter, you can also get LaTex symbolic output with this feature. Still exploring. Kirby
Hi! I just found an educational Python IDE nobody hasn't mention yet -- TigerJython: http://jython.tobiaskohn.ch/index.html Here is author's PhD thesis: https://tobiaskohn.ch/files/Dissertation_TKohn.pdf best regards, Aivar 03.07.2018 17:27 Andre Roberge kirjutas:
Hi everyone,
I'm compiling a list of available editors for Python designed specifically for teaching, with information about the primary targeted audiences and would welcome your comments and/or suggestions for additions or corrections. So far, I have
Target audience (my own draft definition; feel free to improve upon this):
* young learners (elementary and high school students)
* hobbyists - beginners of all ages learning on their own
* CS 100 course: elective course targeted at non CS (or even non STEM) students. The focus is more on concepts, using Python as the practical tool to learn these concepts, rather than learning the Pythonic idioms or learning the effectiveness of various algorithms. For example, list comprehensions would likely not be covered in such a course as it does not add anything conceptually to an explicit for loop.
* CS 101 course: core course in CS meant as a requirement for future courses. Some pythonic idioms and details about algorithms would likely be covered.
Editors / IDEs :
* IDLE: included with Python. Intended for everyone. * Mu (https://codewith.mu/). Primarily intended for young learners and hobbyists. * Thonny. (http://thonny.org/) I am guessing that it is primarily intended for CS 101. * Wing 101 (https://wingware.com/downloads/wingide-101) Primarily intended for CS 101. * PyCharm Edu (https://www.jetbrains.com/pycharm-edu/) Primarily intended for CS 101.
I am not looking for web-based solutions [otherwise, I would have had included Reeborg's World ;-)] and do not want to include obsolete or no longer maintained software (like rur-ple, the precursor to Reeborg's World.)
Best,
André
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig
On Mon, Jul 9, 2018 at 8:18 AM Aivar Annamaa <aivar.annamaa@ut.ee> wrote:
Hi!
I just found an educational Python IDE nobody hasn't mention yet -- TigerJython: http://jython.tobiaskohn.ch/index.html
Thank you very much for this. For those that look at the available links and do not pursue further because they appear to point to resources written in German, note that some documents are available in English (and French) in addition to German. For example: http://www.tigerjython.com/engl/index.php I have not tried it yet. Reading the description, I like the fact that it appears to be a self-contained environment (like Thonny and Mu) that include nice simplified tracebacks and other features useful for beginners. I note that it adds to standard Python a special repeat syntax repeat n: # block of code which is something I also support on Reeborg's World. I suggested such an addition for standard Python on the Python-ideas list but it was quickly shut down (and I don't disagree with the rationale given - but I still think it is something very useful in an environment designed for beginners). It is possible to implement something like this in standard Python using import hooks (as I reported some time ago on this list), but it is not exactly easy. (I may have more to say on this soon.) André
Here is author's PhD thesis: https://tobiaskohn.ch/files/Dissertation_TKohn.pdf
best regards, Aivar
03.07.2018 17:27 Andre Roberge kirjutas:
Hi everyone,
I'm compiling a list of available editors for Python designed specifically for teaching, with information about the primary targeted audiences and would welcome your comments and/or suggestions for additions or corrections. So far, I have
Target audience (my own draft definition; feel free to improve upon this):
* young learners (elementary and high school students)
* hobbyists - beginners of all ages learning on their own
* CS 100 course: elective course targeted at non CS (or even non STEM) students. The focus is more on concepts, using Python as the practical tool to learn these concepts, rather than learning the Pythonic idioms or learning the effectiveness of various algorithms. For example, list comprehensions would likely not be covered in such a course as it does not add anything conceptually to an explicit for loop.
* CS 101 course: core course in CS meant as a requirement for future courses. Some pythonic idioms and details about algorithms would likely be covered.
Editors / IDEs :
* IDLE: included with Python. Intended for everyone. * Mu (https://codewith.mu/). Primarily intended for young learners and hobbyists. * Thonny. (http://thonny.org/) I am guessing that it is primarily intended for CS 101. * Wing 101 (https://wingware.com/downloads/wingide-101) Primarily intended for CS 101. * PyCharm Edu (https://www.jetbrains.com/pycharm-edu/) Primarily intended for CS 101.
I am not looking for web-based solutions [otherwise, I would have had included Reeborg's World ;-)] and do not want to include obsolete or no longer maintained software (like rur-ple, the precursor to Reeborg's World.)
Best,
André
_______________________________________________ Edu-sig mailing listEdu-sig@python.orghttps://mail.python.org/mailman/listinfo/edu-sig
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig
On Tue, Jul 3, 2018 at 10:52 AM Nicholas H.Tollervey <ntoll@ntoll.org> wrote: On 03/07/18 15:27, Andre Roberge wrote:
* Mu (https://codewith.mu/). Primarily intended for young learners and hobbyists.
Nope.
I'm the author of Mu. It's for beginner programmers of all levels (as it says so on the website). Beginner programmer is a "stage" not an age. ;-)
"Young" is a state of mind not an age. ;-) -- *Kevin Cole* Software Developer / Member / Owner <http://novawebdevelopment.org> NOVA Web Development Co-Op http://novawebdevelopment.org/ Arlington, VA
maybe http://www.pyzo.org/mission.html (seems like simple, though oriented towards scientists, but lacks docs)
participants (9)
-
Aivar Annamaa
-
Andre Roberge
-
Carl Karsten
-
Jurgis Pralgauskis
-
Kevin Cole
-
kirby urner
-
Nicholas H.Tollervey
-
René Dudfield
-
Wes Turner