[Edu-sig] Recommendation for editor+console or IDE for teaching beginners

Andre Roberge andre.roberge at gmail.com
Wed Dec 10 20:37:08 CET 2014


Hi Roberto,

On Wed, Dec 10, 2014 at 2:14 PM, roberto <roberto03 at gmail.com> wrote:

> Why don't you try cloud.sagemath.com? or https://trinket.io/
>
> Someone else replied to me off-list and suggested trinket.io.  As far as
I know, trinket is based on Skulpt which is an imcomplete version of Python
2.

I really want to use Python 3 as much as possible; the proposed course for
beginner's is intended to be a stepping stone to further study.

My original post was already quite long, but I left off some important
details as to my true motivation for all this.

In Canada, we have a "College" system which is an alternative to going to
University after completing High School.  College programs will typically
be 1 to 3 years long and are used for "technical training", from dental
assistants to webmaster, from electrician to daycare workers, etc.   The
university where I work (Université Sainte-Anne, tiny university offering
programs in French) offers also a few "college level" streams.  Usually,
students are required to have completed high school before they are
admitted... but we can offer individual college-level courses on a
part-time basis to students that have not yet completed high school.

My end goal is to put together a one-year equivalent certificate in
computer programming, offered entirely at distance. The beginner's course
in Python would be used like a "qualifying" course: students that complete
it satisfactorily would be allowed to take the rest of the courses in the
program.  In addition, if they have been successful, they will likely be
more receptive to the idea that they will have to research things on their
own to get the rquired tools working on their computer without someone
holding their hand.   Also, many student will not have a strong knowledge
of English before they begin.  This first course would be an additional
motivation for them to pay better attention in their English classes, as I
wil introduce them to the English vocabulary and resources available on the
web.

Many of the other coruses would be short "modules" that would not fit in a
traditional semester-based teaching schedule.  What I tentatively plan to
cover (I've already prepared/planned for bits and pieces of some of this)
includes the following

-----------------
Introduction to programming using Python
===
html+css
using a bash console
Intro to git (either on github or bitbucket)
===
intro to javascript, jquery and qunit
simple html5 games
===
Web development using Python  (probably with flask)
Advanced Python programming   [probably using a combination of the Python
Cookbook, Python Module of the Week as the basis, with students doing small
projects.]
html5 games using a javascript framework (probably phaser)
===
Intro to Unity3d with C# to make 2D games
Intro to Unity3D with C# to make 3D games
====
Final "course": one of:
1. Using the IPython notebook, matplotlib and all that   (for students that
would like to study at university in STEM)
2. Major project, based on the student's interest
3. Learn a new programming language (say Scheme, C, Closure, Java, etc.)
through small projects agreed upon in advance.
----------------------

[notice the absence of any math course or traditional cs courses like
Algorithm 101]

The Unity3D part is something that I have not really done anything with yet
myself ... but it seems to me to be a good idea at this point, if only as a
recruitment tool ;-)
At one point I was thinking of doing something with Blender ... but realise
that it was not for me...

For the beginner's course using Python, I intend to have assignments for
students to hand in (via email); these assignments will make use of the
doctest module, and others based on the unittest module, to encourage good
programming practices.

To recap:
1. students start learning about programming on the web using Reeborg's
World (it's about time that I get to use it myself! ;-)
2. they learn how to use a programming environment easy to set up on their
own computer, using Python.

Using a purely web-based set of tools (say, if trinket were to support
Python 3) for the beginner's course might make the transition to the next
stage difficult.


Assuming they do well in the first course and are interested, then they
move on to first broaden the set of "tools" they can use (bash, git,
javascript, html, css) and then deepen their knowledge of programming while
following "good practices"  (such as using git or another similar tool of
their choice, include unit testing in their projects, etc.)

Some students, if they start early enough and take courses in the summer,
will be able to complete all of the above by the time they finish high
school. Quite often, high school students here complete most of their
requirements by February of their final year, having only one or two
courses left for their high school diploma during the February-June term.
Having learned about programming, they would then be able to make better
informed decisions as to whether or not take a "college-level" program
(offered by other institutions here) to become web programmers, or game
programmers, or what have you.  Alternatively, they may decide to pursue a
CS degree or a STEM degree, already knowing how to program in various
contexts.

+++++++++++++++++++++++++
So... it looks (from the replies so far) that IDLE + Python is probably the
easiest way to go for the intro course, and that pygame may be a challenge
to have set up properly using Python 3 on OSX.  (on Windows,
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame appears to be a good
resource)

(Vpython and VIDLE, mentioned by Jorge Garcia, do not appear to be
compatible with Python 3)
(Kirby seems to also like PyCharm; as for Eclipse ... I tried it in the
past and found it bloated and sluggish.)

Further suggestions/comments/corrections more than welcome.


André



> They both let your students work at a distance and collaborate with you.
> Hope this helps.
>
> On Wed, Dec 10, 2014 at 4:47 PM, Christian Mascher <
> christian.mascher at gmx.de> wrote:
>
>>
>> Hi Andre,
>>
>>
>>  I would really like some advice based on practical experience teaching
>>> beginners.
>>>
>>>
>> I personally would  stick with Idle. There was a time, when it was
>> problematic under MacOS  because tkinter was missing there - but those days
>> are over.
>>
>> As an all-platform, _already (battery-) included_ editor, Idle is simple
>> but pretty good. There is not much you have to explain which concerns the
>> ide.
>>
>> Most of the problems of beginners in Idle (and I always use idle in
>> class, apart from reeborg) are not very idle-specific (indentation, copy
>> and paste in console-mode, miximg tabs and spaces, saving, importing).
>>
>> You will have to explain the difference between programming at the prompt
>> or in a file, but you would have to explain similar things in other ide's
>> as well.
>>
>> If you want to keep it safe and simple, write programs with Idle only in
>> files (File->New File, and run them with F5). Most technical problems arise
>> when using the live-prompt (session-saving is useless).
>>
>> Some students used idle and pygame together some years ago with no
>> problems.
>>
>>
>>
>>
>>> 1. Use IDLE.  Free, part of the standard distribution.  I never used it
>>> very much myself and I keep reading about how tricky it can be to set up
>>> properly for beginners - mostly, I gathered, due to path problems on
>>> Windows.   There is a proposal to make it better (
>>> https://github.com/asweigart/idle-reimagined/wiki) but it is doubtful it
>>> will be realized soon enough (or at all) to make it worthwhile waiting
>>> for
>>> it.
>>>
>>>
>> I haven't encountered path problems with idle recently (about since the
>> introduction of Windows XP and python msi-installers ...)
>>
>> When Pygame is installed Python has got to find it, but that shouldn't be
>> a concern of Idle.
>>
>> Having to install only two things (check for the python dependency of the
>> pygame-version first!) would be my choice.
>>
>> Cheers,
>>
>> Christian
>> _______________________________________________
>> Edu-sig mailing list
>> Edu-sig at python.org
>> https://mail.python.org/mailman/listinfo/edu-sig
>>
>
>
>
> --
> Roberto
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> https://mail.python.org/mailman/listinfo/edu-sig
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20141210/08c85067/attachment.html>


More information about the Edu-sig mailing list