[Edu-sig] Fwd: Do we teach computers when we write code?

2009-04-07 Thread Lloyd Hugh Allen
I haven't posted in a while -- forgot to reply-to-edu-sig :)


-- Forwarded message --
From: Lloyd Hugh Allen chandraki...@gmail.com
Date: Tue, Apr 7, 2009 at 09:26
Subject: Re: [Edu-sig] Do we teach computers when we write code?
To: kirby urner kirby.ur...@gmail.com


As a math teacher, using the particular example of summing a finite
set of consecutive integers:

To give students a formula, in particular n(1+n)/2, and then have them
do a set of practice problems where they apply that formula, is not
teaching. It might be training.

Instead, consider the case of telling students that: when Gauss was in
elementary school, his teacher needed time to work on some other
matter and so told the students to add all of the numbers from 1 to
100; and that Gauss instantly looked up and said 5050; and the teacher
hadn't actually yet done the problem himself and so denied Gauss'
answer. Gauss, as an ~8 year old, said, no, look, and wrote

1 + 2 + 3 + ... + 100

and then below that wrote

100 + 99 + 98 + ... + 1

and showed that there were 100 columns, and that each column summed to
101. However, he then noted that he had written the series out twice,
and so had to divide that product by two. The 100 columns is the n;
the sum of the first and last number is 1+n; and then divide by two.

And then to have the students try to represent a similar problem, and
to check their answer against the formula, and THEN to have them do a
set of practice problems, that might be teaching.

If the computer were able to understand the story about young Gauss,
then we could teach it. Instead, we can use it to confirm that the
formula seems to work (because computers can add numbers in the
fashion that Gauss' elementary school teacher expected just as fast as
we can apply the formula), and we can show that using the formula is
still faster for the computer than actually summing the list, but no,
we are not teaching the computer.

Perhaps if the computer were then able to, of its own volition, wonder
what we would get if we were to sum consecutive squares, then we could
teach it. As hard as it is to get students to wonder about things,
it's even harder to create that state in computers.

-Lloyd

On Mon, Apr 6, 2009 at 18:05, kirby urner kirby.ur...@gmail.com wrote:
 I'm wondering what others on this list think of this non-standard use
 of teaching when talking about programming a computer.

 The authors say we're teaching the computer
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Progamming advice. (Was: Why MIT switched from Scheme to Python)

2009-04-07 Thread macquigg
Gary Pajer wrote:

 But to clarify:  I've been programming in python for about six years, along
 the way abandoning Matlab in which I was a local go-to guy.   By the  way,
 I've also adopted Traits and the Enthought Tool Suite, which IMHO might
 possibly be the future of practical laboratory programming in python.  So
 I'm comfortable enough with the nuts and bolts of OOP.   But higher level
 questions like what to make a function, what to make a class, what to
make a
 module, how best to factor it all out, when to decimate a long routine into
 a bunch of shorter ones, how best to organize input, computation and output
 (Traits' MVC architecture helps there), how to think about designing for
 reuse, how to reuse what's already available, when does sub-classing make
 sense, when do exceptions make sense...  and so on and so on.

snip

 I'm wondering if some wizard has written a guide to program structure
 paradigms for the intermediate programmer.  Or perhaps this kind of
thing is
 actually taught in books somewhere...

A good book on exactly this subject is Object-Oriented Modeling and
Design with UML by Blaha and Rumbaugh.  Here you will learn about Class
Models, State Models, and Interaction Models.  It may be a little tough
for self-study, however.  I studied it in a class on OOP, taught by a
professor who was not only an inspiring teacher, but had plenty of
experience in large projects.  It might have been a dull read otherwise. 
He also had us work in teams of 3 to 4 students each, thereby forcing us
to pay attention to modular design and interface definitions.

Another good book, maybe better for self-study is Steve McConnel's Code
Complete.  This is more like an encyclopedia of good programming, so you
can read a topic without reading the whole book.  If you want a quick
summary of the goto debate, look here first.

I think what you really need, however, can only be acquired through
real-world experience designing systems that are complex enough to
*require* good modular design, well-defined interfaces, etc.  I think of
OOP as just one tool in a bag of good engineering practices.  TDD is
certainly another.  Using good data structures is another, and Python is
really superb at getting you to formulate your problem in terms of simple
data structures.

-- Dave




___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Progamming advice. (Was: Why MIT switched from Scheme to Python)

2009-04-07 Thread Gary Pajer
On Tue, Apr 7, 2009 at 1:09 AM, Laura Creighton l...@openend.se wrote:

 In a message of Mon, 06 Apr 2009 16:50:09 EDT, Gary Pajer writes:
 But to clarify:  I've been programming in python for about six years, alo
 ng
 the way abandoning Matlab in which I was a local go-to guy.   By the way,
 I've also adopted Traits and the Enthought Tool Suite, which IMHO might
 possibly be the future of practical laboratory programming in python.  So
 I'm comfortable enough with the nuts and bolts of OOP.   But higher level
 questions like what to make a function, what to make a class, what to mak
 e a
 module, how best to factor it all out, when to decimate a long routine in
 to
 a bunch of shorter ones,

 That last is telling.  It could indicate where your problem is, which is
 that you tend to put too much stuff, and the wrong stuff, in a routine.


 how best to organize input, computation and outp
 ut
 (Traits' MVC architecture helps there), how to think about designing for
 reuse, how to reuse what's already available, when does sub-classing make
 sense, when do exceptions make sense...  and so on and so on.
 
 My current habit is to start coding somewhere and keep patching things on
 till it does what I want.  Imagine building a house starting with I know
  I
 need at least one upright piece of lumber.  I'll put it here.  I need
 another to hold it up.  Then another set over here, and a horizontal one
 over there   I wouldn't want to live in the resulting house.  My cod
 e
 ... the resultant code is hard to follow, hard to document,  hard to exte
 nd
 or change, and probably slower than it might be, and I wouldn't want to l
 ive
 in that, either.   When I try to plan my code the way I might plan a hous
 e,
 I soon find myself swimming in possible ideas, going in circles with
 different plans, having disparate approaches in different parts of the
 program, etc.
 
 I'm wondering if some wizard has written a guide to program structure
 paradigms for the intermediate programmer.  Or perhaps this kind of thing
  is
 actually taught in books somewhere...

 If your problem is 'I have way too many fiddly bits' then what your problem
 may be is that you don't know enough useful data structures, and you need
 some.  A data structures course (and there are textbooks for this) will
 help.  And they can give your code some needed all-over structure.  Just
 learning to think in data structures will help your ability to write code
 in any case.

 But your problem may be 'I don't have enough fiddly bits' -- and it sounds
 like that from your description.  It sounds like while you are writing
 code,
 and solving one bit of the problem you start thinking about a different
 problem, and stick that solution in there, just as you are writing.  This
 will result in pieces of code that are very hard to refactor, debug,
 document and test, and with bugs due to subtle dependencies in addition.

 Or you could be truly blessed and have both problems at the same time.

 If your problem is the second, then the best thing to do is to practice
 test-driven development.  Write the test first.  Then only write enough
 code to make the test pass.  Then write another test.  and so on and
 so forth.  By making the tests really small, you can limit the size of
 the routines that you are making.  And by having to write the test first
 you will get a little more perspective on where in your existing code
 it should go.  So you get fewer 'I put it here because that was
 what I happened to be writing at the time' problems.  Finally, if you
 catch yourself having brilliant ideas and wanting to race off and code
 them 'before I forget' .. then TDD will improve things a lot for you.
 Because writing the test is usually a whole lot easier than writing
 the code, and if you can get your brilliant idea down in a test, then
 its a lot safer for the rest of your code.  Lots of errors happen in
 this business because one is not paying attention to the code that one
 is actually typing down at the moment, but are instead listening to
 your inner voice design the code that you will be typing in 10 minutes,
 or 10 hours.

 If I were you I would go over to
 http://diveintopython.org/toc/index.html
 and work through the examples in sections 13, 14, and 15  which introduces
 unittesting, test first programming, and refactoring.  See if it makes
 you feel any different.  If you aren't used to test first development, it
 will be hard for a while, but persevere, it is worth it.

 Martin Fowler's Refactoring: Improving the Design of Existing Code
 may be worth a read, too.

 Good luck!

 Laura


Hey Laura, you seem to grok my situation quite well.  Thank you for
responding, and thanks to all others, including they who have something to
say but haven't yet.

I am but a poor physicist and self-taught (out of necessity) programmer,
aside from one course in FORTRAN in 1973.  Until this discussion I was not
at all familiar with the terms  TDD,  unittest, design pattern, 

Re: [Edu-sig] Fwd: Do we teach computers when we write code?

2009-04-07 Thread kirby urner
On Tue, Apr 7, 2009 at 6:32 AM, Lloyd Hugh Allen chandraki...@gmail.com wrote:
 I haven't posted in a while -- forgot to reply-to-edu-sig :)



I replied but to an earlier part of this thread  -- I trust our human
readers to make the connections. :)

Kirby
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


[Edu-sig] Generating prime numbers

2009-04-07 Thread Edward Cherlin
On Sun, Apr 5, 2009 at 9:07 AM, kirby urner kirby.ur...@gmail.com wrote:
 As my grandmother might have said:  ai yai yai
 http://answers.yahoo.com/question/index?qid=20081203103806AA4TSOq

 I'm guessing Kay (XY? XX? -- not that I need to know) is a LISP and/or
 Scheme head, by the looks of those lambdas.  Probably why Python
 doesn't want a big one is precisely this:  the language would fall
 under the control of the Great Lambda Kings (a small tribe to our
 north, spends all its time extending emacs).

 Ya gotta love 'em!

You should try UnLambda, then. ;- _The_ most minimalist Turing-tarpit
language I knew of until just this moment, when I looked it up on
Wikipedia and found out about the languages Iota and Jot. Wonderful
for proof-of-concept studies. There is a Parrot implementation of
UnLambda. Here, for example, is an UnLambda implementation of the Y
fixed-point combinator.

```s``k``sii``s``s`ksk`k``sii

where i is an abbreviation for  ``skk.

Joy is a pure functional languages without Lambda. A square function
in Joy is quite FORTH-like.

DEFINE square == dup * .

J also does without Lambda. It has a functional subset with Currying
() in which one can write

square =. ^2

I helped Iverson with a small design point in that functional subset,
and wrote a paper about a generalization of the idea for the next
year's APL conference. In the class of languages I discussed, one can
dispense with variables.

 Kirby



 On Sun, Apr 5, 2009 at 8:27 AM, John Posner jjpos...@snet.net wrote:
 kirby urner wrote:

 Excellente! kind sir.


 Here's a Python solution from Kay Schluehr on python-list. I've
 pretty-printed it, sort of. If the line endings get garbled, just look for
 the backslashes:

 g = (lambda primes = []: \
       (n for n in count(2) if \
           (lambda n, primes: \
               (n in primes if (primes and n=primes[-1]) \
                            else (primes.append(n) or True if all(n%p for p
 in primes if p = sqrt(n)) \
                                                           else False) \
               ) \
           )(n, primes) \
       ) \
   )()

 g is a generator, so get the values with g.next().


-- 
Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
And Children are my nation.
The Cosmos is my dwelling place, The Truth my destination.
http://earthtreasury.net/ (Edward Mokurai Cherlin)
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Fwd: Do we teach computers when we write code?

2009-04-07 Thread Edward Cherlin
On Tue, Apr 7, 2009 at 6:32 AM, Lloyd Hugh Allen chandraki...@gmail.com wrote:
 I haven't posted in a while -- forgot to reply-to-edu-sig :)

There is a long-running rwar between those who think that mailing
lists should have a reply-to set to the mailing list address, and
those who think that replies should go to the previous sender by
default. Is it worse that mistakes result in private replies going to
the list (big-endian) or list replies going to an individual
(little-endian)? You still have to be able to remember what you are
doing. What _I_ want is a menu item clearly labeled Reply to List.

 -- Forwarded message --
 From: Lloyd Hugh Allen chandraki...@gmail.com
 Date: Tue, Apr 7, 2009 at 09:26
 Subject: Re: [Edu-sig] Do we teach computers when we write code?
 To: kirby urner kirby.ur...@gmail.com


 As a math teacher, using the particular example of summing a finite
 set of consecutive integers:

 To give students a formula, in particular n(1+n)/2, and then have them
 do a set of practice problems where they apply that formula, is not
 teaching. It might be training.

 Instead, consider the case of telling students that: when Gauss was in
 elementary school, his teacher needed time to work on some other
 matter and so told the students to add all of the numbers from 1 to
 100; and that Gauss instantly looked up and said 5050; and the teacher
 hadn't actually yet done the problem himself and so denied Gauss'
 answer.

The version I learned is that Gauss wrote the answer on his personal
slate and put it face down on the teacher's desk, as was the custom.
Then he waited while all of the others slaved through the columnar
addition. When the last slate was added to the pile, the teacher
turned it over and found Gauss's correct answer on top. With no
working. In some of the schools I have attended, you get marked down
for not showing your work. %-[

 Gauss, as an ~8 year old, said, no, look, and wrote

 1 + 2 + 3 + ... + 100

 and then below that wrote

 100 + 99 + 98 + ... + 1

 and showed that there were 100 columns, and that each column summed to
 101. However, he then noted that he had written the series out twice,
 and so had to divide that product by two. The 100 columns is the n;
 the sum of the first and last number is 1+n; and then divide by two.

You can do this in preschool with Cuisenaire rods.

 And then to have the students try to represent a similar problem, and
 to check their answer against the formula, and THEN to have them do a
 set of practice problems, that might be teaching.

 If the computer were able to understand the story about young Gauss,
 then we could teach it. Instead, we can use it to confirm that the
 formula seems to work (because computers can add numbers in the
 fashion that Gauss' elementary school teacher expected just as fast as
 we can apply the formula),

+/i.100

0.5 * (] * (] + 1))

 and we can show that using the formula is
 still faster for the computer than actually summing the list, but no,
 we are not teaching the computer.

I still say that even though the computer is not learning, children
writing programs have the same impact on their learning _as if_ they
were teaching.

 Perhaps if the computer were then able to, of its own volition, wonder
 what we would get if we were to sum consecutive squares, then we could
 teach it. As hard as it is to get students to wonder about things,
 it's even harder to create that state in computers.

There are theorem-proving programs, and I know of an instance in which
one was turned loose and came up with a novel proof in geometry (of a
well-known theorem, of course.) Still, one shouldn't make too much of
an isolated incident.

 -Lloyd

 On Mon, Apr 6, 2009 at 18:05, kirby urner kirby.ur...@gmail.com wrote:
 I'm wondering what others on this list think of this non-standard use
 of teaching when talking about programming a computer.

 The authors say we're teaching the computer
 ___
 Edu-sig mailing list
 Edu-sig@python.org
 http://mail.python.org/mailman/listinfo/edu-sig




-- 
Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
And Children are my nation.
The Cosmos is my dwelling place, The Truth my destination.
http://earthtreasury.net/ (Edward Mokurai Cherlin)
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Fwd: Do we teach computers when we write code?

2009-04-07 Thread Laura Creighton
In a message of Tue, 07 Apr 2009 11:09:36 PDT, Edward Cherlin writes:
There is a long-running rwar between those who think that mailing
lists should have a reply-to set to the mailing list address, and
those who think that replies should go to the previous sender by
default. Is it worse that mistakes result in private replies going to
the list (big-endian) or list replies going to an individual
(little-endian)? 

Much worse when private replies go to a list.

You still have to be able to remember what you are
doing. What _I_ want is a menu item clearly labeled Reply to List.

Many mailers have one of these.  Writing one is not hard, what mailer
are you using, and is the source available?

Laura

 the sum of the first and last number is 1+n; and then divide by two.

You can do this in preschool with Cuisenaire rods.

 And then to have the students try to represent a similar problem, and
 to check their answer against the formula, and THEN to have them do a
 set of practice problems, that might be teaching.

 If the computer were able to understand the story about young Gauss,
 then we could teach it. Instead, we can use it to confirm that the
 formula seems to work (because computers can add numbers in the
 fashion that Gauss' elementary school teacher expected just as fast as
 we can apply the formula),

+/i.100

0.5 * (] * (] + 1))

 and we can show that using the formula is
 still faster for the computer than actually summing the list, but no,
 we are not teaching the computer.

I still say that even though the computer is not learning, children
writing programs have the same impact on their learning _as if_ they
were teaching.

 Perhaps if the computer were then able to, of its own volition, wonder
 what we would get if we were to sum consecutive squares, then we could
 teach it. As hard as it is to get students to wonder about things,
 it's even harder to create that state in computers.

There are theorem-proving programs, and I know of an instance in which
one was turned loose and came up with a novel proof in geometry (of a
well-known theorem, of course.) Still, one shouldn't make too much of
an isolated incident.

 -Lloyd

 On Mon, Apr 6, 2009 at 18:05, kirby urner kirby.ur...@gmail.com wrote
:
 I'm wondering what others on this list think of this non-standard use
 of teaching when talking about programming a computer.

 The authors say we're teaching the computer
 ___
 Edu-sig mailing list
 Edu-sig@python.org
 http://mail.python.org/mailman/listinfo/edu-sig




-- 
Silent Thunder 
(默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر
 ج) is my name
And Children are my nation.
The Cosmos is my dwelling place, The Truth my destination.
http://earthtreasury.net/ (Edward Mokurai Cherlin)
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


[Edu-sig] Mail features (was Re: Fwd: Do we teach computers when we write code?)

2009-04-07 Thread Edward Cherlin
On Tue, Apr 7, 2009 at 2:28 PM, Laura Creighton l...@openend.se wrote:
 In a message of Tue, 07 Apr 2009 11:09:36 PDT, Edward Cherlin writes:
There is a long-running rwar between those who think that mailing
lists should have a reply-to set to the mailing list address, and
those who think that replies should go to the previous sender by
default. Is it worse that mistakes result in private replies going to
the list (big-endian) or list replies going to an individual
(little-endian)?

 Much worse when private replies go to a list.

I'm not going to argue with you, but I know others who would. :(

You still have to be able to remember what you are
doing. What _I_ want is a menu item clearly labeled Reply to List.

 Many mailers have one of these.  Writing one is not hard, what mailer
 are you using, and is the source available?

Gmail. No, source is not available. They do accept feature requests at

http://mail.google.com/support/bin/static.py?page=suggestions.cs

Once in a while I see that some feature I wanted made it in.

 Laura

Of course the mail software can't help you remember when to change the
subject line.
-- 
Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
And Children are my nation.
The Cosmos is my dwelling place, The Truth my destination.
http://earthtreasury.org/worknet (Edward Mokurai Cherlin)
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Mail features (was Re: Fwd: Do we teach computers when we write code?)

2009-04-07 Thread kirby urner
 Gmail. No, source is not available. They do accept feature requests at

 http://mail.google.com/support/bin/static.py?page=suggestions.cs

 Once in a while I see that some feature I wanted made it in.

 Laura

 Of course the mail software can't help you remember when to change the
 subject line.

How would Reply to List differ from Reply to All, which gmail has?

Seems like you'd have to be able to pick out a list from all the
others, which means persisting a list of lists, which may be more
trouble than it's worth?

I think just posting to the list is often sufficient, so if others
reply, it goes to the list also.  No need to CC anyone you already
know is on the list maybe?

Anyway, this gets in the realm of to each her own i.e. not my place
to micromanage the habits of others, just giving a few cents worth.

Kirby

 --
 Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
 And Children are my nation.
 The Cosmos is my dwelling place, The Truth my destination.
 http://earthtreasury.org/worknet (Edward Mokurai Cherlin)
 ___
 Edu-sig mailing list
 Edu-sig@python.org
 http://mail.python.org/mailman/listinfo/edu-sig

___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Mail features (was Re: Fwd: Do we teach computers when we write code?)

2009-04-07 Thread Edward Cherlin
On Tue, Apr 7, 2009 at 3:43 PM, kirby urner kirby.ur...@gmail.com wrote:
 Gmail. No, source is not available. They do accept feature requests at

 http://mail.google.com/support/bin/static.py?page=suggestions.cs

 Once in a while I see that some feature I wanted made it in.

 Laura

 Of course the mail software can't help you remember when to change the
 subject line.

 How would Reply to List differ from Reply to All, which gmail has?

Reply to All, which I used on this message, puts you in as primary
recipient, and the list as cc:. I _could_ delete you, and move the
list address to To:, but I usually don't feel like taking the trouble.
This time I left it deliberately.

 Seems like you'd have to be able to pick out a list from all the
 others, which means persisting a list of lists, which may be more
 trouble than it's worth?

You mean if the message is crossposted to multiple lists? Well then, I
just use Reply to All.

 I think just posting to the list is often sufficient, so if others
 reply, it goes to the list also.  No need to CC anyone you already
 know is on the list maybe?

Yes, that's what I'm asking Google to let us do.

 Anyway, this gets in the realm of to each her own i.e. not my place
 to micromanage the habits of others, just giving a few cents worth.

 Kirby

 --
 Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
 And Children are my nation.
 The Cosmos is my dwelling place, The Truth my destination.
 http://earthtreasury.org/worknet (Edward Mokurai Cherlin)
 ___
 Edu-sig mailing list
 Edu-sig@python.org
 http://mail.python.org/mailman/listinfo/edu-sig

 ___
 Edu-sig mailing list
 Edu-sig@python.org
 http://mail.python.org/mailman/listinfo/edu-sig




-- 
Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
And Children are my nation.
The Cosmos is my dwelling place, The Truth my destination.
http://earthtreasury.org/worknet (Edward Mokurai Cherlin)
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Mail features (was Re: Fwd: Do we teach computers when we write code?)

2009-04-07 Thread kirby urner
 Seems like you'd have to be able to pick out a list from all the
 others, which means persisting a list of lists, which may be more
 trouble than it's worth?

 You mean if the message is crossposted to multiple lists? Well then, I
 just use Reply to All.


Oh I get it.  I didn't remember that mailing list is part of the
header, and so it'd be unambiguous what 'Reply to List' really meant.
I was thinking Gmail would somehow have to pick just the list out of
the from: part of the header, where it might be mixed with any number
of personal addresses.  Google already lets us filter on mailing list,
so replying to it and only it makes sense as an option.  Good idea.

Kirby
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Progamming advice

2009-04-07 Thread David MacQuigg
At 09:35 AM 4/7/2009 -0400, Gary Pajer wrote:

I am but a poor physicist and self-taught (out of necessity) programmer, aside 
from one course in FORTRAN in 1973.  Until this discussion I was not at all 
familiar with the terms  TDD,  unittest, design pattern, class model, state 
model, interaction model.  And thanks for the pointers to Fowler, and Dive 
Into Python.  I really do feel like I'm looking at a pile of lumber, nails, 
hammers, and saws, and being expected to build a house. My apps are getting 
complex, and seat-of-the-pants isn't working so well anymore.

Sounds like we have similar backgrounds.  You are exactly the type of 
non-programmer professional that I have in mind for the CS2 class I have been 
thinking about.  http://ece.arizona.edu/~edatools/index_classes.htm  CS majors 
have a sequence of classes to learn all about CS, with a lot of emphasis on 
tools and techniques used by professional programmers.  Non-programmers get 
only one freshman-level class in C or Java, and miss a lot of the really good 
stuff that could be distilled from the three courses taught to CS majors, stuff 
like OOP, that is helpful to an individual writing his own programs. 

I really believe we can do this in one semester without making it seem rushed 
or overwhelming.  One good design will teach the concept of design patterns.  
Most of the others are not that useful anyway.  Many of the tools only improve 
productivity if you use them all the time, and get in the way if you have to 
stop and review the manual because you were working on something else for six 
months.

Send me some examples of early versions of your programs, and I'll help make 
them into a sequence that will serve as good examples for students.  See the 
sequence OhNo.py for what I have in mind.  This example is a bit artificial, 
but perhaps some of your real-world programs could be the basis of something 
much better.

-- Dave

___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Mail features (was Re: Fwd: Do we teach computers when we write code?)

2009-04-07 Thread Laura Creighton
In a message of Tue, 07 Apr 2009 16:06:26 PDT, kirby urner writes:
 Seems like you'd have to be able to pick out a list from all the
 others, which means persisting a list of lists, which may be more
 trouble than it's worth?

 You mean if the message is crossposted to multiple lists? Well then, I
 just use Reply to All.


Oh I get it.  I didn't remember that mailing list is part of the
header, and so it'd be unambiguous what 'Reply to List' really meant.
I was thinking Gmail would somehow have to pick just the list out of
the from: part of the header, where it might be mixed with any number
of personal addresses.  Google already lets us filter on mailing list,
so replying to it and only it makes sense as an option.  Good idea.

Kirby

The other thing that makes sense as a command is 'absolutely, positively,
reply only to the from: address totally ignoring the reply-to: line'.
Then you can stop using the reply command altogether, unless you 
communicate with people who want their email to be received in a different 
account than the one where they are sending it from, and who are using 
RFC 2822, as designed, to indicate where they want incoming mail to them
to go.  These people, and I used to be one of them, are a vanishing breed
now anyway, because enough reply-to: munging lists out there have left
them high and dry.

Does Google mail have one of those?

Laura

___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Progamming advice

2009-04-07 Thread kirby urner
On Tue, Apr 7, 2009 at 7:12 PM, David MacQuigg macqu...@ece.arizona.edu wrote:
 At 09:35 AM 4/7/2009 -0400, Gary Pajer wrote:

 SNIP 

 Send me some examples of early versions of your programs, and I'll help make 
 them into a sequence that will serve as good examples for students.  See the 
 sequence OhNo.py for what I have in mind.  This example is a bit artificial, 
 but perhaps some of your real-world programs could be the basis of something 
 much better.

 -- Dave

I'm eager for Dave's proposed course (and course ware) to flourish,
especially if he continues being so generous with his PDFs etc.

So true that working non computer scientists might benefit from a
best practices course.  There should be no stigma around sharing
draft code, what liberal cultures encourage.

Lots of people stop themselves saying:  I don't want to publish code
others might criticize.  But that's the whole point:  flag the code as
a work in progress and invite comments, suggestions.  This is how we
learn.

As R0ml Lefkowitz points out, free as in freedom is where liberal
arts come in, with software skills becoming the new rhetoric in
some ways.

http://mybizmo.blogspot.com/2008/07/more-oscon-keynotes.html

 Random observations re scientific computing w/ Python:

The SciPy site has a lot of materials geared for the scientist needing
to get work done (yeah, some of those links are broken.

http://www.scipy.org/Topical_Software

http://www.scipy.org/wikis/topical_software/Tutorial
(long and detailed, lots of work directly in the shell which I like)

http://pypi.python.org/pypi/
is scary to me, such a hodge podge.

Anyone in the habit of using Bruce BTW?
http://pypi.python.org/pypi/bruce/3.2.1

PyMOL doesn't seem as accessible as I remember, documentation only for
subscribers:
http://pymol.sourceforge.net/

I'm out of date on Numpy but have it as a consequence of compiling
Visual Python:
http://numpy.scipy.org/
http://vpython.org/

Kirby
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


[Edu-sig] pointers to Math Forum, Chipy list

2009-04-07 Thread kirby urner
FYI, I was prolific today, some might say prolix.

Partly I'm just wanting to keep my wheelings and dealings in the open,
in the spirit of open source.

So... some lesson plans on math-teach @ Math Forum (Drexel
University), precious little Python really, more about tone, context
and perceptions (remember I'm posting for people who typically say
What's Python?):

http://mathforum.org/kb/thread.jspa?threadID=1917995tstart=0

Then, as I was mentioning to Vern off list, I'm keen to see user
groups as possibly sourcing free Python Briefings, open to the public,
Princeton Computer Center a model.

Though open, one might still invite specific groups, advertise
follow-up trainings.

I'm sharing this idea with Chipy (Chicago) as well as PPUG in Portland:

http://mail.python.org/pipermail/chicago/2009-April/005815.html

(also recruiting to edu-sig you'll see if you wanna read it)

Two other ideas from Pycon:

(a) expand booth area with poster session showing Python @ work in a
more academic format i.e. not selling a product or service so much as
educating passers by about what's up.  Sort of lightning talks meets
science fair in conception.  Steve Holden's idea.  Vern might be
interested in following up?

(b) Jeff Rush mentioned EduPycon possibility, which'd be like a
subclass of Pycon (which is sort of root) maybe meets in a college
campus instead of hotel, more academic in flavor, focusing on
teaching, pedagogy, andragogy, resources for educators?

Just wanted to get those out there while the iron is still hot as they say.

Kirby
4D
___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig


Re: [Edu-sig] Math in a Browser

2009-04-07 Thread Laura Creighton
Somebody wants something 'like matlab' but which is browser based
and all runs in a browser.  I know about http://www.livemath.com/lmplugin/
What else is out there?

Laura

___
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig