We have been approached by Curriculum advisors for IT at the Western
Cape Education Department to present the benefits of Python as the
language taught at School's nationally.
At the moment Western Cape, KZN and two others teach Java whilst Gauteng
and 4 others teach Delphi. However, the education department wants a
common language to be taught. Python is one option they're looking at,
however they need to convince the Delphi provinces.
We need to provide reasons why teaching Python as a first programming
language is easier and better than Delphi. We also need to demonstrate
some of the IDE's available (for Windows). Here we need a lightweight
easy to use program, as well as one that provides "Drag and Drop" GUI
creation. Another aspect that needs to be addressed is database
connectivity with MS Access.
If you can think of any reasons why Python is better than Delphi, or if
you have experience with any particularly good Python IDE's, please feel
free to contribute at http://ietherpad.com/5V44WqKKhT
Kind Regards
Robert Ketteringham
UCT Algorithm Circle
That's a pity; Pascal is a fantastic teaching language!
Regards
Stéfan
2010/5/25 Stéfan van der Walt <sjvd...@gmail.com>:
As a Delphi programmer myself, I thought that I's like to give my
perspective. There is no doubt in my mind that Python is the best
programming language to learn how to quickly start programming.
On 25 May 2010 13:59, Johan Venter <a.johan...@gmail.com> wrote:
>
> Hi
>
>
> I taught computer studies to Grade 10, 11 & 12 a few years back and have since been a full time Python/Perl programmer, so I thought I'd weigh in.
>
> I have no doubt that Python is the right choice, especially for introductory level programming. There is one caveat though which I'll mention later.
I fully agree.
>
> My reasons for saying Python blows the other choices out of the water is as follows:
>
> 1) The python interpreter. I sincerely believe there is no better way to get kids excited about programming than by letting them loose in the interpreter. It builds confidence since they are immediately getting stuff to work. As far as I'm concerned confidence is the most important thing for learning programming. This brings me to ...
Amen: Python was designed from the beginning to help non-programmers
(especially scientists) to get programming as soon as possible.
>
>
> 2) Java's verbose syntax sucks (as an introductory language). I have seen the faces of kids go from excited to terrified (OK, I'm exaggerating a little, but only a little) when I wrote out a simple Java "Hello World" on the board on day one. Once they see "public static void main" or "System.out.println" they believe programming is akin to maths and the same fears/misconceptions bubbles up. And from then on it's an uphill battle. This brings me to ...
THIS is my greatest single problem with Java. Simple things should be
simple IMHO. Delphi is also better than Java in this regard.
>
>
> 3) Python's awesome syntax. There is no "code fluff" to learn, it really is like coding in pseudo code. Data structures like Arrays and dictionaries (hashes) are simple, easy to explain and intuitive to work with. Forced indentation makes code easy to read and understandable. It's an interpreted language, so no compiling or need for a heavy weight IDE. Which brings me to...
Agree. Even better than Delphi.
>
>
> 4) Ease of use. All you need is a text editor and to have python installed, and your off. It comes with batteries included :D
This is pretty much true of Delphi as well (the text editor is even
included in the IDE : p).
>
>
> There are plenty of free/open source IDEs, tools & tutorials for Python out there. From lightweight Editor-Interpreters (Python Genie, I think one is called ?) to full blown IDEs (Eric).
Lazarus (with Free Pascal) is also open source and mostly source
compatible with Delphi. Furthermore, it runs and compiles on different
platforms (Linux, Windows). The greatest drawback of Lazarus is that
it is not as easy to install as well as compiling slow compared to
Delphi proper (still quicker than C++).
>
> The caveat:
> AFAIK Python does not have a native "drag & drop" programming "interface". I know QT (QTdesigner) has some cool tools, and it should be sufficient.
> However, I don't believe programming should be taught this way, but I'll leave that discussion for another day.
I agree that this should not be the starting place for teaching
programming. However, it is very nice to be able to create a
professional-looking program within is a short while of learning the
basics of programming. What I also liked about Delphi, is that all the
GUI code is also in Delphi and available to see what the program does.
This is in contrast to e.g. C# .NET where they try to hide the GUI
functions. I have looked at the Boa constructor "GUI designer" for
Python and compared to Delphi/Lazarus it seemed very complicated. I
would not like to use it for teaching GUI programming to beginners.
Maybe there is something better?
Another question I have about using only Python for teaching
programming: Most commercials programs I have written makes use of a
SQL (RDMS) database backend. Delphi (and Lazarus) has components for
simplifying connecting to SQL databases. I am not sure how easily this
is done from Python?
In my opinion it would be nice to start with Python and maybe from the
second year on include Delphi. I do think it is good to teach some
programming with a statically-typed language. Even though Delphi usage
is declining, it is easy to change from Delphi to C# (or other .NET
language) for GUI programming. Learning Delphi will still not be a
waste of time IMHO.
Regards
Chavoux
SQLAlchemy, SQLObject, PEP 249, Python comes with SQLite built-in.
Schiavo
Simon
We gave them a copy of this book as well as byte of python, and dive
into python to get themselves familiar with the language. So they can
pick these things up if they read it.
We showed them SQLite as an alternative to MS Access if they are
willing to switch, which is unlikely. We also showed them some options
should they stick with MS Access. They seemed stuck on the DB browser,
which SQLite has one but we were not experienced with its
capabilities. So we'll see what they think.
On the contrary, they are actually thinking more of the other way
around. Using a GUI-oriented language to get them hooked and *then*
move to Python to cover them core bits. They're doing a trial course
in scratch to see if this is applicable for the first 6 months, which
we were a bit anti because we think they will be too old.
--
I'd push that up to 13 years as well, but fully agree it's not for
grade 10s (15/16 years) and we told them so.
Correct. They don't care much about the market needs. However, it does
add an additional punch for Python. Also, they say the reason they
won't teach Pascal is because it is no longer supported. /me thinks we
should burn the building from which Delphi is developed to solve the
problem. :P
Keegan
As for the stronger students, they aren't taking them much into
consideration. Rightly so IMHO.
Marco