From stewart at penguintutor.com Tue May 10 11:35:08 2016 From: stewart at penguintutor.com (Stewart Watkiss) Date: Tue, 10 May 2016 16:35:08 +0100 Subject: [Pythonedu-wg] The installation and deployment experience Message-ID: <4ea7b69d81362bdf974231a94a04ab15@penguintutor.com> Hi All, This list has been quiet of late, which is quite understandable with all the new things Python and Education related that have been going on. For example MicroPython on the micro:bit (well done to all involved!). For my part I've been writing a book "Learn Electronics with Raspberry Pi". It's due to be released in about a month and includes quite a bit of Python :-) Now I've got most of my book out of the way I've got a bit more time so I'm keen to get the discussion moving on how we can simplify the installation / deployment experience for Python in the classroom (and at home). I've been thinking about this some more, thinking about the issues (or at least what I perceive them to be) and looking at what options are available. I think that the initial idea is to have a list of packages that can be pre-installed ready for pupils to use is still a good idea, but I also think we need a way that these can be updated, or that users can install other packages as appropriate. One reason for this is that there is good work on some modules that could greatly help when teaching programming. If these modules are being actively developed then it may mean updating these. For example I'm thinking of Pygame Zero, which is still in its early stages. It provides an easy way to get started with graphical applications, but I expect will include new features in the future. Updating the initial install of Python on a school computer may need involvement from the computer administrators which can be an issue. Perhaps pyenv provides a potential solution allowing students to install additional modules. As this feature is already included in the recent version of Python then perhaps we just need documentation for the teachers and/or students that will allow them to make use of these features. This won't necessarily help with using Python on a computer without an Internet connection, so perhaps we need this in addition to the pre-installed modules. This is so far mostly my own thoughts from my (fairly limited) experience helping with after school clubs. So I think the first thing is to understand what the problem is and also if anyone else knows of other ways that this could be addressed. * Does anyone have any thoughts they'd like to share on what the issues are? * Do you think I'm thinking along the right lines or not? My own experience of Python is as someone that has quite a bit of experience programming in Python, but always on a computer that I've been administrator for and mainly on Linux. I normally just install any modules I need and don?t have any experience of the internals of the Python interpreter or PIP. So: * If anyone has other suggestions based on their experience then please share them too. Regards Stewart -----Original Message----- From: Pythonedu-wg [mailto:pythonedu-wg-bounces+swatkiss=emea.att.com at python.org] On Behalf Of Stewart Watkiss Sent: 06 January 2016 09:51 To: pythonedu-wg at python.org Subject: Re: [Pythonedu-wg] The installation and deployment experience Hi Caleb, Welcome to the list. We did have some discussions in September & October last year. The main discussion was about the editor which I understand is work in progress. This is the contribution I added previously on the installation / deployment. I'm very happy to contribute to this discussion and towards any implementation plans. I am going to be very busy the first few months of 2016, although that won't stop me joining in the discussion. -- Previous email from 28 Sept 2015 -- > 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 arguably 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 Python. 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 additional 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. **Windows** It is harder to install python modules (and software in general) on Windows as it may be necessary 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 administrator 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. **Mac OSX** 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. From: Pythonedu-wg [mailto:pythonedu-wg-bounces+swatkiss=emea.att.com at python.org] On Behalf Of Caleb Hattingh Sent: 06 January 2016 03:57 To: pythonedu-wg at python.org Subject: [Pythonedu-wg] The installation and deployment experience Hi everyone I joined this WG only yesterday. I'd like to help, if possible, with the installation and deployment experience. - "Installation": whatever needs to happen for a learner to be able to write code on their device - "Deployment": whatever needs to happen for a learner to give their creation to a friend so that the friend can use it on their device. Is there any other prior, online discussion on these two points that I could use to catch up on what's already been discussed? I've already seen the google doc that Carrie Anne set up, for "Python Education Bundle", here: https://docs.google.com/document/d/1XZS-piBFsoKbZwnoZZZbmypxMXhz4U0pa0NCZFphvvk/edit?usp=sharing rgds Caleb From ntoll at ntoll.org Tue May 10 12:10:02 2016 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Tue, 10 May 2016 17:10:02 +0100 Subject: [Pythonedu-wg] The installation and deployment experience In-Reply-To: <4ea7b69d81362bdf974231a94a04ab15@penguintutor.com> References: <4ea7b69d81362bdf974231a94a04ab15@penguintutor.com> Message-ID: Hi Stewart! Comments in-line... ;-) On 10/05/16 16:35, Stewart Watkiss wrote: > Hi All, > > This list has been quiet of late, which is quite understandable with all > the new things Python and Education related that have been going on. For > example MicroPython on the micro:bit (well done to all involved!). For > my part I've been writing a book "Learn Electronics with Raspberry Pi". > It's due to be released in about a month and includes quite a bit of > Python :-) > Congratulations. At what age/experience level is the booked aimed. For example, could I let my Sam (11yo, now with his own shed) loose with it..? ;-) > Now I've got most of my book out of the way I've got a bit more time so > I'm keen to get the discussion moving on how we can simplify the > installation / deployment experience for Python in the classroom (and at > home). > This is a very important topic, not least because it's not just isolated to installing Python. In my experience, installing ANYTHING is a royal PIA in the classroom. Especially if the equipment is controlled / sub-contracted out to ATOS, CAPITA and their ilk. Put simply, it appears to be a bit of a "racket" where installing *anything* requires inordinate investment of time and effort into an expensive and slow moving process. My hunch is some guerilla type action is required. (It's why we ensure Mu is a stand-alone executable, so you just have to drag and drop it). > I've been thinking about this some more, thinking about the issues (or > at least what I perceive them to be) and looking at what options are > available. > No matter what the options could or should be, the rather large elephant in the room is the "racket" described above. > I think that the initial idea is to have a list of packages that can be > pre-installed ready for pupils to use is still a good idea, but I also > think we need a way that these can be updated, or that users can install > other packages as appropriate. One reason for this is that there is good > work on some modules that could greatly help when teaching programming. > If these modules are being actively developed then it may mean updating > these. For example I'm thinking of Pygame Zero, which is still in its > early stages. It provides an easy way to get started with graphical > applications, but I expect will include new features in the future. > Other FooBarZero packages are in the works and exactly the same argument applies to them too. > Updating the initial install of Python on a school computer may need > involvement from the computer administrators which can be an issue. Bingo. > Perhaps pyenv provides a potential solution allowing students to install > additional modules. As this feature is already included in the recent > version of Python then perhaps we just need documentation for the > teachers and/or students that will allow them to make use of these > features. > This won't necessarily help with using Python on a computer without an > Internet connection, so perhaps we need this in addition to the > pre-installed modules. > I'm more concerned with the rather shonky way in which computers are configured at schools. Many are virtualised thin clients and I'm not sure how effective yet another environment would be. > This is so far mostly my own thoughts from my (fairly limited) > experience helping with after school clubs. So I think the first thing > is to understand what the problem is and also if anyone else knows of > other ways that this could be addressed. > > * Does anyone have any thoughts they'd like to share on what the issues > are? > * Do you think I'm thinking along the right lines or not? > Absolutely you're thinking along the right lines... keep it up! I think much of the problem is a hearts-and-minds issue though. Many teachers simply don't have the knowledge to see that shonky sub-contracted set-up is sub-standard and a terrible pedagogical platform. > My own experience of Python is as someone that has quite a bit of > experience programming in Python, but always on a computer that I've > been administrator for and mainly on Linux. I normally just install any > modules I need and don?t have any experience of the internals of the > Python interpreter or PIP. So: > > * If anyone has other suggestions based on their experience then please > share them too. > Make it as simple as possible for installation and updates to happen. That'll mean pre-packaged, certified and checked installers for all sorts of weird and wacky Windows environments. N. > Regards > Stewart > > > -----Original Message----- > From: Pythonedu-wg > [mailto:pythonedu-wg-bounces+swatkiss=emea.att.com at python.org] On Behalf > Of Stewart Watkiss > Sent: 06 January 2016 09:51 > To: pythonedu-wg at python.org > Subject: Re: [Pythonedu-wg] The installation and deployment experience > > Hi Caleb, > > Welcome to the list. > > We did have some discussions in September & October last year. The main > discussion was about the editor which I understand is work in progress. > > This is the contribution I added previously on the installation / > deployment. I'm very happy to contribute to this discussion and towards > any implementation plans. I am going to be very busy the first few > months of 2016, although that won't stop me joining in the discussion. > > -- Previous email from 28 Sept 2015 -- > >> 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 arguably 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 Python. > > 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 additional 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. > > > **Windows** > > It is harder to install python modules (and software in general) on > Windows as it may be necessary 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 administrator 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. > > **Mac OSX** > > 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. > > > > > > From: Pythonedu-wg > [mailto:pythonedu-wg-bounces+swatkiss=emea.att.com at python.org] On Behalf > Of Caleb Hattingh > Sent: 06 January 2016 03:57 > To: pythonedu-wg at python.org > Subject: [Pythonedu-wg] The installation and deployment experience > > Hi everyone > > I joined this WG only yesterday. I'd like to help, if possible, with the > installation and deployment experience. > > - "Installation": whatever needs to happen for a learner to be able to > write code on their device > - "Deployment": whatever needs to happen for a learner to give their > creation to a friend so that the friend can use it on their device. > > Is there any other prior, online discussion on these two points that I > could use to catch up on what's already been discussed? I've already > seen the google doc that Carrie Anne set up, for "Python Education > Bundle", here: > > https://docs.google.com/document/d/1XZS-piBFsoKbZwnoZZZbmypxMXhz4U0pa0NCZFphvvk/edit?usp=sharing > > > rgds > Caleb > > > _______________________________________________ > Pythonedu-wg mailing list > Pythonedu-wg at python.org > https://mail.python.org/mailman/listinfo/pythonedu-wg -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 473 bytes Desc: OpenPGP digital signature URL: From stewart at penguintutor.com Tue May 10 18:22:45 2016 From: stewart at penguintutor.com (Stewart Watkiss) Date: Tue, 10 May 2016 23:22:45 +0100 Subject: [Pythonedu-wg] Fwd: The installation and deployment experience In-Reply-To: <57325E6F.3040106@penguintutor.com> References: <57325E6F.3040106@penguintutor.com> Message-ID: <57325F35.5080501@penguintutor.com> Hi Nicholas, I've added more comments in-line. > On 10/05/16 16:35, Stewart Watkiss wrote: > > Hi All, > > > > This list has been quiet of late, which is quite understandable with all > > the new things Python and Education related that have been going on. For > > example MicroPython on the micro:bit (well done to all involved!). For > > my part I've been writing a book "Learn Electronics with Raspberry Pi". > > It's due to be released in about a month and includes quite a bit of > > Python :-) > > > > Congratulations. At what age/experience level is the booked aimed. For > example, could I let my Sam (11yo, now with his own shed) loose with > it..? ;-) It's aimed at older children to young adults designed for beginners in both electronics and programming focussed more on the electronics side. Most of the projects are designed for breadboards - with soldering etc left for the last few chapters. Some of the components sometimes need a little soldering - eg. Breadboard NeoPixels need the breadboard pins to be soldered on :-( . One chapter uses Scratch GPIO (includes a project I ran with a Code Club of 8 to 9 year olds) and the rest is all Python. You can read the blurb here: http://www.apress.com/9781484218976?gtmf=s I'm sure Sam would be fine with it. I'm not sure what the rules are from my publisher (Apress), but I'm sure I should be able to send you a preview chapter or two when I get the proof back. > > Now I've got most of my book out of the way I've got a bit more time so > > I'm keen to get the discussion moving on how we can simplify the > > installation / deployment experience for Python in the classroom (and at > > home). > > > > This is a very important topic, not least because it's not just isolated > to installing Python. In my experience, installing ANYTHING is a royal > PIA in the classroom. Especially if the equipment is controlled / > sub-contracted out to ATOS, CAPITA and their ilk. The schools I've been in tend to use the LEA arrangements where there are a pool of technicians that the school has access to for 1 afternoon a week (if they are lucky). I know of some schools that have gone down the sub-contracted route, but not actually worked with them directly. > > Put simply, it appears to be a bit of a "racket" where installing > *anything* requires inordinate investment of time and effort into an > expensive and slow moving process. > > My hunch is some guerilla type action is required. > > (It's why we ensure Mu is a stand-alone executable, so you just have to > drag and drop it). Which works well for standalone apps, but not so good for the fully Python interpreter and all the modules. > > I've been thinking about this some more, thinking about the issues (or > > at least what I perceive them to be) and looking at what options are > > available. > > > > No matter what the options could or should be, the rather large elephant > in the room is the "racket" described above. > > > I think that the initial idea is to have a list of packages that can be > > pre-installed ready for pupils to use is still a good idea, but I also > > think we need a way that these can be updated, or that users can install > > other packages as appropriate. One reason for this is that there is good > > work on some modules that could greatly help when teaching programming. > > If these modules are being actively developed then it may mean updating > > these. For example I'm thinking of Pygame Zero, which is still in its > > early stages. It provides an easy way to get started with graphical > > applications, but I expect will include new features in the future. > > > > Other FooBarZero packages are in the works and exactly the same argument > applies to them too. Absolutely. I used Pygame Zero as an example as that's something I've used myself, but there are many others. Computing moves on so fast compared to many other subjects and so whatever is installed today could be out-of-date in a few months. I've experienced a similar thing in the past where I created some (PHP) code to run on a website to then find it didn't work on my hosted website because the server had a different version of PHP installed. In schools the problem can be even bigger with some computers still running Windows XP. I can only imagine the frustration of kids following a guide from a magazine where the program won't run because the system hasn't been updated for several years. > > Updating the initial install of Python on a school computer may need > > involvement from the computer administrators which can be an issue. > > Bingo. > > > Perhaps pyenv provides a potential solution allowing students to install > > additional modules. As this feature is already included in the recent > > version of Python then perhaps we just need documentation for the > > teachers and/or students that will allow them to make use of these > > features. > > This won't necessarily help with using Python on a computer without an > > Internet connection, so perhaps we need this in addition to the > > pre-installed modules. > > > > I'm more concerned with the rather shonky way in which computers are > configured at schools. Many are virtualised thin clients and I'm not > sure how effective yet another environment would be. I had thought about thin clients, the ones I've seen where desktop PCs running Windows, although even the head of IT had no admin authority so was unable to install themselves. > > > This is so far mostly my own thoughts from my (fairly limited) > > experience helping with after school clubs. So I think the first thing > > is to understand what the problem is and also if anyone else knows of > > other ways that this could be addressed. > > > > * Does anyone have any thoughts they'd like to share on what the issues > > are? > > * Do you think I'm thinking along the right lines or not? > > > > Absolutely you're thinking along the right lines... keep it up! > > I think much of the problem is a hearts-and-minds issue though. Many > teachers simply don't have the knowledge to see that shonky > sub-contracted set-up is sub-standard and a terrible pedagogical platform. That's something I've been thinking as well. Even where the teachers know some programming it's unlikely they know enough about the way the OS is setup to articulate to the admin how it should be setup. > > My own experience of Python is as someone that has quite a bit of > > experience programming in Python, but always on a computer that I've > > been administrator for and mainly on Linux. I normally just install any > > modules I need and don?t have any experience of the internals of the > > Python interpreter or PIP. So: > > > > * If anyone has other suggestions based on their experience then please > > share them too. > > > > Make it as simple as possible for installation and updates to happen. > That'll mean pre-packaged, certified and checked installers for all > sorts of weird and wacky Windows environments. Are you saying that the modules should be identified and included in the install of Python, or as recommended package to install after Python is installed? That was certainly my initial thought having a "Python Education Installer" that is installed after Python is, but it's also getting the ongoing updates installed that would be an issue - hence the reason I was thinking of removing some of the dependence on the sys admin. That's why I was thinking of using the standard install, but having a way for modules to be easily downloaded and stored in the user's home directory structure. It sounds like it may not be quite that straight forward :-( Stewart From laura.dixon at computingatschool.org.uk Wed May 11 15:46:23 2016 From: laura.dixon at computingatschool.org.uk (Laura Dixon) Date: Wed, 11 May 2016 20:46:23 +0100 Subject: [Pythonedu-wg] Installation and deployment experience Message-ID: Hello, (Long time digest lurker - I'm a teacher!) Your emails prompted me to remember a blog post I wrote a while back whilst trying to install Pygame, but which I had not yet published (it is here http://wp.me/p24vku-ed ). No disrespect intended if anyone is involved with Pygame - I really *want* to use it, I just ran out of patience. I completely agree with what you've said about being able to install things easily and quickly. However I don't agree with this bit: "I think much of the problem is a hearts-and-minds issue though. Many teachers simply don't have the knowledge to see that shonky sub-contracted set-up is sub-standard and a terrible pedagogical platform." Most teachers have absolutely no choice about how their network is configured :( Whether they know or don't know anything is irrelevant, because it's something they have no say in whatsoever. If you're going to go after anyone's hearts and minds it needs to be management as they are the ones who make the decisions. Hope to lurk a bit more and reply soon! :) Laura -------------- next part -------------- An HTML attachment was scrubbed... URL: From ntoll at ntoll.org Thu May 12 06:15:19 2016 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Thu, 12 May 2016 11:15:19 +0100 Subject: [Pythonedu-wg] Installation and deployment experience In-Reply-To: References: Message-ID: On 11/05/16 20:46, Laura Dixon wrote: > I completely agree with what you've said about being able to install > things easily and quickly. However I don't agree with this bit: > > "I think much of the problem is a hearts-and-minds issue though. > Many teachers simply don't have the knowledge to see that > shonky sub-contracted set-up is sub-standard and a terrible pedagogical > platform." > > Most teachers have absolutely no choice about how their network is > configured :( Whether they know or don't know anything is irrelevant, > because it's something they have no say in whatsoever. If you're going > to go after anyone's hearts and minds it needs to be management as they > are the ones who make the decisions. > Hi Laura, That's exactly what I meant. Unfortunately, I lumped "teachers" together - I should have clarified that I meant "teachers who manage the decisions about IT provision" (usually the SMT). ;-) Thanks for forcing the clarification..! Also, please don't just lurk, it's good to hear contributions from "real teachers" (tm). All the best, N. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 473 bytes Desc: OpenPGP digital signature URL: From stewart at penguintutor.com Thu May 12 16:52:56 2016 From: stewart at penguintutor.com (Stewart Watkiss) Date: Thu, 12 May 2016 21:52:56 +0100 Subject: [Pythonedu-wg] Installation and deployment experience In-Reply-To: <9BA438DC7448684F8E0439B1D18C1477ADAE7F01@gbcdcmbx02.intl.att.com> References: <9BA438DC7448684F8E0439B1D18C1477ADAE7F01@gbcdcmbx02.intl.att.com> Message-ID: <5734ED28.6090406@penguintutor.com> Hi Laura, It's great to hear from a teacher on this forum, my view of the classroom is based on a very limited exposure through my volunteer role so it's good to get a different view. Agree with your point. I think a real problems is the amount of restrictions put in place on computers which make it very difficult to install new software / programming libraries onto the computers. Effectively you have a tool (the Windows computers) configured for using office tools that is then being used for teaching computing. It's like trying to teach woodwork without having a saw because they are too dangerous :-( In the ideal world then when it comes to programming it would be nice for pupils to have their own dedicated computer or a virtual machine which would allow them administrator permission to install libraries as required (kind of how I can have admin access to a machine at my University in Atlanta but studying from the UK). In the real world I don't think this is practical (due to cost and infrastructure), but even without that there are ways that the computer environment can be setup that works better than others. With regard to your blog post then I think some of that is what we are hoping to find a solution for. In particular the idea that you shouldn't have to manually install some of the libraries required, they should be a bundle or a simple install process that would make this all transparent to the teachers. Your blog refers to PyGame which is quite frustrating, short answer is that is one of the things we are hoping to fix - long answer read on ... I don't think that Pygame deliberately ignores Windows users. It's install process on Linux isn't particularly straight forward and in many cases no easier than the Windows install. The library is pre-installed on the Raspberry Pi which does make it easy, but that's because someone has already done the work in packaging it up and because the way that it is bundled with the image that the foundation puts together. Regarding the documentation then what you see is quite common for libraries designed for programmers. The documentation is sometimes written for more experienced programmers and is not really designed for teaching children programming. You can see a similar thing when looking at libraries for other programming languages. Often you are better to look for specific educational documentation rather than the library description. If you are interested in pygame then I suggest you look at the online ebook at: http://inventwithpython.com/pygame/ - however there's now a simpler graphics library which is easier to use Pygame Zero. Pygame Zero is much easier to program in and it's document is much easier to follow. It does provide installation instructions at: http://pygame-zero.readthedocs.io/en/latest/installation.html . The bad news is that it first needs pygame to be installed, but as long as you have Python 3.4 then it's as simple as following the link provided in the install guide and installing the latest windows install file. There are also versions of Pygame for earlier versions of Python, but it's not so easy if you have a new version of Python (eg. 3.5) After installing pygame to install pygame zero on a computer you have administration permissions to it's simply a case of running pip install pgzero from the Windows command prompt (assuming Python is already installed and in your path). There is a beginners guide at https://pygame-zero.readthedocs.io/en/latest/introduction.html which is better than the pygame one. Pygame zero is still under development and there isn't much documentation beyond the link above, but what I've seen of it so far it makes graphical programming much easier for beginners. Over time it will hopefully become more popular and have more sources of documentation. Unfortunately this still leaves you with the difficulty of getting it installed onto the school computers, and that is something we would very much like to fix and is the reason I revived this thread. The one thing we've worked out so far is that this is not a trivial thing and it's not so much the fault of Python or the libraries that have been created (although there is some element in that) but in the ways that school computers are configured and administered. In summary we feel your pain and that example is exactly what we would like to help with. It doesn't sound like it will be a quick fix that can suddenly be applied to all computer in schools, but we do hope to find a solution that will help make this easier. Stewart *From:*Pythonedu-wg [mailto:pythonedu-wg-bounces+swatkiss=emea.att.com at python.org] *On Behalf Of *Laura Dixon *Sent:* 11 May 2016 20:46 *To:* pythonedu-wg at python.org *Subject:* [Pythonedu-wg] Installation and deployment experience Hello, (Long time digest lurker - I'm a teacher!) Your emails prompted me to remember a blog post I wrote a while back whilst trying to install Pygame, but which I had not yet published (it is here http://wp.me/p24vku-ed ). No disrespect intended if anyone is involved with Pygame - I really *want* to use it, I just ran out of patience. I completely agree with what you've said about being able to install things easily and quickly. However I don't agree with this bit: "I think much of the problem is a hearts-and-minds issue though. Many teachers simply don't have the knowledge to see that shonky sub-contracted set-up is sub-standard and a terrible pedagogical platform." Most teachers have absolutely no choice about how their network is configured :( Whether they know or don't know anything is irrelevant, because it's something they have no say in whatsoever. If you're going to go after anyone's hearts and minds it needs to be management as they are the ones who make the decisions. Hope to lurk a bit more and reply soon! :) Laura -- Stewart Watkiss @stewartwatkiss @penguintutor http://www.penguintutor.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From stewart at penguintutor.com Wed May 18 05:52:17 2016 From: stewart at penguintutor.com (Stewart Watkiss) Date: Wed, 18 May 2016 10:52:17 +0100 Subject: [Pythonedu-wg] The installation and deployment experience Message-ID: <66c0646ffcecb4e9d14601643f892256@penguintutor.com> > That'll mean pre-packaged, certified and checked installers for all > sorts of weird and wacky Windows environments. So sounds like the simplest way in terms of getting the packages installed is to have a single Windows install package (msi) that can be handed to the appropriate IT administrators for them to install. By weird and wacky - I'm guessing that we need to take account of the following: * Different versions of python * Different versions of Windows * Different architectures (32bit vs 64bit) * Different python install directories * Any other things that could complicate this? The problem then comes with helping the teacher / IT administrator choose the right package. For example one of the issues with installing Pygame is that the website lists 8 different installers which only go up to Python 3.2. Bitbucket has 10 different installers (+10 zip files) which go up to python 3.4 (but not 3.5 which is the latest Python release for Windows). Potentially there could be a huge number of packages which could be confusing. The following may help make this a little easier: * Restrict the versions of Python that are supported. I think it makes sense to only use Python 3.x for the "official" education install. Or perhaps even be more specific and recommend only specific versions of Python for use in education (perhaps current and 1 previous version - eg. 3.5 and 3.4)? * Or perhaps have the installer look for different versions and install accordingly (not sure how easy this is to implement, assuming sticking with version 3 then I expect it's more about installing into the right folders than having multiple versions of the modules). I don't actually have any experience with creating Windows install files, but it doesn't look it should be too difficult - famous last words :-). I've installed Visual Studio, so I'm going to take a look at that myself - although if anyone already has any guides / best practices / suggestions then please let me know. So the next thing would be to decide what packages we would include - I'll leave this discussion to run first. This is just my thoughts - please let me know if you think there is a better way or if you have any suggestions. Stewart From ntoll at ntoll.org Wed May 18 06:22:35 2016 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Wed, 18 May 2016 11:22:35 +0100 Subject: [Pythonedu-wg] The installation and deployment experience In-Reply-To: <66c0646ffcecb4e9d14601643f892256@penguintutor.com> References: <66c0646ffcecb4e9d14601643f892256@penguintutor.com> Message-ID: Given that Python is packaged for (all the weird and wacky versions of) Windows, there must be some expertise within the community for how to do this. I wonder if Tim Golden is on this list... Tim? Are you there (two taps for "yes", one tap for "no"). ;-) (Tim is an extraordinarily talented Python core developer, all round good egg and active Windows user - he's bound to know who to reach out to). N. On 18/05/16 10:52, Stewart Watkiss wrote: > >> That'll mean pre-packaged, certified and checked installers for all >> sorts of weird and wacky Windows environments. > > So sounds like the simplest way in terms of getting the packages > installed is to have a single Windows install package (msi) that can be > handed to the appropriate IT administrators for them to install. > > By weird and wacky - I'm guessing that we need to take account of the > following: > * Different versions of python > * Different versions of Windows > * Different architectures (32bit vs 64bit) > * Different python install directories > * Any other things that could complicate this? > > The problem then comes with helping the teacher / IT administrator > choose the right package. For example one of the issues with installing > Pygame is that the website lists 8 different installers which only go up > to Python 3.2. Bitbucket has 10 different installers (+10 zip files) > which go up to python 3.4 (but not 3.5 which is the latest Python > release for Windows). Potentially there could be a huge number of > packages which could be confusing. > > The following may help make this a little easier: > > * Restrict the versions of Python that are supported. I think it makes > sense to only use Python 3.x for the "official" education install. Or > perhaps even be more specific and recommend only specific versions of > Python for use in education (perhaps current and 1 previous version - > eg. 3.5 and 3.4)? > * Or perhaps have the installer look for different versions and install > accordingly (not sure how easy this is to implement, assuming sticking > with version 3 then I expect it's more about installing into the right > folders than having multiple versions of the modules). > > I don't actually have any experience with creating Windows install > files, but it doesn't look it should be too difficult - famous last > words :-). I've installed Visual Studio, so I'm going to take a look at > that myself - although if anyone already has any guides / best practices > / suggestions then please let me know. So the next thing would be to > decide what packages we would include - I'll leave this discussion to > run first. > > This is just my thoughts - please let me know if you think there is a > better way or if you have any suggestions. > > Stewart > > > > > > _______________________________________________ > Pythonedu-wg mailing list > Pythonedu-wg at python.org > https://mail.python.org/mailman/listinfo/pythonedu-wg -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 473 bytes Desc: OpenPGP digital signature URL: From caleb.hattingh at gmail.com Wed May 18 18:28:27 2016 From: caleb.hattingh at gmail.com (Caleb Hattingh) Date: Thu, 19 May 2016 08:28:27 +1000 Subject: [Pythonedu-wg] The installation and deployment experience In-Reply-To: References: <66c0646ffcecb4e9d14601643f892256@penguintutor.com> Message-ID: On 19 May 2016 at 00:01, Stewart Watkiss wrote: > Hi Caleb, > > Do you mean to send this just to me rather than to the PythonEdu list? > It's certainly a valid discussion for the list if you want to repost it > there. > Hi Stewart Oops! Yes, I meant to reply to the list. I should not do email late at night :) If people want to follow, hopefully it's not too confusing to have to first read the copied message below this one. > ...so that they can only run executables from the trusted folders, so they > would not be able to run an executable from their home / document folders. > This means involvement from support services is unavoidable regardless of the final solution. > If they could then it would require a full copy of the python interpreter > in every user's home folder which would not be ideal. > I disagree: I think this is exactly ideal. I set up my personal development this way on every platform, Windows, Linux and Mac. (Admittedly with Anaconda Python + Conda virtualization rather than WinPython, but the point stands). In particular, I make sure to never interfere with the "system" Python installation in any way. This is a best practice. Many people do this via virtualenv (using the system Python as the base), but I don't think teaching students virtualenv just for the purpose of getting a Python working is a good idea. Could you say why you regard this as non-ideal? > In terms of the installer then it's about trying to install into the > Python library folder which could be in program files or in it's own > folder. > Why though? Python can also be in its own folder inside the users home folder. If a user messes up the installation, recovery is as simple as deleting the Python folder and copying a fresh one in. > There should not be any need to add anything to the start menus. > Agree. > If we can get the official python package maintainers to create the > installers then that's going to be even better. > I'm extremely pessimistic about the core dev team doing anything more than what is currently provided at python.org. Everything that is currently being done is largely volunteer work and they already have too much of it. The other problem is even bigger: the core team are way too far from the problem domain, i.e., education environments, and the unique challenges that go with that. I'd much rather have educators drive requirements. And more importantly: WinPython already exists, and is already supported. Why would it not be used, even merely as a starting point? If a new bundled distribution was made, how would it be any different? > I restarted the thread recently hadn't really made any progress (as I said > previously there have been many valid reasons). > The problems are hard problems! What is interesting to me about edu as a domain, is that here you really can't expect your users to work around difficulties in your software. Python packaging and distribution is regarded by many (even experienced) developers as difficult; the reasons are the same as what we're now discussing, it's just that our threshold for what we now expect a user to deal with has lowered. > > > On 2016-05-18 12:01, Caleb Hattingh wrote: > > On 18 May 2016 at 19:52, Stewart Watkiss wrote: > >> >> That'll mean pre-packaged, certified and checked installers for all sorts >>> of weird and wacky Windows environments. >> >> >> So sounds like the simplest way in terms of getting the packages >> installed is to have a single Windows install package (msi) that can be >> handed to the appropriate IT administrators for them to install. > > > There is a distribution called Winpython (https://winpython.github.io/) > that is easily installable and doesn't require admin privileges. It can be > installed in "portable" mode, which is really just decompression, and you > can drag-and-drop the folder between computers, or pass around a memory > stick. The *best* thing about Winpython is that its package manager > installs pre-built binaries for libraries that require that, so you almost > never need a compiler available for most packages (it draws from the > Windows binary collection of modules that Christoph Gohlke has > energetically maintained for years and years). > > I see that now it has also started distributing a "Zero" version, which is > much smaller and seems to be a minimalist distribution for education: > > > https://github.com/winpython/winpython/blob/master/changelogs/WinPythonZero-3.4.4.2.md > > Do note, however, that it includes a *graphical* package installer so you > (or your students) can point-and-click install extra packages. This > project has a reasonably long history; it is unlikely that another effort > to produce a bundled, admin-rights-free, Python distro on Windows is going > to end up with a better result. > > There is a list of downloads (including the "Zero" builds) on the github > releases page here: > > https://github.com/winpython/winpython/releases > > >> I don't actually have any experience with creating Windows install files, >> but it doesn't look it should be too difficult - famous last words :-). > > > I have a fair bit of experience with InnoSetup: > > http://www.jrsoftware.org/isinfo.php > > It is quite a bit easier to create an installer than you might expect. > The problems come in dealing with the differences between different > versions of Windows, assuming your installer wants to integrate into the > "Program Files" and "Start Menu" structures in the correct way. This is > why bundles that don't need admin rights and can run from the "Documents" > folder are much easier. > > Finally: I haven't personally used Windows in a while, and it makes me > nervous to recommend things and ways of working that I don't use myself; I > have not used Python at all on Windows 10, for example. As Nicholas said, > it is probably a good idea to pay attention to what active Pythonistas on > Windows are doing. > > rgds > Caleb > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stewart at penguintutor.com Thu May 19 06:50:58 2016 From: stewart at penguintutor.com (Stewart Watkiss) Date: Thu, 19 May 2016 11:50:58 +0100 Subject: [Pythonedu-wg] FW: The installation and deployment experience In-Reply-To: <9BA438DC7448684F8E0439B1D18C1477ADAEE63D@gbcdcmbx02.intl.att.com> References: <66c0646ffcecb4e9d14601643f892256@penguintutor.com> <9BA438DC7448684F8E0439B1D18C1477ADAEE63D@gbcdcmbx02.intl.att.com> Message-ID: > Given that Python is packaged for (all the weird and wacky versions > of) Windows, there must be some expertise within the community for how > to do this. That'd be great if we can leverage some of the existing expertise, either in terms of guidance or if this could be incorporated into the existing process for creating Windows builds. I'm happy to help in whatever way I can whether that's in preparing packages / updating or helping with documentation but the learning curve would obviously be much easier if we can tap in on other people's experience. Also what is the process for deciding what "official" libraries are included in the Windows distribution? Could it be possible to include some of these in that. In particular I've always thought it would be useful to include Pygame in the main distribution. It's been around for quite some time and is quite popular. Perhaps there are political / practical / technical reasons why it is not. I'm suspecting that may be a difficult route which is why I hadn't really suggested it before. From stewart at penguintutor.com Thu May 19 07:36:00 2016 From: stewart at penguintutor.com (Stewart Watkiss) Date: Thu, 19 May 2016 12:36:00 +0100 Subject: [Pythonedu-wg] The installation and deployment experience In-Reply-To: References: <66c0646ffcecb4e9d14601643f892256@penguintutor.com> Message-ID: <898b9913ce3abfc8cc87d3f78392d6b3@penguintutor.com> >> ...so that they can only run executables from the trusted folders, so they would not be able to run an executable from their home / document folders. > > This means involvement from support services is unavoidable regardless of the final solution. This is why we are looking at a way to make it easier to provide a package that the administrators (support services) can install, so that it's a one-shot request to install a package then the students can use those libraries. Something like virtualenv should still be able to work as the executable remains in a trusted folder and it's just the libraries that remain in the users home folder, but having the libraries pre-installed would be easier than virtualenv. >> If they could then it would require a full copy of the python interpreter in every user's home folder which would not be ideal. > > I disagree: I think this is exactly ideal. I set up my personal development this way on every platform, Windows, Linux and Mac. (Admittedly with Anaconda Python + Conda virtualization rather than WinPython, but the point stands). In particular, I make sure to never interfere with the "system" Python installation in any way. This is a best practice. Many people do this via virtualenv (using the system Python as the base), but I don't think teaching students virtualenv just for the purpose of getting a Python working is a good idea. > > Could you say why you regard this as non-ideal? The same reasons that installing other applications into users home directories is not-ideal. Few people would consider installing an individual copy of an Office Suite or Web browser into each users home folder. Some of the reasons: * The need to install for each user * Duplicate copies of the python code to setup and maintain * Additional disk space * Removing the separation of executable and data * Being able to run executables from users document folders. There are perhaps certain circumstances where it may be advantages to install multiple versions of Python using home folders, but that should not be required for a standard programming class in a secondary school. > And more importantly: WinPython already exists, and is already supported. Why would it not be used, even merely as a starting point? If a new bundled distribution was made, how would it be any different? We are not looking to create a new python install, but to create a way of installing libraries specifically chosen as useful for teaching programming. > The problems are hard problems! What is interesting to me about edu as a domain, is that here you really can't expect your users to work around difficulties in your software. Python packaging and distribution is regarded by many (even experienced) developers as difficult; the reasons are the same as what we're now discussing, it's just that our threshold for what we now expect a user to deal with has lowered. Any packaging and distribution system has challenges in terms of ease of install, ease of adding new packages to the repository etc. I don't see Python being any different from some of the other systems. I think the likes of PIP work well if you have admin privileges and a network connection, but in our cases we cannot rely on either. One of the things that makes education more difficult is that the developer computers are managed by a different IT group from the developers (teachers and students) that are using them. Stewart -------------- next part -------------- An HTML attachment was scrubbed... URL: From caleb.hattingh at gmail.com Thu May 19 17:56:44 2016 From: caleb.hattingh at gmail.com (Caleb Hattingh) Date: Fri, 20 May 2016 07:56:44 +1000 Subject: [Pythonedu-wg] The installation and deployment experience In-Reply-To: <898b9913ce3abfc8cc87d3f78392d6b3@penguintutor.com> References: <66c0646ffcecb4e9d14601643f892256@penguintutor.com> <898b9913ce3abfc8cc87d3f78392d6b3@penguintutor.com> Message-ID: On 19 May 2016 at 21:36, Stewart Watkiss wrote: > > We are not looking to create a new python install, but to create a way of > installing libraries specifically chosen as useful for teaching programming. > Ok. This clearly defines the scope, which is helpful and will save time. rgds Caleb -------------- next part -------------- An HTML attachment was scrubbed... URL: From gi.soongchee at dhs.sg Sun May 29 12:29:46 2016 From: gi.soongchee at dhs.sg (Staff Gi Soong Chee) Date: Mon, 30 May 2016 00:29:46 +0800 Subject: [Pythonedu-wg] PyCon US 2016 Education Summit Message-ID: Request to join. Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: