> Common feedback from people trying to use Python in education is that
> it can be difficult and confusing to get a system that includes all the
> dependencies they require.
Not many people have contributed to this discussion although argubly I
think this is just as, if not more important than the editor discussion.
Working on my own projects is fairly straight forward as I usually
develop on Linux (which is much easier platform for Python development
than say Windows), my computer is not restricted in anyway and I always
have an internet connection (at least during the development and setup).
However when I have worked with schools then it's not been possible to
install additional packages as the machines are locked down, or because
they are not allowed to connect to the network. So I think this is an
important step forward in making it easier to learn programming in
I have found on some of my own projects I have had to list a large
number of steps required in installing the pre-requisites that an
educational bundle will help with.
I think it's good to start with the requirements rather than solutions.
From the "must have" list, and my understanding, I was expecting just a
list of modules that could be pre-built and easy installed, but the
highly desired list goes beyond that. I think there could be a real
benefit with those addditional features, although I'm not sure how
easily they can be implemented on computers that are "locked down". One
thing I do think we need to consider is how updates to the education
bundle can be managed as no doubt there will be additional modules that
need to be added in future such as when the next super-dooper Raspberry
Pi hat comes out :-)
I think it's worth highlighting some of the issues / difficulties on the
different platforms, I've listed some of my experiences below.
It is harder to install python moduels (and software in general) on
Windows as it may be neccessary to install using different sources (eg.
binary install files as well as PIP). I think the biggest problem with
Windows is likely to be that they are locked down to prevent software
from being installed (including locking out the teachers in some cases).
I think that having a single installable package which includes the most
popular modules that are used in education would make it easier to give
that as a single install step that can be applied to existing Windows
systems. It could then be presented to the adminstrator as a single
install client that can be pushed out on the system.
**Linux (excluding Raspberry Pi)**
Although (excluding the Raspberry Pi) Linux is used less in schools than
the other platforms I think it's still useful to at least look at how
the education bundle can be implemented on Linux. I think this could be
useful for colleges and schools looking to re-use some older machines. I
think we are likely to see this considered more in future as teachers
become more adept with Linux based on experience with the Raspberry Pi.
The current PIP system is designed to make it easier to install
software, but it's not quite as straight forward as it should be. It can
be an issue where a computer is locked down to prevent additional
software being installed and support for all packages isn't as easy as
it could be. For example to install pygame for Python 3 on Ubuntu
requires compiling the package and if using PyUSB (to control a USB
device) then that includes dependencies upon Libusb and the package
needs to be manually downloaded and installed using setup.py.
**Raspbian on Raspberry Pi**
Raspbian is already further ahead than some other Linux distributions
with inclusion of pygame for Python 3, although it still has difficulty
with some other packages (such as PyUSB). In some schools the Raspberry
Pis are all being used off-network (due to school policy), so I think it
would be good to get additional packages installed in the NOOBS image so
they are available by default.
Unfortunately I don't have any experience with Mac to be able to comment
on the particular issues, although I expect it will not be too different
from the other platforms in terms of issues.
Lots of great discussion but I'm losing track of our list, so I've moved it
to a google doc. Please suggest amendments so that we can get a final list
together to vote on before we turn to finding volunteers to help build it.
Then we will take it to a testing phase to get feedback from real learners!
On Wed, Sep 23, 2015 at 12:48 AM, Dave Ames <david.john.ames(a)gmail.com>
> On Tue, 22 Sep 2015 20:50 Nicholas H.Tollervey <ntoll(a)ntoll.org> wrote:
> On 22/09/15 17:46, Dave Ames wrote:
> > I would suspect that (rightly or wrongly) most school network
> > technicians would be extremely wary of giving students access to a
> > system shell of any kind.
> Then most school network technicians are fools and should not have ANY
> input in such decisions.
> NOTE: I'm highly biased about this. ;-)
> Pythonedu-wg mailing list
> Absolutely no disagreement from me there. If they've configured everything
> correctly then access to the command line for students, should present
> absolutely no threat to the network. But!
> The default state is "no command line", even though access to Python/Idle
> probably gives them at least the same level (if not more) of danger.
Raspberry Pi Foundation
UK Charity No. 1129409
Common feedback from people trying to use Python in education is that it
can be difficult and confusing to get a system that includes all the
dependencies they require. Although the Python standard library is
‘batteries included’, we commonly want to use libraries like the Python
Imaging Library, PyGame(Zero), NumPy and more. These are often non-trivial
to install, particularly on Windows. The aim is to produce an easy to
install Python ‘education’ bundle that includes many of these dependencies.
A non-goal is replacing the existing Python installer package. As a number
of people have pointed out, Conda (http://conda.pydata.org/docs/) might be
a sensible starting point for this. I think it would be most sensible to
start by more clearly working out our requirements before we get in to a
detailed discussion of existing technical solutions though.
To kick things off, here’s a list of possible requirements brainstormed by
Alex Bradbury and I. Please do suggest things we may have missed.
*Absolutely must have*:
- Package available for Windows, Mac, and (ideally) Linux
- Includes common libraries like PyGame and NumPy
- Users still have the ability to install simple new libraries via pip
install or similar
- Include a graphical editor, ideally the new editor this working group
- Ability to select pre-built versions of libraries that weren’t picked
for inclusion in the standard package after installation
- Ability to easily Python and package versions after installation
- Some way of helping the user make sure they’re running the ‘correct’
- Thought given to common Windows network management solutions used by
To keep track of this list I've created another google doc that we can work
Raspberry Pi Foundation
UK Charity No. 1129409
I would like to initiate work on building an education friendly python
editor to potentially replace IDLE and be part of an education bundle
available across multiple platforms (including relatively low-specced
systems such as the Raspberry Pi) through this work group.
To kick off, here’s a list of possible requirements. Please feel free to
comment and add to them:
*Absolutely must have*:
- Both windows open within one application (the shell window and text
- Simple buttons to run code
- A way to change font sizes easily
- Syntax highlighting
- Error reporting that highlights lines and gives a good level of feedback
to the user.
Since my talk around the development of a new text editor at Euro Python
<https://youtu.be/_gU7sfTrz4c> in July and Pycon Australia in August,
community members Ntoll (Nicholas Tollervey), Lord Mauve (Daniel Pope), and
others have begun work on an open source project called Puppy
<https://github.com/lordmauve/puppy>. Here is a video
<https://www.youtube.com/watch?v=PXfzfZzq1dc> of Puppy but I believe that
more has been added and/or removed since it was filmed. I think this
project could be what we are looking for and we would welcome the thoughts
of the wg.
Great discussion. The already tab-enabled IDE I'd suggest is Geany (
http://www.geany.org/Main/HomePage), which is free and lightweight enough
to work fine on the Pi. In fact I was introduced to it by the folks working
on Pi3D, a package that lets you do 3D graphics on the Pi in Python.
My book: *Hacking Math Class With Python*
On Tue, Sep 22, 2015 at 12:50 PM, <pythonedu-wg-request(a)python.org> wrote:
> Send Pythonedu-wg mailing list submissions to
> To subscribe or unsubscribe via the World Wide Web, visit
> or, via email, send a message with subject or body 'help' to
> You can reach the person managing the list at
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Pythonedu-wg digest..."
> Today's Topics:
> 1. Re: A new, kid-friendly Python editor - help page (Florian Bruhin)
> 2. Re: A new, kid-friendly Python editor - help page (Danilo Bargen)
> 3. Re: A new, kid-friendly Python editor (Dave Ames)
> 4. Re: A new, kid-friendly Python editor (Nicholas H.Tollervey)
> Message: 1
> Date: Tue, 22 Sep 2015 13:18:41 +0200
> From: Florian Bruhin <me(a)the-compiler.org>
> To: pythonedu-wg(a)python.org
> Subject: Re: [Pythonedu-wg] A new, kid-friendly Python editor - help
> Message-ID: <20150922111841.GB30194@tonks>
> Content-Type: text/plain; charset="utf-8"
> * Ash Guy <ash(a)ashguy.com> [2015-09-22 21:07:08 +1000]:
> > - I?ve never got the idea of this ?Spaces are better, as long as they
> behave like tabs? concept. While this is not the place for a deep and
> meaningful argument around whats better in the wild, I?d suggest this one
> be solved scientifically. What is going to be easier for the user when just
> starting out (in light of the above)? Does someone impartial want to run
> this discussion as a subproject??
> I think that's pretty easy to answer - almost all tutorials,
> resources, libaries, etc. use 4 spaces, as per PEP 8. Using something
> other than that will just introduce pain when copy-pasting code from
> somewhere else.
> Notepad++ used to default to inserting a tab when pressing the tab key
> even when writing Python, and I think they changed it to four spaces
> because of exactly that reason.
> > - It would probably be super powerful to come up with some kind of slick
> visual representation for objects and variables that?could ?show the
> application growing and changing during its run? maybe even an interactive
> ?app diagram? (can you imagine little blocks popping into life as you step
> through your application creating variables etc!). I for one know I
> represent my collections of objects visually in my head. Could be a great
> tool for visual learners.
> http://www.pythontutor.com/visualize.html comes to mind.
> > - Can this?just use Python 3 and be done with it? Backwards
> compatibility is for sissys (and in all seriousness probably doesn?t solve
> any of the problems the tool is trying to solve).
> http://www.the-compiler.org | me(a)the-compiler.org (Mail/XMPP)
> GPG: 916E B0C8 FD55 A072 | http://the-compiler.org/pubkey.asc
> I love long mails! | http://email.is-not-s.ms/
> *Absolutely must have*:
> - Both windows open within one application (the shell window and text
> editor window).
> - Simple buttons to run code
> - A way to change font sizes easily
> - Syntax highlighting
> *Highly desired*:
> - Error reporting that highlights lines and gives a good level of
> feedback to the user.
> - REPL
> - Projects
I'd also add some kind of integrated help page & language reference.
This would be particularly useful when running on the Raspberry Pi as
when I've seen Raspberry Pis used in schools they have often been off
the school network.
I like the 3 pane view used in Sonic Pi, although for Python I think the
command line should be more prominent and use the width of the editor.
So I think it should be Top Left (most of screen) editor, bottom left
(width of editor) command line / messages, right hand side help.
Context sensative help (hover / tooltips) would be good too, but I think
that would be a nice to have rather than essential.
Here are my thoughts – I’ve trimmed some of the quotes to reduce the
size of the email (although it’s still very long).
>> “I am afraid that I am not convinced that Puppy is heading in the
>> right direction though. Has anyone asked kids what they want - perhaps
>> at the recent UK Pycon? It might be that I am simply out of synch with
>> the group (if so I will just back out politely and wish you all good
>> luck) but I do not see there being a very large group of students
>> around the world that want a really paired down editor with big icons:
>> I don’t think there are many 8 year olds that actually could or should
>> be learning Python. 10 and 11 year olds are already used to more
>> sophisticated interfaces than Puppy”
I think it’s difficult to ask someone that is just starting in
programming what they need and they honestly don’t know. They wouldn’t
be able to tell you what features they would like as they don’t know
enough about what they will do. It is however possible to see when
children are getting confused around the current interface and that
provides a basis that can reduce the barriers to entering programming.
The current interface of IDLE is confusing and does get in the way of
them learning programming. It’s not just the children that struggle with
this either, the parents do too. I spent a few minutes explaining the
different windows to one parent at Pycon UK on Saturday who was unable
to help their child as they were confused.
Regarding the size of the buttons, I don’t think the buttons need to be
particularly big, but what is needed is to limit the number of buttons
and make it easy for them to know which button does what. For example
there should be just one button for RUN and not have to know it’s Run
Module rather than Run Shell.
>> “Thinking student first though, we would realise that font size
>> buttons are for the teacher not the students, therefore this facility
>> should be included and made easy for teachers to implement but
>> probably in a View menu and with sensible shortcut keys.”
Font size is useful for several people. Clearly it makes it easier for
the teacher when projecting on a screen, but it’s also useful for
children with a visual impairment, or just to make it easier when pair
programming. Being able to shrink the size is good when you start
writing longer programs as it allows one to easily see the rest of the
code to remember the variable name etc.
>> “My students would want help with the indent problem, therefore I
>> would add easily accessed indent, dedent and reformat (for pasted
>> code) buttons and insist that there are only 4 spaces allowed, no
>> choice. Personally I would prefer a simplified frame system which also
>> gets rid of the long line of code problem; getting rid of this problem
>> means that students can be encouraged to use meaningful variable names
>> with out worrying about code clutter. They would also like help with
>> avoiding syntax errors in the first place rather than having them
>> pointed out at run time.”
Indent is certainly one of the things that trips young (and old)
programmers up, so a good consistent indent system is needed. I
personally think spaces is better and would agree with that.
Being able to select a chunk of code and move it to the next indent is
very useful especially when copying and pasting sample code.
>> “There are many other things I know my students would like to see (and
>> that I would like to see for them) but, just out of interest, their
>> number one priority would be a deploy/share menu so that they can
>> share applications they make with their friends and relatives on any
>> platform without having to ask them to install Python first. Probably
>> the hardest thing to implement!”
A good point, but potentially a conflict with Python itself. One of the
benefits of an interpreted language is that the code is portable and
compiling to a binary would go against that. It may make it easier to
run on Windows, but then stops it working on other systems. Or you end
up bundling the Python interpreter with the code which turns into a huge
wasteful package. Perhaps if there was a python-lite that was just a
python installer that installs Python from the web that would be a
compromise, but personally I’d prefer a README file with a link to
I do think that compiling to micro:bit /codebug is a little different as
that is coding for a very specific platform which has to be compiled and
obviously that fits in with the educational aim.
>> “I would like to see a more ambitious IDE developed.”
I would also like to see a more ambitious IDE for Python, but I don’t
think that would meet the aims of this list which is focussed on making
it easier for those new to programming. Something that goes beyond what
IDLE does but not as complex as Eclipse would be great for those looking
to progress upwards from the kids editor, and useful for professional
programmers, but beyond the scope of this group.
>> “Really sorry if I have offended anyone. (I know some people have
>> already put in a lot of work.)”
I’ve not been involved in the development work, but I don’t think your
email should have offended anyone. I do think you raise some good
points, I think there are many that would prefer a more advanced editor.
Personally I think that the current suggestions are good and have a
realistic chance of being implemented within a reasonable time.
>> “I think my problem comes down to this: Is this group going to be
>> focussed on producing only what can be done by a group of enthusiastic
>> but time-limited enthusiasts or is it able to, within a year say,
>> create something that is as professionally produced for students as
>> the many commercial tools available to developers?”
I don’t think it’s about commercial funding vs volunteer effort. There
are a huge number of open source projects that have never had any
commercial funding, but are every bit as professional as commercial
software. Many of the tools I use for development are based upon open
source non-commercial software.
Thank you for joining the mailing list for the PSF Education Working Group
Python in education is a topic close to many of our hearts and this working
group has been formed to make things happen in a number of ways:
We're a meeting point for people who want to make practical
contributions to Python in education.
We identify and coordinate projects that deliver specific and measurable
results that support our aims.
We support and facilitate such projects so they have the best chance of
meeting their goals.
In particular we will be focusing on:
Education friendly editor (IDLE)
An educational Python bundle available across platforms
Lessons and resources
A way to communicate, coordinate, and facilitate the educational events
that are happening around the world.
I’ll be sending out emails to start discussion on the first two topics
shortly. Please do ensure that you take a look at the working group charter
here <https://wiki.python.org/psf/PythonEduWGCharter>so that in the not too
distant future, we can start a discussion around governance. We need to
elect a chair and co-chair to provide reports to the PSF board. I’m happy
to fill this role in the interim period.
Finally a polite reminder that this is a group for making things happen.
Long off-topic discussions will be bumped, in some cases to the education
sig where they can continue.
Carrie Anne Philbin
I don't think we should assign age to this project. I think learners at
whatever age have problems with accessing IDEs.
On Mon, Sep 21, 2015 at 3:50 PM, Floyd, Steven <sfloyd(a)office.ldcsb.on.ca>
> Puppy looks very cool.
> Simple, clean.
> One click startup would be good too, instead of opening of a shell then
> clicking New File...Both windows should load right away.
> Add the user-friendly error messages mentioned by Alex Bradbury and I
> think it would be fantastic and useful for young learn
> Potential problems:
> -who is the editor for, will it be all things for all people? Should we
> identify a target group (age 8-14, beginner programmers, perhaps?)
> Cool project.
> Glad to be on this list.
> *From:* Pythonedu-wg <pythonedu-wg-bounces+sfloyd=
> office.ldcsb.on.ca(a)python.org> on behalf of Bob Irving <bobirv(a)gmail.com>
> *Sent:* September 21, 2015 10:11 AM
> *To:* Carrie Anne Philbin
> *Cc:* pythonedu-wg(a)python.org
> *Subject:* Re: [Pythonedu-wg] A new, kid-friendly Python editor
> This is really exciting!
> I'm a teacher in the US, just starting this year with Python in different
> iterations (MinecraftPi, Pygame). I'm not a developer so making the editor
> is beyond me. But I definitely have some thoughts on what would and
> wouldn't work for the students I'm teaching (ages 13-15).
> Bob Irving
> Porter-Gaud School
> Charleston, SC
> On Mon, Sep 21, 2015 at 9:15 AM, Carrie Anne Philbin <
> carrieanne(a)raspberrypi.org> wrote:
>> I would like to initiate work on building an education friendly python
>> editor to potentially replace IDLE and be part of an education bundle
>> available across multiple platforms (including relatively low-specced
>> systems such as the Raspberry Pi) through this work group.
>> To kick off, here’s a list of possible requirements. Please feel free to
>> comment and add to them:
>> *Absolutely must have*:
>> - Both windows open within one application (the shell window and text
>> editor window).
>> - Simple buttons to run code
>> - A way to change font sizes easily
>> - Syntax highlighting
>> *Highly desired*:
>> - Error reporting that highlights lines and gives a good level of
>> feedback to the user.
>> - REPL
>> - Projects
>> Since my talk around the development of a new text editor at Euro Python
>> <https://youtu.be/_gU7sfTrz4c> in July and Pycon Australia in August,
>> community members Ntoll (Nicholas Tollervey), Lord Mauve (Daniel Pope),
>> and others have begun work on an open source project called Puppy
>> <https://github.com/lordmauve/puppy>. Here is a video
>> <https://www.youtube.com/watch?v=PXfzfZzq1dc> of Puppy but I believe
>> that more has been added and/or removed since it was filmed. I think this
>> project could be what we are looking for and we would welcome the thoughts
>> of the wg.
>> Carrie Anne
>> Pythonedu-wg mailing list
> Twitter: @birv2
> IMPORTANT NOTICE: This e-mail message is intended to be received only by
> persons entitled to receive the confidential information and any
> attachments it may contain. E-mail messages from LDCSB may contain
> information that is confidential and legally privileged. Any unauthorized
> review, use, disclosure or distribution is prohibited. Please do not read,
> copy, forward, or store this message unless you are an intended recipient
> of it. The sender does not accept any responsibility for any loss,
> disruption or damage to your data or computer, mobile, information systems
> that may occur while using data contained in, or transmitted with, this
> email. If you have received this message in error, please contact the
> sender by reply email and destroy all copies of the original message from
> your computers, any mobile devices, and information systems.
Raspberry Pi Foundation
UK Charity No. 1129409