aspose file tools*
The moose likes Teachers' Lounge and the fly likes Help me justify the use of Java! Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Books » Teachers' Lounge
Bookmark "Help me justify the use of Java!" Watch "Help me justify the use of Java!" New topic
Author

Help me justify the use of Java!

Frank Carver
Sheriff

Joined: Jan 07, 1999
Posts: 6920
I'm currently locked in a "discussion" with a co-tutor as we prepare for teaching a new course from September. I'm theoretically the lead tutor for this bit of the course, but he has more experience and credibility among the staff.

The course is one unit of a BTEC National Diploma in Information Technology (unit 4 - introduction to software development, full details on pages 59-66 of this 1MB PDF) I'm suggesting Java, my colleague is suggesting QBasic (!)

I'm looking for ammunition to support my recommendation of Java. All suggestions welcome!

Thanks.


Read about me at frankcarver.me ~ Raspberry Alpha Omega ~ Frank's Punchbarrel Blog
paul wheaton
Trailboss

Joined: Dec 14, 1998
Posts: 20637
    ∞

It seems that the only professional development with BASIC these days is small programs for the microsoft platform. Java development is for small and large development on all platforms. It would seem that if one were to learn just one language, Java would be a much better choice than BASIC.

I think C would be a better pick than BASIC. I also think the PERL would be a better choice than BASIC.


permaculture Wood Burning Stoves 2.0 - 4-DVD set
Corey McGlone
Ranch Hand

Joined: Dec 20, 2001
Posts: 3271
Along the lines of what Paul has already said - the market is looking for a lot more Java developers than Basic developers. Any experience your students have with Java is going to relate more directly to the workplace than experience with Basic. Certainly, the concepts should be the same, regardless of language, but knowing the ins and outs of a widely used language is going to benefit the students.

Unfortunately, I know little about Basic. In my time in "the real world," I've been pushed to learn Java, not Basic. Honestly, I knew little of either when I came out of school (I learned a lot of C++ in college) - it's been the businessplace that has driven my education since and I can safely say that I've been more solidly driven toward Java than anything else.


SCJP Tipline, etc.
Max Habibi
town drunk
( and author)
Sheriff

Joined: Jun 27, 2002
Posts: 4118
What's the natural progressions of your curriculum? If it flows into Java, then I don't see why there's any debate at all.

M


Java Regular Expressions
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
I can't figure out why would anyone suggest a BASIC language for a course today. It's the 21st century, for god's sake. Is your "opponent" in this argument at all familiar with Java?


Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15299
    
    6

Originally posted by Lasse Koskela:
I can't figure out why would anyone suggest a BASIC language for a course today. It's the 21st century, for god's sake. Is your "opponent" in this argument at all familiar with Java?


Some people would say the same thing about C. I'm not saying anyone should use Basic to teach an intro to software development class but just because it's the 21st century does not mean we need to forget where it all came from.

Some languages, while not used for new projects, are still very good for teaching the basics of development.

As far as Frank's question/problem goes, I can't think of much beyond what has already been said. In terms of what this "deploma" (strange that it is not a degree) is about, I would think teaching the students a skill that employees are looking for when they complete the program would be more important.

It would be interesting to hear your co-tutors defense for QBasic if you could post it. Sometimes it's easier to argue something when you can see the other side's POV.


GenRocket - Experts at Building Test Data
Frank Carver
Sheriff

Joined: Jan 07, 1999
Posts: 6920
OK, to answer a few of the puzzled expressions above.

It's a "National Diploma", a qualification that's considered less than a degree. Typically offered to 17-19-year-old students as a two year course. Aimed at people who either didn't score well enough or don't like the academic approach, and don't want to take traditional pre-university subjects at this level. It's theoretically "vocational", but not tied to any particular career path. Students who complete a course like this don't usually go into "the computer business", but may end up in a job that has some aspect of computer use.

There is a later software development unit in the course, arranged by someone else, which will probably be using Visual Basic. There is also an "advanced web design" unit which will probably include some JavaScript. The specification for my unit makes specific mention of not using Visual Basic, apparently because there is the temptation to write it in a "reactive" style (attaching code snippets to graphic elements), rather than an "imperative" style (with IO, loops, if's etc.).

My "opponent"'s arguments run along the lines that Java is Object Oriented rather than procedural, and this might confuse the presentation of basic programming concepts. He also reckons QBasic will be an easier transition to Visual Basic later in the course. It seems he was also under the impression that Java does not have typed variables, which worries me that he may have other misapprehensions.

One major worry held by the overall course leader is that we need to make sure that even the less able and less motivated students (typically the ones who are mainly there because their parents will kick them out of the house to get a job if they are not at college) gain at least a minimum pass. With this in mind there is a lot of speculative discussion about what might be easier for such students to grasp. As you can imagine, all the participants have differing, entrenched, and largely unsubstantiated opinions on this.

Personally, I can't get over the feeling that it is madness to teach an obsolete language. It just doesn't feel that we would be doing the students any favours at all by convincing them that's what real programming is like.
Mark Spritzler
ranger
Sheriff

Joined: Feb 05, 2001
Posts: 17257
    
    6

Funny thing here, I actually disagree with both of you.

These students are obviously not the sharpest tool in the JavaRanch tool shed.

So it must be something that they can understand and comprehend. I don't think they can accomplish that in Java or QBasic. I think it takes too much mental awareness and smarts to be able to comprehend even a simple Hello World application in both of these languages.

Think of how long it takes to grasp proper Object oriented principles. And think of how old and archaic QBasic is. It doesn't even come with the OS anymore.

If there is a Visual Basic class that is futher down the path, then maybe a better choice would be to use MS Access as the learning tool. They can build simple applications that might mean something to them, understand basic database, create forms with Textfields and buttons, and some simple Macro programming to save the data. Then maybe go a little into VBA, which leads well into Visual Basic.

My 2 cents.

Mark


Perfect World Programming, LLC - Two Laptop Bag - Tube Organizer
How to Ask Questions the Smart Way FAQ
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15299
    
    6

Ok, this is not going to help you Frank. But after reading your description, I'm not so sure Java is the way to go. I agree with Mark that QBasic isn't either. But I don't think Access is the answer.

Have you even considered C or even C++? It's easy as long as you stay away from pointers and classes. No GUI stuff to worry about. It's the perfect langauges to learn control structures, IO, etc. IMO that is.

My 14 year old cousin wants to get into programming so this last weekend I showed him a hello world example in C, C++, and Java. He said the C++ program made the most sense to him.

As far as your real question goes, for these students, I really don't see how Java is going to be better than QBasic or vice versa. Again, just my opinion.
[ June 21, 2004: Message edited by: Gregg Bolinger ]
Barry Gaunt
Ranch Hand

Joined: Aug 03, 2002
Posts: 7729
My son Kevin (he'll be 18 soon) is just finishing the 3rd year of the Informatic Middle School Plus here in Switzerland. It's a combination between commerce and IT, and will allow immediate entry into one of the Technical High Schools (like what Einstein was at ). In the initial programming course they did a couple of lessons using QBasic and then moved through C, C++, and now they use Java for all of the programming work. QBasic was demonstrated to show how programming was done on early PCs. Java is used because of the available API infrastructure and the OO benefits.

If I had to teach programming I would choose Python. See here for some educational aspects.


Ask a Meaningful Question and HowToAskQuestionsOnJavaRanch
Getting someone to think and try something out is much more useful than just telling them the answer.
Jeroen Wenting
Ranch Hand

Joined: Oct 12, 2000
Posts: 5093
As said, neither QBasic nor Java might be appropriate.

I doubt the students are ready to grasp OO concepts, as your colleague seems to want to tell you.
QBasic has no market value at all and is a dead language so even as a hobby it's useless (last version shipped I think with DOS 6.22 about 10 years ago).

A better choice might be Pascal or C (not C++), which are procedural languages (IMO you should still know procedural well before moving towards OO but I was groomed on Pascal, Assembly and Cobol).


42
Corey McGlone
Ranch Hand

Joined: Dec 20, 2001
Posts: 3271
I tell you what, when I learned beginning programming, I learned using C++ and I thought it was excellent. Avoid pointers for a semester or so and it makes for a great learning tool that is still applicable today.

Although I've never used Python, I've heard good things about it and it might be appropriate here.

Personally, I'd avoid things like MS Access. Anything that it "half-GUI, half-code" seems like it would just cloud the issue at hand. For someone new to programming, I think such an approach would be confusing.

With Java, you can use it as a procedural language by keeping everything in one class. It would still be a little odd if you started making use of the API's and had to make calls to things like Math.Random or things of that nature. Like MS Access, I have a feeling that trying to introduce OO concepts to students too early is just going to cloud the issue - while they're trying to grasp loops or control structures, they're going to be stumbling over OO basics.

So there's my 2 cents. If I was at the table, I suppose I'd argue for C++.
Mark Spritzler
ranger
Sheriff

Joined: Feb 05, 2001
Posts: 17257
    
    6

Actually, I take back my answer. I think it should be either COBOL, FORTRAN, or just plain old punch cards.

Mark
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Help me justify the use of Java!