Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] Learning to Program



On Saturday 04 August 2007 12:18:32 Curt Sampson wrote:
> On Fri, 3 Aug 2007, tlug@example.com wrote:
> > Mathematics classes in Japan discourage the use of calculators; the
> > teachers really stress the importance of knowing how to do math by hand.
>
> I think you're talking about arithmetic here. When I think of "math,"
> I tend to think of symbolic manipulation, where often numbers are not
> involved at all. So that's where I was coming from when I was talking
> about doing algebra homework.

Sorry; it is a translation issue, I believe.  When I say "mathematics 
classes," I am giving a direct translation of the names of the classes in 
Japanese schools: 数学基礎, 数学I, 数学II, 数学III, 数学A, 数学B, and 数学C.
These "mathematics classes" cover topics ranging from algebra to basic 
calculus, including polynomials, vector/matrix algebra, imaginary numbers, 
limits, etc.  Wikipedia has some more details:
http://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6_(%E6%95%99%E7%A7%91)

(What a child actually studies depends on which school (s)he is in, though...)

Students study 算数 ("arithmetic") in 小学校 ("elementary school"):
http://ja.wikipedia.org/wiki/%E7%AE%97%E6%95%B0

Use of a calculator/computer is generally discouraged by teachers of all of 
the above classes, from my understanding.

> Then again, perhaps in high school I did little more than solve
> quadratics for their roots. I don't really remember.

The way that mathematics is taught, which topics are covered, and the order in 
which they are covered varies quite a bit across cultures/nations as well as 
time.  Mathematics is one of my favorite topics, so I would enjoy discussing 
this topic with anybody who is interested. ;)

> But the more important point here is that there's a big difference
> between using some software to solve the problems and writing that
> software. If you can write it, I propose you'll know and remember as
> much or more as if you simply practice the procedure a lot.

I think that a student would benefit from doing both.

Here is a concrete example that I believe will illustrate my point.  If a high 
school physics student is studying basic circuit analysis, she probably 
starts by learning now to calculate nodal voltages and currents in circuits 
that consist of solely resistors and a DC power source.  Learning the rules 
for calculating resistances of serial and parallel configurations is basic, 
and then that idea can be easily expanded to analyse ladder networks by 
breaking them down into series and parallel sub-configurations.  Then things 
get a little more complicated with bridge configurations, etc., and the 
student must learn how to do nodal or mesh analysis, in which systems of 
equations can be solved using matrices.  In solving the problems on a 
computer, it is beneficial (recommended!) to use abstraction in the form of 
functions or objects, of course, so she would solve specific networks by 
entering the resistances as arguments to a function.  Before long, she moves 
on to other electronic components that affect the flow of current in 
different ways, not to mention AC circuit analysis, in which the phase must 
also be taken into consideration.  The student's program grows from a few 
functions to a rather large library.  Yes, she fully understood how each 
function works when she wrote them, but does that necessarily mean that she 
will understand them later on (when it is time to take the final)?  Some of 
the benefits of using a computer to study these kinds of problems become 
drawbacks if they are relied on too much.

> Hmm. Teach them to use slide rules? I think that using one provides some
> serious insight into both precision and magnitude.

I have, unfortunately, never had an opportunity to play with a slide rule 
before, but I have read about them online.

The そろばん ("abacus") is not as enlightening as a slide rule, but they can also 
give some interesting insight into how the base 10 number system works.  It 
is funny, however, that the way to get good at using one is to ignore the 
mathematical properties of calculations and treat them as purely physical 
manipulations.

> Well, that's just something you have to get used to if you're a
> programmer. Potential clients of Starling keep asking to see look at our
> web sites, and it's difficult to explain that the flashy stuff you see
> is not us; we do the bits behind it.

I feel your pain, mate. :)

> Well, a function is not a difficult thing: merely a mapping of inputs to
> outputs. (Start the kids with category theory, anyone?*) And it's such a
> fundamental thing in computation and programming that it's hard to see
> how you'd get anywhere without understanding it.

Function and set theory are the foundation of pretty much every subject, not 
just computation and programming, IMHO. ;)

While I truly believe that every computer scientist should study different 
paradigms of programming, including functional, I think it is (still) 
beneficial to take a bottom-up approach so that they understand how 
everything fits together and works...

That said, we are approaching a revolution in computing after which 
understanding how everything fits together and works may no longer be 
possible.  Perhaps we should start recommending that people just go ahead and 
start with Erlang! ;)

> > Here is a Java book...
>
> Ouch! No, I would recommend going with a decent programming language
> first. If he ends up at Java after that, all fine and dandy,

I would not recommend Java either.  I just brought that book up because it is 
written like _The Little Schemer_.

> but why start someone out on crap without trying the good stuff, first?
>
> It took me many, many years to overcome starting out with piss-poor
> languages, and more than a few of them were wasted with crap like Java.
> I wouldn't wish that on anyone.

I share many of the same sentiments and have expressed similarly strong 
opinions in the past.  We have "turned out okay," however, and I have even 
known good programmers who started with BASIC.  &shudder;  I still agree with 
you, but I decided to try to be more positive and promote languages that are 
well designed without bashing others.  (That does not apply to M$ shite, of 
course, but that goes without saying.)

Similarly, I strongly believe that the use of ローマ字 (ISO-8859-1 Latin alphabet) 
to represent Japanese can permanently hinder a person's ability to learn the 
language well.  Students may have to learn it in order to recognize it when 
they come across it or type, but I really recommend avoiding any language 
book that uses it.  It is just as bad as using カタカナ to learn English.

Cheers,

Travis


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links