[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-edu
Subject:    Re: [kde-edu]: proposal
From:       Anthony Moulen <ajmoulen () alum ! mit ! edu>
Date:       2002-06-11 13:48:05
[Download RAW message or body]

On Monday 10 June 2002 15:20, Sebastian Stein wrote:
> Anthony Moulen <ajmoulen@alum.mit.edu> [020610 20:53]:
> > Why teach an outdated model only to turn around and teach the right way
> > to build applications later?
>
> Because it easier to teach.
First this isn't a good reason to teach something.  It is easier to teach 
someone to add things with their fingers, but it isn't the right thing to 
teach someone, it makes them lean on a bad model.  While structured 
programming isn't a bad model for everything, it is a bad model for what the 
majority of programmers are probably going to be interested in building.  And 
definitely the wrong model for what new programmers are going to be capable 
of building. 

> That is true, but good results are in structured language as well very
> possible. I think in this about PHP to create dynamic web pages (yes, PHP
> is hybrid, you can program in a structured and an object orientated way as
> well).
I will agree that this is true, but consider the tools you have available 
within KDE since this is part of the KDE-EDU project, you should use what 
tools you have.  You have KDevelop, it builds C++ applications.  You can 
build console apps in C but that is about the limit.  PHP, while a neat 
language, is as you said, a hybrid (as is C++), and the structure is designed 
for building web pages.  If you want to teach HTML then advanced HTML via 
javascript then PHP that would make sense.  Doesn't actually match the aim of 
the original suggestion.

> > It is also often believed that teaching non-object oriented languages
>
> That may be true, but I think you are missing some points:
>
> 1. We are talking about a program for young people, who never did some
> programming
So was I in reality.

> 2. Object orientated programming (OOP) needs a lot of abstraction. The
> theory of OOP is really complex compared to structured programming
Actually no more abstraction then teaching a structured language in reality.  
You can teach very basic objects.  And the concepts are much more simple than 
most people believe.  Young children learn by association.  Association is at 
its core object oriented.  Think of an Apple and a Pear.  What do they have 
in common? They are both fruit.  So if we were going to build a box for an 
Apple and a Pear, we would have to build a box for fruit.   It is a matter of 
bringing objects to a level that your student understands, not skipping out 
on it because you don't think they will get it. 

> 3. Kids solve their problems in a structured way. If they want to build
> a house, they put brick over brick. But they don't define first a brick and
> then inherit the brick to a new class and so on.
Actually kids do not solve problems in a structured way, they solve it in an 
associative way.  Adults solve problems in a structured way.  When a kid 
wants to build a house, they first define that they need the blocks to put it 
up.  They then duplicate over and over again the same pattern to slowly build 
up the house.  But think of it in another way, hand a child a pile of legos 
and what is one of the first thing a child tries to build with them? I would 
bet you that 8 times out of 10 (if there aren't wheels in the set) that they 
try to build a house.  That is because they associate the bricks with a 
house. 
> > As for Pascal, is there really much going on around Pascal these days?
>
> No, Pascal was created as a language to teach good structured programming.
> But if you can do Pascal, it is an easy step to get to Delphi (Kylix),
> which is OOP.

Which at the time was good, as it was the most common type of programming, now 
it isn't as useful for either reason, because there are better programming 
languages to teach this in (at least from the ability to apply what you 
learn). 


> > I will tell you this now, students learn better when they can apply what
> > they learn to real situations.
>
> Yes, this is true. But a GUI class has a lot of overhead. You can write
> really nice things with structured languages to solve some mathematical
> problems. Or to create dynamic web pages.
Dynamic web pages belong in a web programming tutorial, not in an application 
programming tutorial, or even a general programming tutorial.  The web takes 
a lot of things for granted as far as structure goes.  PHP for instance is a 
terrible first language, because you can get away with dropping a lot of 
required structure that you would find in a real language.  It is a lazy 
language and done so on purpose.  It serves a very real and good purpose, and 
does what it should very well.  And while it can allow for proper structure, 
it does not foster that structure. 


> > You teach them a language that isn't used,
>
I think you missed my point here, the point was about Pascal, not C.

> > What neat things can you do with C inside of KDE?
>
> The question is: "Do you want to give an introduction into KDE programming
> or into programming?"
And the answer to the question is yet another question, do you want to teach 
them something that they can use today, or something that they have to wait 
(and thus forget) to use when they know more? You have to grab your students 
attention and make them want more.  Build a fire under then, and send them 
out looking for more to learn.  Solving a basic math problem at a command 
line is not going to do it.  Teach them to write a little game, and you will 
have them looking for how to write a better game, then other things.  You 
have to capture their imagination. 


> > There is a reason there are objects now.
>
> There is a reason why there are different languages for different problems.
> You allways have to choose the right language for the problem.
Granted

> So again, I'm not against OOP. I really like it. But KDE programming is
> quite complex to be a good starting point. It is more for a little bit
> experienced programmers.
> If you want a app to teach the basics of programming, I think a structured
> language is much better. But yes, you cannot do very much with C in KDE.

Is KDE really that hard to learn? I am not saying teach them how to do 
everything, teach them to use the tools, and give them a good starting point 
using the wizard, then come back and explain what the parts do.  When you 
learn algebra and lines, you teach about slope, and how the slope works with 
the X to form a line.  You don't teach them calculus to derive the slope.  
You teach the basic building blocks first, then come back to explain the 
bigger picture. 

_______________________________________________
kde-edu mailing list
kde-edu@mail.kde.org
http://mail.kde.org/mailman/listinfo/kde-edu
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic