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. Advertisements

  2. jmDesktop

    André Guest


    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, where "ple" stands
    for "Python Learning Environment".

    André, Mar 22, 2008
    1. Advertisements

  3. jmDesktop

    Jeff Schwab Guest

    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
  4. 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:
    Arnaud Delobelle, Mar 22, 2008
  5. jmDesktop

    Brian Lane Guest

    Hash: SHA1

    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.


    - --
    - ---[Office 67.9F]--[Outside 49.1F]--[Server 104.7F]--[Coaster 67.1F]---
    - ---[ KLAHOWYA WSF (366773110) @ 47 31.2076 -122 27.2249 ]---
    Software, Linux, Microcontrollers
    AIS Parser SDK
    Movie Landmarks Search Engine

    Version: GnuPG v1.4.7 (Darwin)
    Comment: Remember Lexington Green!

    -----END PGP SIGNATURE-----
    Brian Lane, Mar 22, 2008
  6. jmDesktop

    Larry Bates Guest

    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/

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

    Jeff Schwab Guest

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

    André Guest

    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.
    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é, Mar 22, 2008
  9. jmDesktop

    Paul Rubin Guest

    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
    Paul Rubin, Mar 22, 2008
  10. 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 Delobelle, Mar 22, 2008
  11. jmDesktop

    Jeff Schwab Guest

    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

    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?
    Jeff Schwab, Mar 22, 2008
  12. jmDesktop

    bsoist Guest

    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
  13. jmDesktop

    7stud Guest

    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
  14. jmDesktop

    Paul McGuire Guest

    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:

    -- Paul
    Paul McGuire, Mar 23, 2008
  15. 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

    (Bestiaria Support Staff: )
    Dennis Lee Bieber, Mar 23, 2008
  16. jmDesktop

    sturlamolden Guest

    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

  17. 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
    Steven D'Aprano, Mar 23, 2008
  18. jmDesktop

    Paul Rubin Guest

    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
  19. jmDesktop

    Paul Rubin Guest

    For PL theory in general, try this:
    Paul Rubin, Mar 23, 2008
  20. jmDesktop

    Mensanator Guest

    Sure, but then again, some are chefs, others merely
    cooks and yet others just warm leftovers.
    Mensanator, Mar 23, 2008
    1. Advertisements

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.