Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Python in High School

Reply
Thread Tools

Python in High School

 
 
Jan Claeys
Guest
Posts: n/a
 
      04-02-2008
Op Tue, 01 Apr 2008 10:27:18 -0700, schreef sprad:

> I'm a high school computer teacher, and I'm starting a series of
> programming courses next year (disguised as "game development" classes
> to capture more interest). The first year will be a gentle introduction
> to programming, leading to two more years of advanced topics.
> [...]
> So -- would Python be a good fit for these classes?


There are at least 3 books about game programming in python:
<http://www.amazon.com/Game-Programming-Line-Express-Learning/dp/0470068221>
<http://www.amazon.com/Beginning-Game-Development-Python-Pygame/dp/1590598725>
<http://www.amazon.com/Game-Programming-Python-Development/dp/1584502584>



--
JanC
 
Reply With Quote
 
 
 
 
John Henry
Guest
Posts: n/a
 
      04-02-2008
On Apr 1, 11:10 am, sprad <(E-Mail Removed)> wrote:
> On Apr 1, 11:41 am, mdomans <(E-Mail Removed)> wrote:
>
> > Python needs no evangelizing but I can tell you that it is a powerfull
> > tool. I prefer to think that flash is rather visualization tool than
> > programing language, and java needs a lot of typing and a lot of
> > reading. On the other hand python is simple to read and write, can be
> > debuged easily, is intuitive and saves a lot of time. It also supports
> > batteries included policy and you can't get more OO than python.

>
> One advantage of Flash is that we can have something moving on the
> screen from day one, and add code to it piece by piece for things like
> keyboard or mouse control, more and more complex physics, etc. Is
> there an equivalent project in Python?


I downloaded the "How to Think Like a Python Programmer" book and read
it. I think it's a fine reference book for the purpose you
indicated.

Here's my 2 cents on the subject.

I had been a volunteer mentor to my son's middle school robotic team
for several years and I have some experiences, therefore, in how kids
react to "programming". Granted, high school kids are "bigger kids" -
but they are kids nevertheless.

Last summer, I experimented teaching my own kid Python. He was in 7th
grade going onto 8th grade. He was the main goto person for the
robotic team and had no trouble learning the common applications such
as the Microsoft Office suite, and had some experience in ICONic
programming (Lego Mindstorm). So, I tried to see what would happen if
he tries to learn Python - using somewhat similar approach you are
taking: start with something visually appealing on day one. Instead
of Flash, I used Pythoncard - a no-brainer Python GUI construction
toolkit. He was really excited seeing how easy it was to have tic-tae-
toe type program up so easily (we are taking minutes - not hours) and
was very interested and motivated to continue. So far so good.
However, once I start teaching him variables, expressions, loops, and
what not, I found that (by surprise) he had great difficulties
catching on. Not soon after that, we had to quit.

We - as adults - take many things for granted and sometimes don't
remember, or don't understand how kids learn. My experience tells me
that in order to teach today's video game generation of kids, the
approach really has to be entirely visual. After I abandoned my
attempt to teach my kid Python, I started them on Robolab - a
simplified version of LabView and to my delight, they were able to
cook up a few simple programs (like fibonacci series and so forth)
without too much effort - although my own kid had some minor trouble
understanding the concept of a container (LabView's version of a
variable).

I don't know if you have access to LabView or Robolab or similar
packages but if you do, I would highly recommend those. LabView is
every bit as powerful, full-featured, and "real-life" as many of the
other languages and I believe that kids will have a much easier time
learning computer programming with it.

And you are going to teach them Java? Oh, please don't. Let the
colleges torture them. :=)
 
Reply With Quote
 
 
 
 
Stef Mientki
Guest
Posts: n/a
 
      04-02-2008
John Henry wrote:
> On Apr 1, 11:10 am, sprad <(E-Mail Removed)> wrote:
>
>> On Apr 1, 11:41 am, mdomans <(E-Mail Removed)> wrote:
>>
>>
>>> Python needs no evangelizing but I can tell you that it is a powerfull
>>> tool. I prefer to think that flash is rather visualization tool than
>>> programing language, and java needs a lot of typing and a lot of
>>> reading. On the other hand python is simple to read and write, can be
>>> debuged easily, is intuitive and saves a lot of time. It also supports
>>> batteries included policy and you can't get more OO than python.
>>>

>> One advantage of Flash is that we can have something moving on the
>> screen from day one, and add code to it piece by piece for things like
>> keyboard or mouse control, more and more complex physics, etc. Is
>> there an equivalent project in Python?
>>

>
> I downloaded the "How to Think Like a Python Programmer" book and read
> it. I think it's a fine reference book for the purpose you
> indicated.
>
> Here's my 2 cents on the subject.
>
> I had been a volunteer mentor to my son's middle school robotic team
> for several years and I have some experiences, therefore, in how kids
> react to "programming". Granted, high school kids are "bigger kids" -
> but they are kids nevertheless.
>
> Last summer, I experimented teaching my own kid Python. He was in 7th
> grade going onto 8th grade. He was the main goto person for the
> robotic team and had no trouble learning the common applications such
> as the Microsoft Office suite, and had some experience in ICONic
> programming (Lego Mindstorm). So, I tried to see what would happen if
> he tries to learn Python - using somewhat similar approach you are
> taking: start with something visually appealing on day one. Instead
> of Flash, I used Pythoncard - a no-brainer Python GUI construction
> toolkit. He was really excited seeing how easy it was to have tic-tae-
> toe type program up so easily (we are taking minutes - not hours) and
> was very interested and motivated to continue. So far so good.
> However, once I start teaching him variables, expressions, loops, and
> what not, I found that (by surprise) he had great difficulties
> catching on. Not soon after that, we had to quit.
>
> We - as adults - take many things for granted and sometimes don't
> remember, or don't understand how kids learn. My experience tells me
> that in order to teach today's video game generation of kids, the
> approach really has to be entirely visual. After I abandoned my
> attempt to teach my kid Python, I started them on Robolab - a
> simplified version of LabView and to my delight, they were able to
> cook up a few simple programs (like fibonacci series and so forth)
> without too much effort - although my own kid had some minor trouble
> understanding the concept of a container (LabView's version of a
> variable).
>
> I don't know if you have access to LabView or Robolab or similar
> packages but if you do, I would highly recommend those. LabView is
> every bit as powerful, full-featured, and "real-life" as many of the
> other languages and I believe that kids will have a much easier time
> learning computer programming with it.
>

Well I doubt it's the visual environment that makes it more easy,
color, shape and position can give some extra information though.
I think apriori domain knowledge and flattness of information are of far
more importance.
The first issue is covered quit well by Robolab / Labview,
but the second issue certainly is not.
I'm right now working on a Labview like editor in Python,
which does obey the demand for flatness of information.
The first results can be seen here:
http://oase.uci.kun.nl/~mientki/data...reenshots.html

cheers,
Stef Mientki
> And you are going to teach them Java? Oh, please don't. Let the
> colleges torture them. :=)
>


 
Reply With Quote
 
Dan Upton
Guest
Posts: n/a
 
      04-02-2008
On Wed, Apr 2, 2008 at 1:10 PM, Jan Claeys <(E-Mail Removed)> wrote:
> Op Tue, 01 Apr 2008 10:27:18 -0700, schreef sprad:
>
>
> > I'm a high school computer teacher, and I'm starting a series of
> > programming courses next year (disguised as "game development" classes
> > to capture more interest). The first year will be a gentle introduction
> > to programming, leading to two more years of advanced topics.
> > [...]

>
> > So -- would Python be a good fit for these classes?

>
> There are at least 3 books about game programming in python:
> <http://www.amazon.com/Game-Programming-Line-Express-Learning/dp/0470068221>
> <http://www.amazon.com/Beginning-Game-Development-Python-Pygame/dp/1590598725>
> <http://www.amazon.com/Game-Programming-Python-Development/dp/1584502584>
>


This was the book I first bought when I started thinking about
learning Python, and it includes some pygame projects. It uses all
game programming-based concepts for teaching, although many of them
are text-based and it only introduces pygame toward the end.

http://www.amazon.com/Python-Program...7169620&sr=1-6

I might add, you might do a disservice to students by starting them
with flashy graphics-based programming--IIRC, that was actually a part
of the complaints a couple months ago about why "Java schools" were
failing to turn out competent computer scientists: they focus too
heavily on something that looks good and end up missing the underlying
concepts. Not that you'd ever do such a thing, I'm sure But my
intro CS professor in undergrad had us do two of the projects from our
textbook that involved GUI programming, then quickly dropped it,
partly because we were spending so much time of the implementation of
the projects 1) figuring out how to set up the GUI in Swing, and 2)
not really understanding why we're typing all this stuff to create
buttons and text fields.

On Wed, Apr 2, 2008 at 4:01 PM, John Henry <(E-Mail Removed)> wrote:
>
> And you are going to teach them Java? Oh, please don't. Let the
> colleges torture them. :=)
>


Side rant: I think Java's just fine, as long as it's taught properly.
I'd done a little bit of C and C++ programming when I was in high
school, trying to teach myself from a book, but I never really got
pointers or objects. Going back to it after Java, it made so much
more sense, even though people will tell you "Java doesn't make you
learn about pointers."
 
Reply With Quote
 
John Henry
Guest
Posts: n/a
 
      04-02-2008
On Apr 2, 1:01 pm, John Henry <(E-Mail Removed)> wrote:
> On Apr 1, 11:10 am, sprad <(E-Mail Removed)> wrote:
>
> > On Apr 1, 11:41 am, mdomans <(E-Mail Removed)> wrote:

>
> > > Python needs no evangelizing but I can tell you that it is a powerfull
> > > tool. I prefer to think that flash is rather visualization tool than
> > > programing language, and java needs a lot of typing and a lot of
> > > reading. On the other hand python is simple to read and write, can be
> > > debuged easily, is intuitive and saves a lot of time. It also supports
> > > batteries included policy and you can't get more OO than python.

>
> > One advantage of Flash is that we can have something moving on the
> > screen from day one, and add code to it piece by piece for things like
> > keyboard or mouse control, more and more complex physics, etc. Is
> > there an equivalent project in Python?

>
> I downloaded the "How to Think Like a Python Programmer" book and read
> it. I think it's a fine reference book for the purpose you
> indicated.
>
> Here's my 2 cents on the subject.
>
> I had been a volunteer mentor to my son's middle school robotic team
> for several years and I have some experiences, therefore, in how kids
> react to "programming". Granted, high school kids are "bigger kids" -
> but they are kids nevertheless.
>
> Last summer, I experimented teaching my own kid Python. He was in 7th
> grade going onto 8th grade. He was the main goto person for the
> robotic team and had no trouble learning the common applications such
> as the Microsoft Office suite, and had some experience in ICONic
> programming (Lego Mindstorm). So, I tried to see what would happen if
> he tries to learn Python - using somewhat similar approach you are
> taking: start with something visually appealing on day one. Instead
> of Flash, I used Pythoncard - a no-brainer Python GUI construction
> toolkit. He was really excited seeing how easy it was to have tic-tae-
> toe type program up so easily (we are taking minutes - not hours) and
> was very interested and motivated to continue. So far so good.
> However, once I start teaching him variables, expressions, loops, and
> what not, I found that (by surprise) he had great difficulties
> catching on. Not soon after that, we had to quit.
>
> We - as adults - take many things for granted and sometimes don't
> remember, or don't understand how kids learn. My experience tells me
> that in order to teach today's video game generation of kids, the
> approach really has to be entirely visual. After I abandoned my
> attempt to teach my kid Python, I started them on Robolab - a
> simplified version of LabView and to my delight, they were able to
> cook up a few simple programs (like fibonacci series and so forth)
> without too much effort - although my own kid had some minor trouble
> understanding the concept of a container (LabView's version of a
> variable).
>
> I don't know if you have access to LabView or Robolab or similar
> packages but if you do, I would highly recommend those. LabView is
> every bit as powerful, full-featured, and "real-life" as many of the
> other languages and I believe that kids will have a much easier time
> learning computer programming with it.
>
> And you are going to teach them Java? Oh, please don't. Let the
> colleges torture them. :=)


BTW: I successfully taught them to program in machine language. We
used lego parts to construct a psudo-turing machine with a 33 bit
register, and used Lego Mindstorm to do the programming. It would
read the position of the "register" (input), perform an operation, and
outputs the answer. To do that, they have to break down a set of 2
numbers into binary form (via pencil and paper), set the flip switches
(constructed w lego parts), hit a touch sensor to begin the
operation. The robot would then read the position of the flip
switches (via light sensor), interpret the first bit (operator: add or
subtract), then interpret the next 32 bits as 2 numbers (I only
allowed them to use addition, shift, and loops in their program), do
the operation internally in decimal, convert the answer to binary, and
"display" the result (output) using those switches. They take the
result - convert it back to decimal (via pencil and papger) and see
that the answer is indeed correct. Wow! My machine can add and
subtract!!!

They did all these without knowing that they learned the very basis of
all computer programming - they just had lots of fun doing it.

 
Reply With Quote
 
John Henry
Guest
Posts: n/a
 
      04-02-2008
On Apr 2, 1:32 pm, Stef Mientki <(E-Mail Removed)> wrote:
> John Henry wrote:
> > On Apr 1, 11:10 am, sprad <(E-Mail Removed)> wrote:

>
> >> On Apr 1, 11:41 am, mdomans <(E-Mail Removed)> wrote:

>
> >>> Python needs no evangelizing but I can tell you that it is a powerfull
> >>> tool. I prefer to think that flash is rather visualization tool than
> >>> programing language, and java needs a lot of typing and a lot of
> >>> reading. On the other hand python is simple to read and write, can be
> >>> debuged easily, is intuitive and saves a lot of time. It also supports
> >>> batteries included policy and you can't get more OO than python.

>
> >> One advantage of Flash is that we can have something moving on the
> >> screen from day one, and add code to it piece by piece for things like
> >> keyboard or mouse control, more and more complex physics, etc. Is
> >> there an equivalent project in Python?

>
> > I downloaded the "How to Think Like a Python Programmer" book and read
> > it. I think it's a fine reference book for the purpose you
> > indicated.

>
> > Here's my 2 cents on the subject.

>
> > I had been a volunteer mentor to my son's middle school robotic team
> > for several years and I have some experiences, therefore, in how kids
> > react to "programming". Granted, high school kids are "bigger kids" -
> > but they are kids nevertheless.

>
> > Last summer, I experimented teaching my own kid Python. He was in 7th
> > grade going onto 8th grade. He was the main goto person for the
> > robotic team and had no trouble learning the common applications such
> > as the Microsoft Office suite, and had some experience in ICONic
> > programming (Lego Mindstorm). So, I tried to see what would happen if
> > he tries to learn Python - using somewhat similar approach you are
> > taking: start with something visually appealing on day one. Instead
> > of Flash, I used Pythoncard - a no-brainer Python GUI construction
> > toolkit. He was really excited seeing how easy it was to have tic-tae-
> > toe type program up so easily (we are taking minutes - not hours) and
> > was very interested and motivated to continue. So far so good.
> > However, once I start teaching him variables, expressions, loops, and
> > what not, I found that (by surprise) he had great difficulties
> > catching on. Not soon after that, we had to quit.

>
> > We - as adults - take many things for granted and sometimes don't
> > remember, or don't understand how kids learn. My experience tells me
> > that in order to teach today's video game generation of kids, the
> > approach really has to be entirely visual. After I abandoned my
> > attempt to teach my kid Python, I started them on Robolab - a
> > simplified version of LabView and to my delight, they were able to
> > cook up a few simple programs (like fibonacci series and so forth)
> > without too much effort - although my own kid had some minor trouble
> > understanding the concept of a container (LabView's version of a
> > variable).

>
> > I don't know if you have access to LabView or Robolab or similar
> > packages but if you do, I would highly recommend those. LabView is
> > every bit as powerful, full-featured, and "real-life" as many of the
> > other languages and I believe that kids will have a much easier time
> > learning computer programming with it.

>
> Well I doubt it's the visual environment that makes it more easy,
> color, shape and position can give some extra information though.
> I think apriori domain knowledge and flattness of information are of far
> more importance.
> The first issue is covered quit well by Robolab / Labview,
> but the second issue certainly is not.
> I'm right now working on a Labview like editor in Python,
> which does obey the demand for flatness of information.
> The first results can be seen here:http://oase.uci.kun.nl/~mientki/data..._animations_sc...
>
> cheers,
> Stef Mientki
>
> > And you are going to teach them Java? Oh, please don't. Let the
> > colleges torture them. :=)


What do you mean by flatness of information?

 
Reply With Quote
 
Jan Claeys
Guest
Posts: n/a
 
      04-03-2008
Op Wed, 02 Apr 2008 17:02:45 -0400, schreef Dan Upton:
> Side rant: I think Java's just fine, as long as it's taught properly.
> I'd done a little bit of C and C++ programming when I was in high
> school, trying to teach myself from a book, but I never really got
> pointers or objects. Going back to it after Java, it made so much more
> sense, even though people will tell you "Java doesn't make you learn
> about pointers."


I learned about pointers while learning Pascal (and later embedded
assembler) using Borland's tools.

Later I learned C (and even later C++), and I've always been wondering why
those languages were making simple things so complicated...


--
JanC
 
Reply With Quote
 
Nick J Chackowsky
Guest
Posts: n/a
 
      04-03-2008
sprad wrote:
> I'm a high school computer teacher, and I'm starting a series of
> programming courses next year (disguised as "game development" classes
> to capture more interest). The first year will be a gentle
> introduction to programming, leading to two more years of advanced
> topics.
>


I have taught high school comp. sci. for a number of years, using
Pascal, Ada, C++, Visual Basic, and Python as languages. Python has, in
my opinion, given the students the best opportunity to really discover
what programming and computer science are all about. Very high level
code without the enormous learning curve for the "extras", plus easy
debugging and useful error messages make it ideal.

class Example {
// your program begins with a call to main()
public static void main(String args[]){
System.out.println("this is a simple Java program");
}
}

vs

print ("This is a simple Python program.")

Once a student has a grasp of Python and programming, he/she is better
prepared to understand _why_ Java and C++ _need_ all the declarations,
decorations, and specifications, and why they might be useful. But it's
sure nice to start doing real programming in such a simple, elegant
environment.

Nick.


--
Posted via a free Usenet account from http://www.teranews.com

 
Reply With Quote
 
Bruno Desthuilliers
Guest
Posts: n/a
 
      04-03-2008
Jan Claeys a écrit :
(snip)
> I learned about pointers while learning Pascal (and later embedded
> assembler) using Borland's tools.
>
> Later I learned C (and even later C++), and I've always been wondering why
> those languages were making simple things so complicated...
>


Similar pattern here : I had difficulties grasping pointers in C, then
learned them in Pascal and got enlightned. Then I was able to use them
correctly in C.


 
Reply With Quote
 
Stef Mientki
Guest
Posts: n/a
 
      04-03-2008

>> Well I doubt it's the visual environment that makes it more easy,
>> color, shape and position can give some extra information though.
>> I think apriori domain knowledge and flattness of information are of far
>> more importance.
>> The first issue is covered quit well by Robolab / Labview,
>> but the second issue certainly is not.
>> I'm right now working on a Labview like editor in Python,
>> which does obey the demand for flatness of information.
>> The first results can be seen here:http://oase.uci.kun.nl/~mientki/data..._animations_sc...
>>
>>
>> cheers,
>> Stef Mientki
>>
>>
>>> And you are going to teach them Java? Oh, please don't. Let the
>>> colleges torture them. :=)
>>>

>
> What do you mean by flatness of information?
>
>

What I mean is something like; all the information at a certain
abstraction level is visible on one screen or one piece of paper,
and not is available through multiple screen / multiple right-clicks
etc. A wizard in general is an example of strong non-flatness of
information (try adding a mail-account in Thunderbird, this could
easily be put on 1 page, which clearly would give a much better overview).

cheers,
Stef


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
UR SCHOOL AND COLLEGE'S, PLEASE REGISTER UR SCHOOL AND COLLEGE NAME'SIN THIS SITE. "" IF U HAVE TIME THEN DO IT. PLEASE I REQUEST. """ jack Python 0 06-07-2008 06:34 AM
Motivating high-school students to join college after completing high school m1@mailinator.com Computer Support 4 08-13-2007 04:00 AM
The Old School Meet's The New School. CoreyWhite C++ 0 03-23-2007 07:01 PM
The Old School Meet's The New School. CoreyWhite C Programming 0 03-23-2007 07:01 PM
Office Certification for High School Students? Jack Barrett Microsoft Certification 2 10-01-2003 07:19 PM



Advertisments