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

List:       kde-edu
Subject:    Re: [kde-edu]: proposal
From:       Matthew Tedder <matthew () tedder ! com>
Date:       2002-06-17 17:55:16
[Download RAW message or body]

On Tuesday 11 June 2002 04:57 pm, Sebastian Stein wrote:
> Anthony Moulen <ajmoulen@alum.mit.edu> [020611 22:26]:
> > > 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.
>
> Could it be that this discussion is around a problem which creates big
> flame wars on every newsgroup or mailinglist? Might the problem be, my
> language is better than yours?

Yes... It sound like a suggestion that C++ is the only language that should 
be taught.  Perhaps general principles of programming should be the first 
step?  Perhaps within it, examples of different languages could be provided 
and the user can make his/her choice of what language to learn next.

In KDE, you can use a variety of languages.  These include C++ via KDevelop, 
but also a C interface, Python, and even a Perl module.  KBasic is also under 
development.

One could discuss the pros and cons and langauges such as C++ versus Python, 
but more importantly, the commonalities of programming in general.  It all 
begins with a structured base point.  The one can discuss building upon that 
with more advanced concepts.  Example order:

1.  What Programming Is
2.  Variables
  a.  Types and Scopes
  b.  Assignments
  c.  Calculations & Manipulations
  d.  Arrays and Hashes
3.  Conditional Statements
4.  Control Structures
   a.  Loops
   a.  Jumping & Labels
   b.  Functions
5.  Input/Output
   a.  Text
   b.  Files
   c.  Databases
   d.  Graphical User Interfaces
6.  Advanced Organization
   a.  Data Structures
   b.  Objects
   c.  Classes
   d.  Ineritance
7.  Selecting a Language
   
Matthew
>
> Maybe we should go ahaed and say, the language is not important. Maybe we
> should list the things which are basic to learn programming.
>
> I will try to do this. These things/terms are basic, I think:
>
>
> source code (editor, where to enter the code)
> compiler (how to translate the code -> gcc, javac)
> executeable file (how to start the program)
>
> sequence
> iteration (for, while)
> condition (if, switch)
>
> variable
> types (int, float, double ...)
>
> input-calculation-output principle
>
> comments
>
> function
> return value
> parameter
> prototype
>
> and if you want to add OOP:
>
> class
> constructor/destructor
> data members
> functional class members
> object/instance
>
> and to go further:
>
> inherit
> copy constructor
> operator overloading (+=, +, -)
> friends (<<, >>)
> static data members
> static functions
>
> pointer, reference
> dynamic memory management (new, delete, delete[])
> complex data structures (struct, union, array ...)
>
> I think I have missed a lot. So do you really see a way to teach such
> things with an app? There must be interaction. The pupil must enter some
> code fractions and the program has to check it. But more, it has to explain
> what is wrong and why. I don't know if this can be solved. I think there
> might be a reason why it is very good to have a person you can talk to
> while you try to learn programming. And in most cases I think it is hard
> for this person to help you, so how should a program do this?
>
> Steinchen

-- 
Anything that can be logically explained, can be programmed.
_______________________________________________
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