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

J

jmDesktop

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

André

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é
 
J

Jeff Schwab

jmDesktop said:
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.
 
A

Arnaud Delobelle

jmDesktop said:
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/
 
B

Brian Lane

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

Jeff said:
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-----
 
L

Larry Bates

jmDesktop said:
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
 
J

Jeff Schwab

Larry said:
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?
 
A

André

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.

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é
 
P

Paul Rubin

jmDesktop said:
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
 
A

Arnaud Delobelle

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
 
J

Jeff Schwab

Arnaud said:
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
 
B

bsoist

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

7stud

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

Paul McGuire

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
 
D

Dennis Lee Bieber

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
(e-mail address removed) (e-mail address removed)
HTTP://wlfraed.home.netcom.com/
(Bestiaria Support Staff: (e-mail address removed))
HTTP://www.bestiaria.com/
 
S

sturlamolden

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

Steven D'Aprano

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".
 
P

Paul Rubin

jmDesktop said:
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.
 
M

Mensanator

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.
 

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. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top