[Idle-dev] IDLE in UK Schools

Chris Roffey chris at codingclub.co.uk
Fri Aug 7 00:35:25 CEST 2015


Hi Al

The kind of thing I am looking for is a combination of what is great in IDLE plus adapted good ideas from such educational sites as Greenfoot, Scratch, etc.

I do not get so much of the mix up with shell and script from my readers. Possibly because we start only working in the Shell which we call “Interactive Mode” and then move on to "Script mode" with regular “Interactive sessions” to try out snippets of code or do little experiments with new functions to see how they work - another fantastic feature of Python and IDLE - straight out of the box!

The sort of direction I would like to see IDLE developing would be that it opens by default into a simple shell but with the ability to turn on a few other panels that stick to each other while being resizable by dragging the margins. (This stops students losing windows.)
e.g. http://codingclub.co.uk/IDLE4Ed/IDLE4Ed-shell.png <http://codingclub.co.uk/IDLE4Ed/IDLE4Ed-shell.png>
In addition to the documentation and suggestions functionality it would also be great if mispelt words (i.e those that have not been declared or are not in the python library) are underlined with squiggly red lines, like in word processors before code is run.

The turtle module is fantastic for education, especially since you can mix turtle graphics with the power of Python seamlessly! The only issue as far as I am concerned is again windows disappearing behind each other. An interface which controls this might look something like this:
http://codingclub.co.uk/IDLE4Ed/IDLE4Ed-turtle.png <http://codingclub.co.uk/IDLE4Ed/IDLE4Ed-turtle.png>

Finally script mode by default (i.e. File, New script) would appear with three panels: tabbed scripts, output section and a Console (shell) at the bottom. However other panels could be added by ticking them to show in the Workspace (or View if preferred) menu looking something like this:
http://codingclub.co.uk/IDLE4Ed/IDLE4Ed-tkinter.png <http://codingclub.co.uk/IDLE4Ed/IDLE4Ed-tkinter.png>

These last two examples show how mixing the best of IDLE and a simplified Frames model can come up trumps. I believe having tried the Greenfoot tutorial that the interface takes a lot of teaching whereas my suggestion I believe is intuitive. It gets rid of the problems I see kids have by messing up the number of spaces/tabs needed when indenting and negates the need for indent, dedent and code out functions currently in IDLE. Instead students press a colon and the current frame extends and adds a blank new one within it. Other frames can be dragged into any other frame with automatic indenting.
There should of course be a save as text facility for backward compatibility as much as anything else. Oh I would also have show/hide number lines as options. Sometimes they are helpful to a teacher - others not so.

Although a huge amount of work, I believe (but I am open to correction here) that the auto-correct, the suggestions, the documentation and the languages could all be added with “alias libraries”. In fact, would it not be possible to have all of Python’s key words (32 isn’t it?) run in the background but have any number of language aliases for display?

Instead of being modest this time, I have suggested most of what I would like to see so that others can feel free to knock them down or, perhaps be inspired to think of new and better ideas.

I would also take on board on all of your suggestions except the tutorial mode as I see this as digressing from the core value of providing a great IDE focussed on writing code.

What do you think?

Best wishes
Chris

> I also don't really see a conflict here. Nobody is advocating for the removal of the interactive shell. In the single-window design I have on the IR wiki, the shell is on the bottom just so that it is always visible (though the pane can be resized to take up more of the window when needed.) One very common problem that I get from readers is that they enter code into the shell instead of the file editor, or vice versa. Since the interactive shell looks so similar to the file editor, having it always be on the bottom gives an obvious spatial cue, rather than looking for the (much smaller) >>> prompt.
> 
> Chris, the good things about IDLE is that 1) it is bundled with Python, 2) doesn't require configuration (good for classrooms), and 3) is simple. Adding script mode/shell mode/turtle mode/professional mode would be a lot of work and also add to the complexity. We don't want to compete with PyCharm and other professional IDEs, and folks can move on to those IDEs after they get some experience.
> 
> Turtle mode doesn't require it's own dedicated mode either; it runs pretty well from the interactive shell in IDLE right now. What were your ui design ideas for a turtle arrangement?
> 
> -Al
> 
> On Thu, Aug 6, 2015 at 3:22 AM, Chris Roffey <chris at codingclub.co.uk <mailto:chris at codingclub.co.uk>> wrote:
> Oh dear,
> 
> I have been away for a day celebrating my Mum’s 60th anniversary and so not been able to contribute further. I have followed the discussions with interest and been very excited by them. The enthusiasm and hard work that has gone into making such a useful tool was refreshing and all open source. I was a little embarrassed to be someone suggesting things and yet not having the technical skills to help so “listened” for a while.
> 
> There is so much enthusiasm for Python and Computer Science in UK schools that I think this is very important. I started bebras.uk <http://bebras.uk/> two years ago and we got 21,000 students in our first year, the next 40,000. Success of Computing in the UK is in no way certain as we are chronically short of trained teachers but there is still a momentum.
> 
> I personally feel there is no real conflict between the different views expressed in the last two days. I believe it would be fantastic if we can re-think how to make IDLE the most user friendly IDE for beginners and I would add some cosmetic differences (the ttk stuff looks like it would be a big help in improving the professional look). However I would not remove anything! I had in mind a “Workspace” drop down menu where users call up different facilities. The basics being "script mode" (the shell) and “script mode”. I would also add at least a “Turtle" arrangement and a “Professional” set-up. Would hope that if this is done well, fans of IDLE will be pleased, students and teachers would be pleased AND more professionals would stick with it too - everyone wants an IDE that does not distract from writing code and lets you get on with what you want intuitively. Kids want an IDE that they can grow with so providing pro-features that can be selected as their skills develop is ideal.
> 
> I have some of my own ideas that I have not presented here as I did not want to be too pushy having just joined this group, and as I said I probably do not have the skill to help out. However, I originally was not able to go to PyCon UK this year (in September) but with some encouragement from you guys will try and cadge a late ticket and see if I can drum up some feedback, support, talent and possibly even money if it is required. PyCon UK has a dedicated Education track which this year is being run by the Raspberry Pi foundation. They and ARM sponsor the Bebras comp which I run (now in partnership with Oxford Uni). I am name dropping to show there are some potential powerful advocates with many skills in the UK. I also have friendly contacts in Microsoft and Google. All these people and organisations want to make sure the UK and ultimately the rest of the world have a fantastic CS programme with the best of tools. They are also great fans of Python 3 as an education tool.
> 
> I am off on holiday for a week today but will continue to watch my emails and try to formulate some ideas I am comfortable to share.
> 
> Best wishes
> Chris
> 
>> On 6 Aug 2015, at 10:02, Guido van Rossum <guido at python.org <mailto:guido at python.org>> wrote:
>> 
>> I am not interested in this discussion. You all can do what you want.
>> 
>> On Wed, Aug 5, 2015 at 11:30 PM, Terry Reedy <tjreedy at udel.edu <mailto:tjreedy at udel.edu>> wrote:
>> On 8/5/2015 5:55 AM, Guido van Rossum wrote:
>> On Wed, Aug 5, 2015 at 4:43 AM, Terry Reedy <tjreedy at udel.edu <mailto:tjreedy at udel.edu>
>> <mailto:tjreedy at udel.edu <mailto:tjreedy at udel.edu>>> wrote:
>> 
>>     As a user of Idle for several years, and not a beginner, I disagree
>>     with 'only'.  That aside, I consider it unnecessary and diversionary
>>     from the numerous known issues that will benefit *everyone*.
>> 
>> The core of this comment is "unnecessary and diversionary ...".
>> 
>> As for 'unnecessary', what does adding 'only' add to the discussion? Does that mean that we should reject features that also benefit non-beginners? If not, what does it mean?  What extra design guidance does it add?
>> 
>> As for 'divisionary', see, besides the above, my questions that follow the 'PyCharm' quote.
>> 
>> Please note that I volunteer my time to improve Idle *because* it is primarily used by students and secondarily, perhaps, by others who are not professional programmers.
>> 
>> I was worried that you'd respond like this. *No* change to IDLE will
>> benefit *everyone*,
>> 
>> Please give me the benefit of the doubt and assume that I am saying something sensible. By 'everyone', I mean "everyone who uses Idle" and in relation to a particular issue, 'everyone who use the feature in question' and in relation of OS-specific issues, 'everyone using that OS'.  With those meanings, my statement is reasonably true.
>> 
>> > for the simple reason that few people outside the
>> > (non-higher) educational field use it.
>> 
>> Bruce already covered colleges.
>> 
>> There are also post-beginners, but not professional programmers, like my daughter, who are so far happy with Idle and do not yet need the advanced features of other Python shells.
>> 
>> And there are Windows users.  Windows Command Prompt is awful. Interactive Python in Command Prompt suffers its sins. I believe most Windows users who try Idle Shell find it to be a better experience. One of the other core devs once (blushingly) admitted on pydev to using Shell on Windows for this reason.
>> 
>> > IDLE should not try to compete with things like PyCharm ...
>> 
>> What does this mean in terms of Idle design decisions?  Can you give me examples of what you think should not be added?
>> 
>> You and Kurt each have twice given general advice that Idle should be kept 'simple' and not have 'advanced' features added.  But I have trouble turning that general advice into concrete decision making.  Are there any enhancement requests on the tracker you would reject as too complex or advanced?  (To make checking easy, I can send or post a complete, categorized list.)
>> 
>> A couple of the features at the end of Al's list strike me as the sort of things you are saying not to do in the advice above.  Do you agree?
>> 
>> In particular, consider post-installation switchable multiple language support. That would, in general, be of most benefit to the youngest beginners.  It is also a rare and rather advanced feature, and complex not only in terms of the programming, but in the need for coordination with an internationalization group separate from Idle maintainers themselves.  Should we avoid competing with more advanced programs and leave this out?
>> 
>> > , nor with the Emacs/Vim world (and I consider most every text editor > professional coders like to use these days on Linux/Mac/Windows to be > in that world, from Sublime Text to Atom).
>> 
>> Notepad++ had been recommend as a multiple (50) programming language editor for Windows on python-list.  I have also seen it mentioned on Stackoverflow.
>> 
>> > IDLE's one redeeming feature is that it's bundled with Python,
>> 
>> As installed, Idle
>> 1. Colorizes Python code
>> 2. Converts \t to '    '
>> 3. Saves in utf-8 (3.x)
>> 4. Checks syntax before running and marks the location of error in the editor
>> 5. Runs the file in -i mode
>> 6. Displays tracebacks and print output in a window with normal cut and paste
>> 7. and can jump to the error line of any file in tracebacks
>> 8. ...
>> 
>> As installed, Notepad++ does 1.  With some searching through the extensive settings menus, one of which is not obvious, it can do 2, 3, and 5. By running in Idle or another external, installed program instead of command prompt, it can get 6.  As far as I know, it can never do 4, or 7 in the sense of jumping back to Notepad++.  With respect to this 7 points, Idle is the better choice for developing Idle programs.
>> 
>> I presume that some of the other programs you mention match Idle in features 4 and 7, which I find *very* useful. But I think you have an overly narrow view of the virtues of the program you help create ;-).
>> 
>> And to repeat, Idle makes the interactive mode of Python, as installed, a joy rather than barely tolerable. If it were removed, another replacement for command prompt should be found.
>> 
>> 
>> -- 
>> Terry Jan Reedy
>> 
>> 
>> _______________________________________________
>> IDLE-dev mailing list
>> IDLE-dev at python.org <mailto:IDLE-dev at python.org>
>> https://mail.python.org/mailman/listinfo/idle-dev <https://mail.python.org/mailman/listinfo/idle-dev>
>> 
>> 
>> 
>> -- 
>> --Guido van Rossum (python.org/~guido <http://python.org/~guido>)
>> _______________________________________________
>> IDLE-dev mailing list
>> IDLE-dev at python.org <mailto:IDLE-dev at python.org>
>> https://mail.python.org/mailman/listinfo/idle-dev <https://mail.python.org/mailman/listinfo/idle-dev>
> 
> 
> _______________________________________________
> IDLE-dev mailing list
> IDLE-dev at python.org <mailto:IDLE-dev at python.org>
> https://mail.python.org/mailman/listinfo/idle-dev <https://mail.python.org/mailman/listinfo/idle-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/idle-dev/attachments/20150806/ac64d470/attachment-0001.html>


More information about the IDLE-dev mailing list