[Edu-sig] when and why should kids learn Python?

David MacQuigg macquigg at ece.arizona.edu
Sun Oct 29 11:37:24 EDT 2017


'''

> I'm always in favor of learning at least a couple languages, even if #2 is
> mainly for contrast.  One's mastery of X improves when one has experience
> with ~X.  Learn Python and Ruby both?  But learn one to a higher level?
> Clojure?

'''
I agree with everything you are saying, but I would postpone the "language
comparison" to sometime *after* the first course, and then my ~X language
would not be Ruby (almost identical to Python), but something radically
different (Lisp) or something important to industry (Java).  The first
course should focus entirely on fundamentals - understanding what is a
function, what is an object, what do we mean by encapsulation, how do we
control scope, etc.

Perhaps my bias is due to my background (engineering and science), not CS.
I like a language that can 1) teach the fundamentals with minimum clutter,
2) provide a tool for non-CS majors that will be useful their entire
career, and 3) transition easily to Java, the main "industrial" language
for the foreseeable future.

Even as a non-CS major, I am curious about what other languages offer.
This could be taught most easily as short examples comparing some great
feature in language ~X to the equivalent in Python.  Coding.bat is a good
website for comparing Java to Python.

My big disappointment with Python was that graphics was not integrated more
smoothly into the package.  Engineering involves a lot of plotting, and
that should happen without extra effort.  The integration with C could also
be improved, for those applications where speed is important.

On Sat, Oct 28, 2017 at 3:15 PM, kirby urner <kirby.urner at gmail.com> wrote:

>
>
> On Sat, Oct 28, 2017 at 1:44 PM, David MacQuigg <macquigg at gmail.com>
> wrote:
>
> << ... >>
>
> I just hate to see what could have been a critical mass of users offering
>> an alternative to Java, a much better alternative as an introduction to CS,
>> losing that opportunity because there is no agreement on a simple
>> alternative.  Oh well, most students will end up with Java anyway, so maybe
>> learning with all those useless semicolons will make the transition easier.
>>
>>
>
> Thank you, yes, I share your view that Ruby feels more like Perl and
> markets itself versus Python with somewhat hollow slogans like "Ruby makes
> programmers feel happy" (it's all about how it "feels").
>
> AP CS seems stuck in the crufty past given a main rationale was to pick a
> language actually taught at the college level.  That used to be Java, but
> is now Python so much more so.
>
> https://www.quora.com/Why-does-AP-Computer-Science-A-
> teach-Java-and-not-Python
>
> I'm always in favor of learning at least a couple languages, even if #2 is
> mainly for contrast.  One's mastery of X improves when one has experience
> with ~X.  Learn Python and Ruby both?  But learn one to a higher level?
> Clojure?
>
> As this other thread points out, there's a new AP CS Principles course
> (CSP) which Code.org and others are tackling, in principle language
> agnostic.
>
> JavaScript is another contender as a first language, especially in light
> of all the recent revisions (making it seem more like Python :-D).
>
> https://computinged.wordpress.com/2014/08/03/python-is-the-
> most-popular-intro-language-but-what-about-csp/
>
> Since the posting above (2014) -- about how college intro courses don't
> use JavaScript as a first langauge --came at least Stanford's doing so:
>
> https://www.theregister.co.uk/2017/04/24/stanford_tests_
> javascript_in_place_of_java/
>
> I think Harvard's CS50 is a good example of how Python has replaced Java
> in terms of sharing the big picture.  I refer people to the lectures on
> Youtube, Week 8 in particular.
>
> https://youtu.be/5aP9Bl9hcqI
>
> Kirby
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20171029/0096fd27/attachment-0001.html>


More information about the Edu-sig mailing list