[Lazarus] Teaching Pascal at College

Lars noreply at z505.com
Fri Oct 21 11:28:50 CEST 2016


On Tue, October 18, 2016 7:23 am, Jürgen Hestermann via Lazarus wrote:
> Am 2016-10-18 um 12:53 schrieb Mehmet Erol Sanliturk via Lazarus:
>
>> Order of teaching is not so critical : As you say , write a GUI program
>> for events : Say : "Now it is necessary to define what will be done for
>> the events ? ... Its way is the following : Write your program parts in
>> that way ..."
>
> IMO the order is extremly important!
> If you start with the fundamental informations
> (how does the processor work in general,
> how are variables stored (stack/heap/etc.), what does the processor do in
> loops, etc.) then this information is remembered very well because
> everybody can imagine what goes on in general. You can *predict* what will
> (should) happen in your program.
>


Hmmm.. I'm not so sure learning about the internals of the CPU is so good.
IMO that is computer science, whereas programming is computing science.

I was interested in how computers physically worked, before I became a
programmer. One of the worst things a programmer can do is think in CPU
cycles because it's a low level detail that has nothing to do with the
program as a mathematical construct.

For example in mathematics when you write equations on paper do you ever
think about how the electronic calculator works, to process these numbers,
when you punch the math into your calculator? The last thing a mathematics
student knows about, is the internal architechture of the Casio calculator
he is using, because he's more focused on the maths... which IMO is good.
To now know anything, and be completely ignorant, of the casio calculator
and how it processes your equations and additions and subtractions, is a
very good thing.

On the other hand, someone interested in physics, and computer science
(not computing science) will benefit greatly from learning how the cpu
works, memory, etc.  Every time they said they were offering "computer
science" courses, as a child I always wondered... is that how the
capacitors, resistors, and cpu chips work? I never once could possibly
grasp how programming a computer had anything to do with the computer
itself. As programming can be done on paper and never touch a computer,
and still be a a program that is understandable even if it doesn't run on
any physical system.

I've been very skeptical of any programmer who immediately converts his
program to assembly instructions. I can see how it is useful for
debugging, and creating a compiler on hardware, but it completely ruins
the abstract program concept. It's equivalent of someone writing a
beautiful mathematics paper, and then converting it to his casio
calculator instruction set. A mathematician would never do such a thing as
he couldn't care less about the internals of his casio calculator. So I
don't understand why so many programmers are obsessed with low level
details. I guess I just find abstract la la land a better place to be in,
where there is even a potential for a program to be proven correct and
never debugged.


>
> If you just start with clicking you do not know *why* it works
> (if it works) nor do you know *why* it does not work (if it does not do
> so). They would always need someone at hand with exprience to tell them
> how to continue. This can be very frustrating for studends.
>
> Therefore I would always present at least a rough overview about
> procedural programming before starting with objects and events. In the
> end, the latter is still processed in a procedural manner which every
> programmer should know.
>
>
>> My application was like the following ( as a very simple example ) :
>> Pose a problem "Display your name ."
>> After this is done :
>> "Display your name 10 times ."
>> The students were not able to write their programs . Then , solution was
>>  "You should use a loop ."
>> "A loop is defined in the following ways : ... "
>> Such an approach is used frequently in Mathematics text books :
>> Subject text .
>> Problems ..
>> Last problems were "Unsolvable" with the above text .
>> Solution :
>> "Read the next chapter ..."
>> Such approaches are "the Art of Teaching" ...
>>
>
> IMO this "approach" has a severe drawback:
> The students do not get an overall picture of what
> *can* be done and *how* it can be done.
> If they do not know about loops how should they
> know that they exist? They would need to read *everything* that is
> available and hope to find something helpful. That is very frustrating and
> can lead to suboptimal solutions because they get tired of reading yet
> another chapter and instead use something else (like copying the code in
> the editor 10 times).
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus-ide.org
> http://lists.lazarus-ide.org/listinfo/lazarus
>
>



More information about the Lazarus mailing list