[Tutor] Recommended Resurce or strategy for beginning students

Mike Barnett mike_barnett at hotmail.com
Mon Feb 4 11:01:13 EST 2019


Be cautious when using IDLE with tkinter based programs (PySimpleGUI falls into this category).

IDLE is written using tkinter.  You can sometimes end up with tkinter complaining about the mainloop running in multiple locations or freeing resources in the wrong thread.


@mike<mailto:mike_barnett at hotmail.com>

From: Matthew Polack <matthew.polack at htlc.vic.edu.au>
Sent: Monday, February 4, 2019 12:15 AM
To: Sean Murphy <mhysnm1964 at gmail.com>
Cc: Mike Barnett <mike_barnett at hotmail.com>; tutor at python.org
Subject: Re: [Tutor] Recommended Resurce or strategy for beginning students

Hi All,

Firstly thanks so much for all the suggestions a while back re: recommended method for Python...really appreciate the ideas.

We had our first lesson today (With 15 year olds) where I started with the basic command line..and did a simple "Hello World" type program...just to show how something could be run straight from notepad and command line...

We then went to IDLE and made a simple 'Maths Calculator'....

All of this went quite well...but as the long session started to wind down (Is a double lesson on a Monday)...I did start to notice the following:

1.) One group of students (probably most)..actively problem solving..trying things...googling all sorts of ways of improving their code...figuring out new ways of doing things...will go a long way.
2.) Another smaller group started to hit the wall...and were struggling for internal drive...needed to be 'hand fed'

Is going to be interesting going forward how to both cater for the 'indpendent workers' whilst still keeping the 'unenthused unless entertained' group engaged! The joys of teaching...but will certainly try some of the suggestions mentioned...PySimpleGUI..Turtle graphics etc....they will be very helpful. Thanks.



Matthew Polack | Teacher



[Emailbanner3.png]


Trinity Drive  |  PO Box 822

Horsham Victoria 3402

p. 03 5382 2529   m. 0402456854

e. matthew.polack at htlc.vic.edu.au<mailto:matthew.polack at htlc.vic.edu.au>

w. www.htlc.vic.edu.au<https://nam05.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.htlc.vic.edu.au%2F&data=02%7C01%7C%7C5bac6b102d1b43f778c608d68a5fb081%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636848540919281041&sdata=wZPuSdzAKYKZ6PEFA3XoI5lu6yoWt9zY%2FChV6Tpl7xA%3D&reserved=0>



On Wed, Jan 23, 2019 at 1:21 PM Sean Murphy <mhysnm1964 at gmail.com<mailto:mhysnm1964 at gmail.com>> wrote:
I like this concept. The only additional information I would add in relation to any training or educational information. You must include accessibility. As the laws in many countries require this to be a part of the product. So it is a perfect time to educate students on this important topic. A high level awareness is required only.
Introducing the basics. Keyboard navigation, colour contrast, ensuring the GUI works with a screen reader. The platforms used for GUI should do most of the heavy lifting.

The other aspect is you need to ensure the course is accessible to possible disable students for now and the future. If you are based in the Usa. Then there could be legal requirements for this. Not sure. Out of my scope of focus in the accessibility world.


A bare minimum is to understand the bare basics which are called POUR. Reference W3C for the explaination.

Sean

My experience is the part

> On 23 Jan 2019, at 1:17 am, Mike Barnett <mike_barnett at hotmail.com<mailto:mike_barnett at hotmail.com>> wrote:
>
> I like the idea of starting out right away on a GUI.  I know this is completely backwards to what would normally be taught, but hear me out.  Kids today are used to GUI interfaces.  They're on their phones, their computers, their TV  sets.
>
> Why not teach kids to output to a window instead of a command line?  What if it's just was easy, or easier, to work with a GUI as it is the command line?
>
> To output to the command line in standard Python:
> print('my string', variable1, variable2)
>
> To output the same information to a window using PySimpleGUI:
> Popup('my string', variable1, variable2)
>
> Or, you can "print" to a debug window if that's your thing.
> Print('takes the same parameters as print')
>
> If the ultimate goal is to teach kids about how to design a GUI window, how to lay out a GUI using good user interface design principals, then it would be nice to get the GUI coding out of the way and let the focus instead be on the GUI itself.  This is when having a drag-and-drop Designer Tool is handy.  If not, then the next best thing is a simple programming interface.
>
> PySimpleGUI was designed so that the code visually matches the window layout.
>
> It's capable of duplicating pretty much any layout and widget combination that you can create coding directly to tkinter's (or Qt's or WxPython's) interfaces.  PySimpleGUI simply creates and executes the "boilerplate" code that is often brought up when GUIs are discussed.
>
> A goal was to remove all of the boilerplate code and provide a programmer with a simple, friendly and flexible set of APIs.  You write a single line of code per row of widgets in your window plus a 1/2 dozen lines to implement the event loop.
>
> I don't see the harm in approaching the problem from a different direction.  It could be wildly successful.  Or... not...  The worst that can happen is you screw up a classroom full of future programmers, creating a warped vision that GUIs can be fun and easy.
>
>
> @mike
>
> -----Original Message-----
> From: Matthew Polack <matthew.polack at htlc.vic.edu.au<mailto:matthew.polack at htlc.vic.edu.au>>
> Sent: Tuesday, January 22, 2019 1:58 AM
> To: tutor at python.org<mailto:tutor at python.org>
> Subject: [Tutor] Recommended Resurce or strategy for beginning students
>
> Hi All,
>
> In our growing school we're teaching Python programming for the first time as an elective subject with Year 9 and 10 students. (Had a dabble at this last year with 3 students in Year 11)
>
> I'm wondering what specific resource or stategy people would recommend for absolute beginners?
>
> ie. a course or program, book,...set of activities to follow that strategically introduces and develops key skills.
>
> At this age level I don't think we need to be achieving 'rocket science'..but rather giving the students a good solid introduction.
>
> Some of the leadership wanted me to use this programming in combination with building robots...I've even wondered whether this is trying to achieve too many things...and we're better off focused on programming itself... but am open to this idea too...
>
> I've had a play with using the excellent PySimpleGUI...which is an excellent resource for building a GUI...but I've realised before doing too much of this we might need to get a grip on core fundamentals....
>
> The challenge is trying to find a way to making this 'fun' for students whilst also having them genuinely learn rather than just 'copying pasting'
> code...achieving something that looks good...but not really understanding what they are doing.
>
> So far my strategy will be:
>
> 1.) Establish some core basics(utlising some form of 'course',,,which goes through basics of syntax..variables...loops etc. utilising just raw code...(probably a simple 'Adventure Game')
> 2.) Build some simple programs using PySimple GUi..eg. Some quiz games etc.
> (there are some great examples on Github by another teacher and also the author Mike of PySimpleGUI.
> 3.) Possibly explore robotics.
>
> Can anyone make any recommendations on either resources or teaching/learning strategy/curriculum.
>
> Thank you,
> Matt
>
>
> Matthew Polack | Teacher
>
>
> [image: Emailbanner3.png]
>
> Trinity Drive  |  PO Box 822
>
> Horsham Victoria 3402
>
> p. 03 5382 2529   m. 0402456854
>
> e. matthew.polack at htlc.vic.edu.au<mailto:matthew.polack at htlc.vic.edu.au>
>
> w. www.htlc.vic.edu.au<https://nam05.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.htlc.vic.edu.au&data=02%7C01%7C%7C5bac6b102d1b43f778c608d68a5fb081%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636848540919291064&sdata=XT3ugym%2F3hDIFsUDUkvScU0DG6Fv%2BkNIfT0iN5B%2FSTY%3D&reserved=0>
>
> --
> **Disclaimer: *Whilst every attempt has been made to ensure that material contained in this email is free from computer viruses or other defects, the attached files are provided, and may only be used, on the basis that the user assumes all responsibility for use of the material transmitted. This email is intended only for the use of the individual or entity named above and may contain information that is confidential and privileged. If you are not the intended recipient, please note that any dissemination, distribution or copying of this email is strictly prohibited. If you have received this email in error, please notify us immediately by return email or telephone +61 3 5382 2529** and destroy the original message.*
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org<mailto:Tutor at python.org>
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor<https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.python.org%2Fmailman%2Flistinfo%2Ftutor&data=02%7C01%7C%7C5bac6b102d1b43f778c608d68a5fb081%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636848540919311080&sdata=ObE%2FwoXRr1%2FUFzob7ZyDKyVmen4JbcUrI9UN8hQfkes%3D&reserved=0>

Disclaimer: Whilst every attempt has been made to ensure that material contained in this email is free from computer viruses or other defects, the attached files are provided, and may only be used, on the basis that the user assumes all responsibility for use of the material transmitted. This email is intended only for the use of the individual or entity named above and may contain information that is confidential and privileged. If you are not the intended recipient, please note that any dissemination, distribution or copying of this email is strictly prohibited. If you have received this email in error, please notify us immediately by return email or telephone +61 3 5382 2529 and destroy the original message.


More information about the Tutor mailing list