[Edu-sig] Editors/IDEs for teaching

Wes Turner wes.turner at gmail.com
Tue Jul 3 18:29:13 EDT 2018


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#ides
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 at gmail.com> wrote:

>
>
> On Tue, Jul 3, 2018 at 12:45 PM, Andre Roberge <andre.roberge at gmail.com>
> wrote:
>
>>
>>
>> On Tue, Jul 3, 2018 at 3:59 PM kirby urner <kirby.urner at 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é
>>
>>>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20180703/e8c945bd/attachment-0001.html>


More information about the Edu-sig mailing list