[Edu-sig] inspecting a special world: the computer

L. Humbert humbert@hagen.de
Sat, 5 Feb 2000 12:43:19 +0100


Hi,

please excuse my english, I learned it at school many years ago (;-

Let me introduce myself:
I'm a teacher in informatics (this is sligthy different from CS).
Before prepared to teach informatics, I studied informatics in general.

In teaching, I began to _teach_ concepts in schools using several
programming languages:
- Pascal (and not BASIC),=20
- Modula-2 (and not Pascal),=20
- I took a look at Oberon-2, but the computers in school couldn't run it=20
- Python (and not Oberon-2),
- JPython (and not Java) in secondary school (K-13) for beginners in thei=
r
11th year in school. I know, it is very late, but at this moment there is
no way to teach informatics for all students in secondary I - schools.

What do you want to teach?
--------------------------
my credo:
=09o=09Programming -- no,
=09o=09[perhaps] Solving problems -- even better,
=09o=09modelling -- that's quite good, I think.

case InSeNsItIvE? -- No!
----------------------
In my opinion the case sensitive construction is ok. - not only for me, b=
ut
for my  students, because they are teached to regulary write case-sensiti=
ve
in my country.
I never had problems with this in the beginning courses, the 2nd reason m=
aybe,=20
I told them not only the difference, but the advantage of this decision.
But you have to consider: I'm a german and in my language nouns are writt=
en=20
with a first uppercase character.
So, when modelling objectoriented, the students learn how to analyse and
how to write  classes, methods and attribute (classes are nouns --> 1st
character uppercase, ...) =20
So I beg you: tell your students, that and why
this decision makes sense and  without sense, they never will be able to
understand other levels of clean abstraction.

platform dependend -- No!
--------------------------
The last years of working as teacher I had to teach young
assistent-teachers to become teachers. This way I became a look insight
other schools: different platforms, different languages different
examples, differnt curricula, ...
So, this is a must: schools need software, running on the Mac,
on Linux and of course on Win.=20
You may construct and evaluate prototypes - running only on
one platform, but if we want to go into "production", we need software,
which runs on all of the above mentioned OS.

Why JPython?
------------
I'm a teacher with low time capabilities in modelling (and implementing)
a _paedagogical_ well defined class-structure for my students.=20

Some years ago, several teachers sat down and constructed a class-library
for  teaching objectoriented concepts rather than languages. We
implemented the class structure for some Pascal-dialects, Oberon-2,
and later on Java. In the meantime, the material for teaching  this
concept is available (but it's written in german). Find some information
http://region.hagen.de/OOP/#PYTHON=20
At this location you find a link to:
=09SuM.jar (this includes all the classes you need to work)

So you are able (if you installed JPython), to test the=20
beginners example, I give at the bottom of this mail.

In the meantime, the material is published (but again: it's in German):
(Czischke1999,EDITION) =3D 1.~Ed.
(Czischke1999,PUBLISHER) =3D DruckVerlag Kettler GmbH
(Czischke1999,YEAR) =3D #1999
(Czischke1999,EDITOR) =3D {Landesinstitut f{\"u}r Schule und Weiterbildun=
g}
(Czischke1999,ADDRESS) =3D B{\"o}nen
(Czischke1999,REFTYPE) =3D book
(Czischke1999,ANNOTE) =3D ISBN 3-8165-4165-8
(Czischke1999,TITLE) =3D Von Stiften und M{\"a}usen
(Czischke1999,AUTHOR) =3D J{\"u}rgen Czischke and Georg Dick and Horst
Hildebrecht and Ludger Humbert and Werner Ueding and Klaus Wallos

My way to JPython:=20
in JPython I am able to use the SuM.jar and the students too.

1. The students work with the JPython-console interactive (on iMacs).
They learn how to import and use classes, for working on "the screen".
opening a window, drawing on it with some method-call, etc.
They are told how to "explore" a given class:
=09dir(classname)
or package:
=09dir(packagename)

2. the first classes in this package (SuM.jar) are:
Bildschirm, Tastatur, Maus, Stift [later extended to BuntStift] and some
more.
The students themself identify the components of their actual computer
environment and point out, what methods should be realized.

They are able to inspect this by looking at the classes.

The classes are handy, easy to use and so you can
concentrate on concepts instead  of syntactical constructions.

The JPython interactive environment is - for my students - the frontend
for testing.
Ok: they have to learn how to use an editor (in our special case it's
BBEdit) and to save their work.

But isn't it easy to type _and_ evaluate interactive?
Example:

=09>>> from stiftUndCo import Bildschirm
=09>>> from stiftUndCo import Stift

=09>>> meinBildschirm=3DBildschirm() # you see the window coming up

=09>>> meinStift=3DStift()

=09>>> meinStift.runter()
=09>>> meinStift.bewegeBis(320,240) # you see the line getting drawn

=09>>> meinStift.zeichneKreis(30) # ...

It's a turtle based geometry, with some more methods for absolute
placing. =20
This way students learn, how to control components in this
environment.
They learn to interactive control the scene by the mouse (class Maus) and
keyboard (class Tastatur). In this way, you teach control structures, as
they are needed.
One day they'll ask: why can't we use some color
and you have to teach that there are some more classes:=20
at first BuntStift,=20
--> here you have to explain, what subclassing is good for.
BuntStift is an extension of Stift
=2E..
I'll stop here in describing.
This is not the place to show the whole course.

In some months, I'll hope  to be able to put some material online, so you
can get it by using the URL=20
=09http://region.hagen.de/OOP/

At the moment, the material for my course is only online in the intranet =
of
my school (using a local BSCW-Server, which was writen in Python).

=09L. Humbert
=09humbert@hagen.de