তথ্যপ্রযুক্তি

How Harmful Is Java for New Students?

Share
Share

edmond_schonberg_phdrobert_bk_dewar_phdIf you ask someone to name the most popular programming languages of the current era, Java will likely come up first. Because Java is platform independent, companies that develop software or websites have a huge demand for people who know Java. With this global demand in mind, many universities around the world have included Java as a separate course in their four-year Honors programs like CS, CSE, CSSE, and SE. North American universities have gone a step further by teaching Java right at the beginning, in the “Introduction to Programming” courses. This is where the controversy starts. Recently, two professors from New York University, Dr. Robert and Dr. Edmond, have strongly objected to the idea of teaching Java as the first programming language…

Their main argument is that it reduces students’ programming skills. But how? According to them, Java has a massive library, allowing students to create many programs without really understanding the basics of programming. It’s somewhat like (though not everyone) how some Bangladeshi university students handle assignments: go to Wikipedia, copy, paste into Word, print it, and assignment done!

 

The two professors from New York University have made some specific complaints on this matter, which are as follows:

  1. If Java is taught first as a programming language, students become so graphics-dependent that when they move on to work with C later, they can’t really grasp it. Their opinion is that if C is taught first and then C++ or Java, students can go through the natural evolution of programming languages and their learning becomes mature. For example, in what sense does OOP encapsulate data? What is source code? How does a program actually interact with the computer’s main hardware? And so on and so forth…
  2. One of the key strengths of C is its use of pointers. If students learn Java first, they later find it quite difficult to understand pointers. Moreover, concepts like how pointers help with memory management, or how using pointers avoids unnecessary memory usage, remain unclear to them. This can even become a security issue when developing software later on.
  3. When programming is done in C, the code has to be compiled separately into machine language. Doing this and viewing the machine language files gives students a clear understanding of the entire process of programming. Although this can also be done in Java in a slightly different way, Java IDEs are so advanced that, like Microsoft Word, you can sit in a single window and simply use different classes, click the “RUN” button, and see the output right there (in most cases). There aren’t such advanced IDEs for C, since there aren’t such advanced graphics in C.
  4. C is a low-level (that is, relatively closely connected to the main hardware) language. Learning this allows students to easily understand what exactly a structured programming language is and what the fundamental differences with OOP are.

However, both professors have expressed the view that, if the fundamental ideas about programming languages are clear, a programmer can use any programming language. (There is a slogan from the early days of structured programming languages on this point: “Real programmers can write Fortran in any language.”) You just have to learn the different syntax of that language. They have also mentioned that nowadays, software companies have told them that they are not getting quality programmers. Besides, they feel that they themselves learned programming languages largely out of a sense of curiosity. This drive came only because they saw the process of solving mathematical problems in programming languages as a kind of intellectual challenge. They say, “Learning programming is difficult and hard work; those who think otherwise should not study computer science. Rather, those driven by the beauty of mathematical solutions should study this field. Suppose a student writes a program whose expected result is 53, but the output is 85. Now, if the student truly has the spirit of computer science, he or she will find the cause and solve the problem.”

 

Interestingly, most professional programmers have disagreed with the opinions of these two professors. They argue that by using Java, they are able to develop programs quickly and can do so without knowing all the ins and outs of programming languages. So, why learn all those unnecessary things? Others have said that if one has to learn C before learning OOP, then shouldn’t machine language be taught first to everyone?

 

It is worth mentioning here that many have some misconceptions about university education. A university is not a training institute. Its purpose is not to provide training but rather education—to educate people. That’s why students of computer science also have to take courses in economics, business administration, etc. Moreover, programming languages are not the core of computer science. In fact, it can be said that data structure and algorithms are the real foundation of computer science.

 

If we look at ancient educational institutions, we see strong echoes of the idea that “education is not the same as training, and the main job of a university is not market-driven knowledge.” In ancient Greek (the “Academy” established by Plato on the outskirts of Athens), science-related subjects received more emphasis than engineering.

However, some bloggers have commented that these two professors are actually heads of Ada Core, a company that develops defense-related software in the Ada programming language; so, they are making all this fuss just to increase the number of Ada users! In this age of self-interest, is that really surprising?

Sources and images: Internet

Share

7 Comments

  • I think programming should go in this way,
    1) logic, programming concept
    2) data structure, structured programming concept
    3) A structured programming language (C)
    4) OOP concept
    5) A OOP language (Java/Smalltalk). No C . coz most of the programmer writes C program in C compiler.

  • আমি ওই দুইজন অধ্যাপক এ সঙ্গে কিছুটা এক মত। কারন যেহেতু সি কে বলাহয় প্রগ্রামিং ল্যাঙ্গুজের মা সেহেতু সি না শিখলেও সি সম্পর্কে ভাল ধারনা থাকা দরকার। অনেক সময় প্রগ্রামের অনেক নিখুঁদ গোপনীয়তা রক্ষায় প্রগ্রাম ল্যাঙ্গুজের অনেক ছোট ছোট বিষয় সম্পর্কে জ্ঞান থাকা দরকার যা এ সি সম্পর্কে জ্ঞান তাকলে অনেক সহজ হয়, এটা আমার নিজেস্ব অভিজ্ঞাতা থেকে বলছি।

  • obossoi age C shika uchit, C hochhe basic eita je valo parbe tar jonno java kono bepari na. C te ACM er at least 100 problem solve kora uchit to develop the logic sence. programming e logic sence tai ashol.

  • প্রফেসর মহোদয়ের সাথে আমি ও একমত। প্রথমে সি তারপরে সি প্লাস এবং পরে জাভার উপরে শিক্ষা প্রদান করা উচিত। তাহলে শিক্ষার্থীরা প্রোগামিং সম্পর্কে সঠিক জ্ঞান লাভ করতে পারবে। কারণ প্রত্যেকটা বিষয়েরই একটা সিরিয়াল মেনটেইন করা উচিত। তা না হলে আগেরটা পরে আর পরেরটা আগে করলে শিক্ষার্থীদের কোন উপকার হবে না।

    (কোনকিছু সহজে শিক্ষা গ্রহন করার চাইতে কষ্ট করলে তার ফল ভালো হয়।)

  • I always agree C is first. but C and C are not same. Every one must need to know OOP. Only Java is the OOP not C (C has missing pure inheritance feature). In academic session every student must learn data structure and logic analysis. thats enough. But when you are in practical u have to use some built in library. there is no need to create a print program by C or Assembly language.

    So every one must learn JAVA or other OOP for getting job.

Leave a Reply

Your email address will not be published. Required fields are marked *

ফ্রি ইমেইল নিউজলেটারে সাবক্রাইব করে নিন। আমাদের নতুন লেখাগুলি পৌছে যাবে আপনার ইমেইল বক্সে।

বিভাগসমুহ

বিজ্ঞানী অর্গ দেশ বিদেশের বিজ্ঞানীদের সাক্ষাৎকারের মাধ্যমে তাদের জীবন ও গবেষণার গল্পগুলি নবীন প্রজন্মের কাছে পৌছে দিচ্ছে।

Contact:

biggani.org@জিমেইল.com

সম্পাদক: মোঃ মঞ্জুরুল ইসলাম

Biggani.org connects young audiences with researchers' stories and insights, cultivating a deep interest in scientific exploration.

নিয়মিত আপডেট পেতে আমাদের ইমেইল নিউজলেটার, টেলিগ্রাম, টুইটার X, WhatsApp এবং ফেসবুক -এ সাবস্ক্রাইব করে নিন।

Copyright 2024 biggani.org