View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Discussion 1 - Travis Shepherd

Please read this article before continuing:

Enhancing the Introductory Computer Science Curriculum: C++ or Java? - Andrei Irimia
http://gtel.gatech.edu:2111/citation.cfm?id=775370&coll=Portal&dl=ACM&CFID=53750126&CFTOKEN=64127492

The main point of this article is the search for an ideal programming language to use in introductory computer science courses at the university level. Specifically, the article focuses on the C++ and Java languages, providing background on the reasoning behind historical language choices and comparisons between C++ and Java based on that reasoning.

Historically, introductory languages have been chosen based on a few simple factors: ease of use, conduciveness to teaching concepts, and prevalence in the outside world. Although both C++ and Java are widely used today in the real world, the languages are vastly different in the other two categories. C++ was created as an extension to C, a procedural language. As an extension, it needed to maintain backwards compatability with its original language while adding functionality. This causes some bizarre syntax to arise creating confusion for even more experienced programmers. As an introductory language, C++ falls short in being easy to read without prior knowledge of the language. Java, on the other hand, follows a very strict structure and is entirely object oriented. This allows for complicated programs to be written using a uniform syntax that is easily readable and follows the natural world in how objects interact with one another. For a beginning programmer, there is a strong relation between programming and real life; Java guides the programmer into the programming world with this familiar feel, making sure concepts are understood rather than wasting valuable time simply sifting through syntax.

Programming in C++ can be a nightmare when compared with Java. Even if you know exactly what you want to do in C++, implementing it can be a pain while trying to figure out what keywords you need to use in the appropriate context. More thought goes into the specifics of the language than goes into the concepts being taught. Java allows complicated concepts to be demonstrated in a concrete, logical manner. This removes an additional level of complexity from the problem, allowing the programmer to focus on what he's doing, rather than how he's doing it.

Jeff Watson's discussion, although not directly comparing C++ and Java, comes to a consensus that ease of use is highly important in choosing an introductory language. Sun's Java paradigm (and similarly Microsoft's C#) comes prepackaged with many reusable classes and language syntax that is intuitive to use once one learns the basics. This ease of use allows much more time to be spent on core computer science concepts rather than on language specifics.

Links to this Page