Do we have educational IDEs?

J

Johnny Storm

hiwa said:
I have seen number of scenes where IDEs are nothing but serious
stumbling blocks for Java programming beginners. I think that is
because, basically, IDE is designed as a tool for professional,
not a learning aid.

But, if their main career tool should be an IDE when they became
a young professional, I feel IDEs with some educational cares
implemented should be preferred to a plain editor and command
line compiling cycles.

What is your opinion about this? And, do we already have IDEs
for educational purposes?

DrJava, the same people who do DrScheme and DrPython.

Johnny
 
T

Thomas G. Marshall

David Segall coughed up:
"Thomas G. Marshall"

[snip]
Actually, I've been mystified by eclipse since its very beginning.
So popular has this thing been that I've had to force myself to use
it to see if there really is something that I was missing. I've
hated it from the beginning till now, and every stinking day in
between, but am so afraid that I must be missing something that I
still use /only/ either it or a non-IDE vi-javac-java-repeat cycle.
I have to say that in all this time, and I've used many different
IDE's over the years, that eclipse is the least friendly and least
intuitive of the lot.

What I've discovered though is that when I raise such complaints,
even with complete examples as to why I find it hard to understand
(not just over usenet---conversationally as well), I am often met
with a large emotional response.

Eclipse, has somehow won over the /hearts/ of the engineers using it.
I agree, but then I feel exactly the same way about vi.


Funny, I have no such feeling about vi. I do have almost *PRECISELY* the
same feeling about emacs. That was an editor I just could not get
"comfortable" with. Tried---then gave up and vi'ed everything (and saved my
left pinky from destruction, from what others have told me).

And now that I think about it, I had very similar complaints with emacs 20
years ago that I have now with Eclipse. Emacs was essentially a /tower/ of
rogue features.
 
M

Michael I

Patricia Shanahan said:
Thomas Weidenfeller wrote:
...
I am one of these people [who] deeply believe
that people should learn the basics. This includes
handling an editor, a compiler and some build
files. I deeply mistrust "programmers" who can't
even find a compiler command line switch.
...

The problem with this is deciding the limits of "the
basics". For example, you don't include assembly
language programming. Why not? It certainly
contributes to a deeper understanding of
programming than writing only in a high level
language.

Plug board wiring, keypunch machines and card
sorters. If that was good enough for Grace Hopper
to learn on, it ought'a be good enough for you!

;-)
 
D

David Segall

"Thomas G. Marshall"
David Segall coughed up:
"Thomas G. Marshall"

[snip]
Actually, I've been mystified by eclipse since its very beginning.
So popular has this thing been that I've had to force myself to use
it to see if there really is something that I was missing. I've
hated it from the beginning till now, and every stinking day in
between, but am so afraid that I must be missing something that I
still use /only/ either it or a non-IDE vi-javac-java-repeat cycle.
I have to say that in all this time, and I've used many different
IDE's over the years, that eclipse is the least friendly and least
intuitive of the lot.

What I've discovered though is that when I raise such complaints,
even with complete examples as to why I find it hard to understand
(not just over usenet---conversationally as well), I am often met
with a large emotional response.

Eclipse, has somehow won over the /hearts/ of the engineers using it.
I agree, but then I feel exactly the same way about vi.


Funny, I have no such feeling about vi. I do have almost *PRECISELY* the
same feeling about emacs. That was an editor I just could not get
"comfortable" with. Tried---then gave up and vi'ed everything (and saved my
left pinky from destruction, from what others have told me).

And now that I think about it, I had very similar complaints with emacs 20
years ago that I have now with Eclipse. Emacs was essentially a /tower/ of
rogue features.
 
M

mik

Thomas said:
I am one of these people you deeply believe that people should learn the
basics. This includes handling an editor, a compiler and some build
files. I deeply mistrust "programmers" who can't even find a compiler
command line switch.

It is for the same reason I don't trust craftsmen who don't know how to
handle basic tools of their trade. My car doesn't get serviced by
someone who can't handle a screwdriver but does everything exclusively
with an air wrench, does yours?

What you say is true. However, it misses the point.

When talking about educational IDEs, the issue is what you should see
first when you start out. It is not about the complete set of skills
that you should aquire before you are finished.

I would also hope that every professional programmer knows several
different languages from different paradigms. Does that mean that we
have to teach them several languages from different paradigms all from
the start?

Education is very much about deciding how and in what order to teach
things. That's the harder question than the "what".

Educational theory favours teaching the important "big ideas" first,
and filling in the details later.

"Objects" is a big idea. "Command line switch" is a detail.

If I'm an employer looking for a Java programmer, and I have one
candidate who understands objects, but does not know Java's command
line switches (maybe because he's only done C++ or Smalltalk or
Eiffel), that might be okay. If someone knew all the command line
switches backwards, but doesn't understand objects, there's no way I
would let him anywhere near my code.

When we talk about educational IDEs, we talk not about what you should
learn in total, but what you should learn /first/.

Regards,

Michael
 
H

hiwa

Johnny said:
DrJava, the same people who do DrScheme and DrPython.

Johnny
What do you think are the nice features of DrJava?
------------------

BlueJ is the number one vote on this thread. But when I tried it, it did
hang on a simple console program that does a lengthy System.out output.
Not only did it hang, all of their windows became utter garbage on the
screen. The program is normal when it is run from terminal java command.
 
I

IchBin

hiwa said:
Johnny Storm wrote:



What do you think are the nice features of DrJava?
------------------

BlueJ is the number one vote on this thread. But when I tried it, it did
hang on a simple console program that does a lengthy System.out output.
Not only did it hang, all of their windows became utter garbage on the
screen. The program is normal when it is run from terminal java command.
I normally use Eclipse and keep up on Netbeans and JDeveloper but I am a
professional. Their is another beginner IDE called JGRASP. I would
recommend you try that one.

http://www.jgrasp.org/index.html

jGRASP is a lightweight development environment, created specifically to
provide automatic generation of software visualizations for the purpose
of improving the comprehensibility of software. jGRASP is implemented in
Java, and runs on all platforms with a Java Virtual Machine (Java
version 1.3 or higher). jGRASP produces CSD diagrams for Java, C, C++,
Objective-C, Ada, and VHDL; CPG diagrams for Java and Ada; UML diagrams
for Java; and has an integrated debugger and workbench for Java.

You can always use UltraEdit or TextPad to build and run your java
programs.
--


Thanks in Advance...
IchBin, Pocono Lake, Pa, USA
__________________________________________________________________________

'The meeting of two personalities is like the contact of two chemical
substances:
if there is any reaction, both are transformed.'
- Carl Gustav Jung, (1875-1961), psychiatrist and psychologist
 
C

Chris Uppal

hiwa said:
What do you think are the nice features of DrJava?

It seems fairly nice, at least that's my impression based on playing with it
for a few minutes. The integrated DynamicJava interpreter is a very welcome
feature. The absence of masses of useless/irrelevant "features" is also
welcome. I don't know how usable it would turn out to be in the long run; at
first it seemed as if it might make a suitable environment for my own use (I
dislike complication, and DrJava is pleasantly simple), but there are a couple
of minor (mis)-features that make it unusable for me (it won't allow hard-tabs,
and there doesn't seem to be any way to persuade it that my Java files have a
..java extension -- not .jd2).

As an IDE intended for educational use, I'd say that it's emphasis is
completely different from BlueJ's. It is intended to be an IDE that can be
used in the classroom, rather than being a tool for teaching. It's main design
principle appears to be that it shouldn't get in the way of the student who is
learning Java[*], rather than actively attempting to exhibit and encourage OO
structures and thinking.

([*] Though the Java interpreter would definitely have an important role in
teaching/learning -- just as it would have in day-to-day use by a fully-fledged
Java programmer.)

BlueJ is the number one vote on this thread. But when I tried it, it did
hang on a simple console program that does a lengthy System.out output.

BlueJ is intended for /teaching and learning/, with a strong emphasis on
teaching and learning OO. Writing long output to <stdout> is not a good way to
learn OO (it's likely to be a very /bad/ way to learn OO) so it's unlikely that
its designers considered that to be an important "use-case".

-- chris
 
T

Thomas G. Marshall

Steve Reeves coughed up:
I'm learning Java2 using JCreator (www.jcreator.com)

The LE version is free, written in C++ and so is responsive. It's
nice easy and straightforward - just what I need when I'm learning.

I did download the netBeans things initially - had no idea what I was
doing - scared me to death.


:) lol. Welcome to the world of applications that violate the law of least
surprise.

I don't know much about netBeans honestly, but I would suggest that you stay
*far* away from eclipse for the time being.
 
T

Thomas G. Marshall

Patricia Shanahan coughed up:
Thomas Weidenfeller wrote:
...
...

The problem with this is deciding the limits of "the
basics". For example, you don't include assembly language
programming. Why not? It certainly contributes to a deeper
understanding of programming than writing only in a high
level language.

What are your criteria for selecting "the basics"?

Patricia

Assembler programming on a no-frills 8-bit machine like the 6502. That will
teach you not to gobble up memory unnecessarily, and to worry about how much
time every little bit of your code takes.
 
T

Thomas G. Marshall

Chris Uppal coughed up:
It seems fairly nice, at least that's my impression based on playing
with it for a few minutes. The integrated DynamicJava interpreter is
a very welcome feature. The absence of masses of useless/irrelevant
"features" is also welcome. I don't know how usable it would turn
out to be in the long run; at first it seemed as if it might make a
suitable environment for my own use (I dislike complication, and
DrJava is pleasantly simple), but there are a couple of minor
(mis)-features that make it unusable for me (it won't allow
hard-tabs,


I like it already... ;)

Hard-tabs should be outlawed....


....[rip]...




--
Having a dog that is a purebred does not qualify it for breeding. Dogs
need to have several generations of clearances for various illnesses
before being bred. If you are breeding dogs without taking care as to
the genetic quality of the dog (again, being purebred is *not* enough),
you are what is known as a "backyard breeder" and are part of the
problem. Most of the congenital problems of present day dogs are
traceable directly to backyard breeding. Spay or neuter your pet
responsibly, and don't just think that you're somehow the exception and
can breed a dog without taking the care described.
 
J

Justin M. Goldberg

Thomas said:
Chris Uppal coughed up:

It is also huge, confusing, full of "advanced" features, and is

completely lacking in features that would help anyone to learn (with
the arguable exception of auto-completion). IMO it is not even
/slightly/ suitable for beginners[*].

RIght---not even slightly so. You left out the fact that it is a quickly
moving target to boot, but that by itself is not a sin.

Actually, I've been mystified by eclipse since its very beginning. So
popular has this thing been that I've had to force myself to use it to see
if there really is something that I was missing. I've hated it from the
beginning till now, and every stinking day in between, but am so afraid that
I must be missing something that I still use /only/ either it or a non-IDE
vi-javac-java-repeat cycle. I have to say that in all this time, and I've
used many different IDE's over the years, that eclipse is the least friendly
and least intuitive of the lot.


Eclipse, has somehow won over the /hearts/ of the engineers using it.
Being a [somewhat] noob to Java2 (with past experience in other OO
languages, however), I have thus far found Eclipse to be quite useful.
Of course, I started with the cmd line approach as all beginners should,
I believe, but naturally I reached the point of frustration with the
switching windows, typing multiple commands, etc. I needed something
quick and *easier* than all the bs with a cmd line. Surely I'm not
aware of all the "features" of Eclipse, nor am I sure I ever will be,
but obviously I would choose the quick integrated approach over the
tedious cmd line. But maybe that's just me...
 
J

Josef Garvi

Justin said:
quick and *easier* than all the bs with a cmd line. Surely I'm not
aware of all the "features" of Eclipse, nor am I sure I ever will be,
but obviously I would choose the quick integrated approach over the
tedious cmd line. But maybe that's just me...

No, I jumped directly to IDEs as well - never even started with the cmd line.

--
Josef Garvi

"Reversing desertification through drought tolerant trees"
http://www.eden-foundation.org/

new income - better environment - more food - less poverty
 
D

Dale King

Thomas said:
Actually, I've been mystified by eclipse since its very beginning. So
popular has this thing been that I've had to force myself to use it to see
if there really is something that I was missing. I've hated it from the
beginning till now, and every stinking day in between, but am so afraid that
I must be missing something that I still use /only/ either it or a non-IDE
vi-javac-java-repeat cycle. I have to say that in all this time, and I've
used many different IDE's over the years, that eclipse is the least friendly
and least intuitive of the lot.

And I have been equally mystified by those that don't like Eclipse. It
is a great IDE and one that I couldn;t live without. I have heard that
IntelliJ is slightly better, but not significantly enough to warrant the
price.

But I must say that I do not do J2EE development so can't speak to that.
But even then it is certainly better than the command line tools.
What I've discovered though is that when I raise such complaints, even with
complete examples as to why I find it hard to understand (not just over
usenet---conversationally as well), I am often met with a large emotional
response.

Eclipse, has somehow won over the /hearts/ of the engineers using it.

With very good reason.
 
D

Dale King

Personally, I favor a simple text editor like JEdit and the command
line
for novices.

Very bad idea. Using the command line tools requires you to understand
concepts that you don't have the proper frame of reference to understand
until you get a good footing in the language. Try explaining what a
class path is when the person doesn't even understand what a class is.
Everyone should learn the command line tools, BUT not until you know the
language.

They also make the statement that using an IDE requires learning the IDE
on top of the language. Well the fallacy here is the notion that the
command line tools are not a development environment. They are a DE as
much as an IDE and reauire more learning than something like BlueJ.

Many who advocate command line tools actually believe that the command
line flags are part of the language. Quoting John Bollinger from a
couple of months ago, "IDEs do a good job of hiding many of the nuts and
bolts of language usage". That is incorrect. The command line tools are
not part of the language. I don't see them defined in the JLS. Are you
using a different language if you compile with jikes instead. The
language is what is in the compilation units. I know of no IDE that
hides any of the language (unless you want to count code folding).

The other crucial part that you leave out with your command line tools
is a decent debugger, which is a valuable tool for a newbie to be able
to step through the code to see what happens.
For an educational IDE, take a look at Dr. Java or BlueJ.

BlueJ is definitely the right choice for learning the language.
 
G

googmeister

Dale said:
Very bad idea. Using the command line tools requires you to understand
concepts that you don't have the proper frame of reference to understand
until you get a good footing in the language.

Put the file in the current directory and type.

% javac HelloWorld.java
% java HelloWorld

Could you clarify why this is such a bad idea? How is this conceptually
more difficult than using an IDE?
They also make the statement [snipped]

Many who advocate command line tools
[snipped]

I didn't advocate such things. If anything, I'm arguing for *less*
tools, projects, and cruft for novices to sift through.
The other crucial part that you leave out with your command line tools
is a decent debugger, which is a valuable tool for a newbie to be able
to step through the code to see what happens.

I agree a debugger is a useful tool, but it is another layer of
abstraction.
When starting out, System.out.println() can take you pretty far.
Eventually
students should learn higher level tools, but my preference is to defer
it
until after they've learned a little programming. I certainly don't
claim
this is the only right way to do it, just one that has worked extremely
well in my experience.
BlueJ is definitely the right choice for learning the language.

As I said, BlueJ is fine choice for some folks (especially if the focus
is OOP). Whether it's "definitely the right choice" depends on the
context. A basic text editor and command line are easy to explain,
easy to learn, and are skills that are, for the most part,
programming language independent.
 
B

Bill Tschumy

The other crucial part that you leave out with your command line tools
is a decent debugger, which is a valuable tool for a newbie to be able
to step through the code to see what happens.

There are some educators that feel using a debugger can be detrimental to
learning good programming techniques in school. Here is what one very
respected author has to say.


You might also take a look at Jurtle, my educational IDE. The tutorial is
designed more for independent study rather than classroom use, but many
teachers are using the IDE (and its built-in Turtle Graphics) in the
classroom.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,175
Latest member
Vinay Kumar_ Nevatia
Top