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:

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é