Do any of you recommend Python as a first programming language?

Discussion in 'Python' started by jmDesktop, Mar 22, 2008.

  1. jmDesktop

    jmDesktop Guest

    For students 9th - 12th grade, with at least Algebra I. Do you think
    Python is a good first programming language for someone with zero
    programming experience? Using Linux and Python for first exposure to
    programming languages and principles.

    Thank you.
    jmDesktop, Mar 22, 2008
    #1
    1. Advertising

  2. jmDesktop

    André Guest

    On Mar 22, 1:40 pm, jmDesktop <> wrote:
    > For students 9th - 12th grade, with at least Algebra I. Do you think
    > Python is a good first programming language for someone with zero
    > programming experience? Using Linux and Python for first exposure to
    > programming languages and principles.
    >
    > Thank you.

    Yes.

    You'll probably get 100 positive answers!

    Check out the edu-sig mailing list for discussions on the topic. And
    you may want to check out rur-ple.sourceforge.net, where "ple" stands
    for "Python Learning Environment".

    André
    André, Mar 22, 2008
    #2
    1. Advertising

  3. jmDesktop

    Jeff Schwab Guest

    jmDesktop wrote:
    > For students 9th - 12th grade, with at least Algebra I. Do you think
    > Python is a good first programming language for someone with zero
    > programming experience? Using Linux and Python for first exposure to
    > programming languages and principles.


    Linux and Python are a nearly ideal combination for this. Be aware that
    at some point, you will likely have to dig into C, the primary language
    used to implement both Linux and Python.
    Jeff Schwab, Mar 22, 2008
    #3
  4. jmDesktop <> writes:

    > For students 9th - 12th grade, with at least Algebra I. Do you think
    > Python is a good first programming language for someone with zero
    > programming experience? Using Linux and Python for first exposure to
    > programming languages and principles.


    I'm not from the US and I'm not sure what 9th/12th grade are, but if
    you want to use programming to explore maths, er I mean math, have a
    look at the sage project:

    http://www.sagemath.org/

    --
    Arnaud
    Arnaud Delobelle, Mar 22, 2008
    #4
  5. jmDesktop

    Brian Lane Guest

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Jeff Schwab wrote:
    > jmDesktop wrote:
    >> For students 9th - 12th grade, with at least Algebra I. Do you think
    >> Python is a good first programming language for someone with zero
    >> programming experience? Using Linux and Python for first exposure to
    >> programming languages and principles.

    >
    > Linux and Python are a nearly ideal combination for this. Be aware that
    > at some point, you will likely have to dig into C, the primary language
    > used to implement both Linux and Python.


    At that level I don't see why they would need to hit 'C' at all. Maybe
    some of the APIs, but not syntax at all.

    I would consider Python an ideal language for HS students to learn. The
    teacher who hosts our KPLUG meetings has had good luck using Python in
    her classes.

    Brian

    - --
    - ---[Office 67.9F]--[Outside 49.1F]--[Server 104.7F]--[Coaster 67.1F]---
    - ---[ KLAHOWYA WSF (366773110) @ 47 31.2076 -122 27.2249 ]---
    Software, Linux, Microcontrollers http://www.brianlane.com
    AIS Parser SDK http://www.aisparser.com
    Movie Landmarks Search Engine http://www.movielandmarks.com

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.7 (Darwin)
    Comment: Remember Lexington Green!

    iD8DBQFH5VWZIftj/pcSws0RAoouAJ45UaRYDxwjwNLC8KblaFfyEKz3kACfeeWV
    XREAe/+tjyYuTVZOrNtaObE=
    =9h+S
    -----END PGP SIGNATURE-----
    Brian Lane, Mar 22, 2008
    #5
  6. jmDesktop

    Larry Bates Guest

    jmDesktop wrote:
    > For students 9th - 12th grade, with at least Algebra I. Do you think
    > Python is a good first programming language for someone with zero
    > programming experience? Using Linux and Python for first exposure to
    > programming languages and principles.
    >
    > Thank you.


    ABSOLUTELY. Get them started with a REAL programming language that will
    teach them proper fundamentals. I wish Python would have been around 25
    years ago when I taught incoming Freshmen at local University. To get
    students to understand about variable references, etc. I always started
    them with Assembler so they could understand what was actually going on.
    I see so may on this forum that have the wrong ideas about variable names/
    storage.

    Good Luck,
    Larry Bates
    Larry Bates, Mar 22, 2008
    #6
  7. jmDesktop

    Jeff Schwab Guest

    Larry Bates wrote:
    > jmDesktop wrote:
    >> For students 9th - 12th grade, with at least Algebra I. Do you think
    >> Python is a good first programming language for someone with zero
    >> programming experience? Using Linux and Python for first exposure to
    >> programming languages and principles.
    >>
    >> Thank you.

    >
    > ABSOLUTELY. Get them started with a REAL programming language that will
    > teach them proper fundamentals. I wish Python would have been around 25
    > years ago when I taught incoming Freshmen at local University. To get
    > students to understand about variable references, etc.


    What do you mean by "variable references," and how are they used in Python?
    Jeff Schwab, Mar 22, 2008
    #7
  8. jmDesktop

    André Guest

    On Mar 22, 3:48 pm, Arnaud Delobelle <> wrote:
    > jmDesktop <> writes:
    > > For students 9th - 12th grade, with at least Algebra I. Do you think
    > > Python is a good first programming language for someone with zero
    > > programming experience? Using Linux and Python for first exposure to
    > > programming languages and principles.

    >
    > I'm not from the US and I'm not sure what 9th/12th grade are, but if
    > you want to use programming to explore maths, er I mean math, have a
    > look at the sage project:
    >


    9th grade roughly corresponds to 3e collège and 10th/12th grade
    roughly correspond to the first three years of "le lycée" - although
    from my past teaching experience (as a physicist) in French, I have
    concluded that mathematics is taught at a higher level in France than
    it is in North America - simply looking at the various books available
    on given topics.

    > http://www.sagemath.org/


    Sage is great. However, I think it is much too advanced for 9th/12th
    grade. Furthermore, the OP was looking for suggestion teaching
    *programming*, not math.

    André
    >
    > --
    > Arnaud
    André, Mar 22, 2008
    #8
  9. jmDesktop

    Paul Rubin Guest

    jmDesktop <> writes:
    > For students 9th - 12th grade, with at least Algebra I. Do you think
    > Python is a good first programming language for someone with zero
    > programming experience?


    It's at least pretty good. It's not ideal, but nothing ever is.

    What I mean is: it's the best suggestion I can think of, but I can't
    say with confidence that there's nothing better out there.
    Alternatives would probably be more esoteric languages like Logo.

    Chris Okasaki (of functional data structures fame) has an interesting
    blog post about why indentation-based structuring is a big help for
    teaching:

    http://okasaki.blogspot.com/2008/02/in-praise-of-mandatory-indentation-for.html
    Paul Rubin, Mar 22, 2008
    #9
  10. On Mar 22, 7:00 pm, Larry Bates <`> wrote:
    > jmDesktop wrote:
    > > For students 9th - 12th grade, with at least Algebra I.  Do you think
    > > Python is a good first programming language for someone with zero
    > > programming experience?  Using Linux and Python for first exposure to
    > > programming languages and principles.

    >
    > > Thank you.

    >
    > ABSOLUTELY.  Get them started with a REAL programming language that will
    > teach them proper fundamentals.  I wish Python would have been around 25
    > years ago when I taught incoming Freshmen at local University.  To get
    > students to understand about variable references, etc. I always started
    > them with Assembler so they could understand what was actually going on.
    > I see so may on this forum that have the wrong ideas about variable names/
    > storage.


    It's funny, 25 years ago - I was 10 then - I got my first computer
    from my cousin (a Sinclair ZX81, I think it had a different name in
    the US) as he was getting a brand new C64. In those days BASIC was
    very slow so if you wanted to do anything demanding with a computer
    you had to learn 'machine language' (I didn't have an assembler...).
    I wrote my little programs in a notebook, then POKEd them into
    memory! I learnt so much then. Years later, when I got my first C
    compiler, it was a liberation.

    My other 'coming of age' was when I took a lambda-calculus course at
    university. I felt like a man who's had a black and white TV set all
    his life and watches colour TV for the first time. What if computers
    had been designed as 'lambda-calculus machines' from the start rather
    than Turing machines?

    Anyway, here the conclusion that I draw: learn lambda-calculus and
    Turing machines. The rest is syntactic sugar.

    Not quite seriously but still'ly yours
    --
    Arnaud
    Arnaud Delobelle, Mar 22, 2008
    #10
  11. jmDesktop

    Jeff Schwab Guest

    Arnaud Delobelle wrote:

    > Anyway, here the conclusion that I draw: learn lambda-calculus and
    > Turing machines. The rest is syntactic sugar.


    How is the lambda-calculus fundamentally different from Turing
    machine-based implementations?

    I've been learning a fair amount about functional programming recently,
    mostly because compile-time C++ turns out to be a pure functional
    programming language. Where should I go for a solid grounding in
    lambda-calculus?

    Also, despite reassurances to the contrary, I still get the impression
    that there is a strong anti-lambda sentiment among the Python "in"
    crowd. Is it just a question of the word "lambda," as opposed to
    perceived cleaner syntax?

    http://www.artima.com/weblogs/viewpost.jsp?thread=98196
    http://www.python.org/dev/peps/pep-0290/#replacing-common-uses-of-lambda

    --
    Said the Rabbi Hillel, "All the rest is commentary."
    Jeff Schwab, Mar 22, 2008
    #11
  12. jmDesktop

    bsoist Guest

    On Mar 22, 12:40 pm, jmDesktop <> wrote:
    > For students 9th - 12th grade, with at least Algebra I. Do you think
    > Python is a good first programming language for someone with zero
    > programming experience? Using Linux and Python for first exposure to
    > programming languages and principles.
    >
    > Thank you.


    Absolutely. I love using Python in "the real world" but it is
    fantastic for beginning programmers.

    Python enforces good habits and presents many opportunities to discuss
    programming from an academic perspective. Why does Python not have a
    switch or until statement? Why are very common objects (stack, queue,
    linked list) not builtin? etc.

    I have seen 14 and 15 year old students who have never done any
    programming begin to write real object oriented programs after 60
    hours or so of classroom instruction.
    bsoist, Mar 22, 2008
    #12
  13. jmDesktop

    7stud Guest

    On Mar 22, 3:34 pm, bsoist <> wrote:
    > On Mar 22, 12:40 pm, jmDesktop <> wrote:
    >
    > > For students 9th - 12th grade, with at least Algebra I.  Do you think
    > > Python is a good first programming language for someone with zero
    > > programming experience?  Using Linux and Python for first exposure to
    > > programming languages and principles.

    >
    > > Thank you.

    >
    > Absolutely. I love using Python in "the real world" but it is
    > fantastic for beginning programmers.
    >
    > Python enforces good habits and presents many opportunities to discuss
    > programming from an academic perspective. Why does Python not have a
    > switch or until statement? Why are very common objects (stack, queue,
    > linked list) not builtin? etc.
    >


    Beginning programmers in grades 9-12 are not going to understand
    issues like that, and it would be a mistake to try and introduce
    them. Beginning programmers should be concentrating their efforts on
    learning the syntax of a language and basic constructs like for-loops
    and if statements. They will begin by writing simple "hello world"
    style programs, and as their basic skills improve, the programs will
    get a little more complex and require some more thought and some math
    to solve the problems presented to them. String formatting should
    probably be introduced to help with formatting the output. That is
    about as far as things are going to go.

    Terms like "Touring machines" and "lambda-calculus" are not going to
    be mentioned anywhere in the course of study.
    7stud, Mar 22, 2008
    #13
  14. jmDesktop

    Paul McGuire Guest

    On Mar 22, 11:40 am, jmDesktop <> wrote:
    > For students 9th - 12th grade, with at least Algebra I.  Do you think
    > Python is a good first programming language for someone with zero
    > programming experience?  Using Linux and Python for first exposure to
    > programming languages and principles.
    >
    > Thank you.


    I absolutely support Python as a first programming language, from 7th
    grade on up. Here is a link at the main Python web site that should
    give you a number of additional resources: http://www.python.org/community/sigs/current/edu-sig/

    -- Paul
    Paul McGuire, Mar 23, 2008
    #14
  15. On Sat, 22 Mar 2008 15:42:05 -0700 (PDT), 7stud <>
    declaimed the following in comp.lang.python:


    > Terms like "Touring machines" and "lambda-calculus" are not going to


    I'm not sure I want to see a Python-powered "Touring machine"... <G>
    (Indiana Jones: Snakes, why's it always got to be snakes)

    Though I agree going into the hypotheticals of a Turing machine is
    unlikely... On par with dumping von Neumann architecture on them...
    --
    Wulfraed Dennis Lee Bieber KD6MOG

    HTTP://wlfraed.home.netcom.com/
    (Bestiaria Support Staff: )
    HTTP://www.bestiaria.com/
    Dennis Lee Bieber, Mar 23, 2008
    #15
  16. jmDesktop

    sturlamolden Guest

    On 22 Mar, 23:42, 7stud <> wrote:

    > Beginning programmers in grades 9-12 are not going to understand
    > issues like that, and it would be a mistake to try and introduce
    > them. Beginning programmers should be concentrating their efforts on
    > learning the syntax of a language and basic constructs like for-loops
    > and if statements.


    Yes. And because Python is a "scripting language" one does not even
    have to introduce functions to demonstrate this. Students can play
    with loops, datatypes, operators, assignments, and conditionals,
    without being confused by higher level constructs like functions and
    classes. Python is one of very few languages that allow that. If you
    e.g. start to teach programming with with Java, students are from the
    start faced with confusing constructs like classes and public static
    methods if they are to try out anything on their own. With Python,
    higher level constructs can be gradually introduced. That has a
    tremendous pedagogical value.
    sturlamolden, Mar 23, 2008
    #16
  17. On Sat, 22 Mar 2008 21:11:51 -0700, sturlamolden wrote:

    > On 22 Mar, 23:42, 7stud <> wrote:
    >
    >> Beginning programmers in grades 9-12 are not going to understand issues
    >> like that, and it would be a mistake to try and introduce them.
    >> Beginning programmers should be concentrating their efforts on learning
    >> the syntax of a language and basic constructs like for-loops and if
    >> statements.

    >
    > Yes. And because Python is a "scripting language"



    Python is a programming language. It can be used for scripting, but
    that's not all it can do. Describing it as a "scripting language" is like
    describing a fully-equipped professional kitchen as "a left-over warming
    room".



    --
    Steven
    Steven D'Aprano, Mar 23, 2008
    #17
  18. jmDesktop

    Paul Rubin Guest

    jmDesktop <> writes:
    > For students 9th - 12th grade, with at least Algebra I. Do you think
    > Python is a good first programming language for someone with zero
    > programming experience? Using Linux and Python for first exposure to
    > programming languages and principles.


    I guess I should ask what is being taught and what the interests of
    the students are. I.e. is it a programming class for students
    interested in programming? If yes, then sure, why not Python.
    If not, then hmmm.
    Paul Rubin, Mar 23, 2008
    #18
  19. jmDesktop

    Paul Rubin Guest

    Jeff Schwab <> writes:
    > I've been learning a fair amount about functional programming
    > recently, mostly because compile-time C++ turns out to be a pure
    > functional programming language. Where should I go for a solid
    > grounding in lambda-calculus?


    For PL theory in general, try this:

    http://www.cs.cmu.edu/~rwh/plbook/book.pdf
    Paul Rubin, Mar 23, 2008
    #19
  20. jmDesktop

    Mensanator Guest

    On Mar 22, 11:29�pm, Steven D'Aprano <st...@REMOVE-THIS-
    cybersource.com.au> wrote:
    > On Sat, 22 Mar 2008 21:11:51 -0700, sturlamolden wrote:
    > > On 22 Mar, 23:42, 7stud <> wrote:

    >
    > >> Beginning programmers in grades 9-12 are not going to understand issues
    > >> like that, and it would be a mistake to try and introduce them.
    > >> Beginning programmers should be concentrating their efforts on learning
    > >> the syntax of a language and basic constructs like for-loops and if
    > >> statements.

    >
    > > Yes. And because Python is a "scripting language"

    >
    > Python is a programming language. It can be used for scripting, but
    > that's not all it can do. Describing it as a "scripting language" is like
    > describing a fully-equipped professional kitchen as "a left-over warming
    > room".


    Sure, but then again, some are chefs, others merely
    cooks and yet others just warm leftovers.

    >
    > --
    > Steven
    Mensanator, Mar 23, 2008
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Joel Finkel
    Replies:
    0
    Views:
    1,063
    Joel Finkel
    Aug 3, 2003
  2. Mars
    Replies:
    12
    Views:
    521
    CBFalconer
    Mar 6, 2005
  3. omar khan

    Can you recommend any C programming books?

    omar khan, Oct 31, 2005, in forum: C Programming
    Replies:
    27
    Views:
    624
    Jordan Abel
    Nov 2, 2005
  4. Replies:
    3
    Views:
    226
    Ameya the ______
    Nov 2, 2010
  5. Sharon Phillips

    Can you recommend a language to...

    Sharon Phillips, Jul 6, 2007, in forum: Ruby
    Replies:
    8
    Views:
    121
    Sharon Phillips
    Jul 8, 2007
Loading...

Share This Page