
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