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 - Trevor Bentley

A comparison of Ada and Java as a foundation teaching language by Benjamin Brosgol

This article, written by Benjamin Brosgol, compares the results of teaching Java and Ada programming languages as introductions to a computer science curriculum. The primary focus is on how well the languages introduce students to fundamental aspects of programming. Brosgol's primary concern is how the languages' handling of object oriented programming affects their learnability.

A major difference that Brosgol points out between Ada and Java is how easily students with no previous programming experience can learn the languages. He argues that Java contains a large number of “forward references,” which are advanced concepts that must be used before they are understood. His major example is that Java's reliance on object oriented design requires students to make use of objects before understanding why objects are beneficial. He states that “OOP pays the highest dividends in the construction of large, complicated systems, and thus its usage in simple or small examples will not necessarily be appreciated by students.” The article quotes studies that showed object oriented languages have a much higher learning curve than procedural languages among students with little previous programming experience. In contrast, Ada does not require an understanding of object oriented programming for early lessons, though it has a less powerful and more complicated OO model than Java. This serves as an advantage to Ada in this case because students can initially focus on fundamental concepts in a procedural environment and then move into object oriented design when the basics are understood.

Additionally, Brosgol believes that Java hides too many fundamental concepts that are essential for understanding software development. Specific features that Java lacks or obscures but are available in Ada include enumeration types and pointers. Brosgol argues that Java's hiding of pointers and automatic garbage collection, although useful for experienced programmers, detract from its ability to teach programming fundamentals.

A summary of Brosgol's findings is that Java has many features that make it easier or more suitable for large scale software development than Ada, but that those same features make it a weaker language for teaching programming fundamentals.

Vishal Patel also used an article by Benjamin Brosgol that specifically addressed differences between Java and Ada. His discussion mentions that Java is completely dependent on object oriented design, whereas Ada “treats object orientation as one method not the only option.” The result is that object orientation is more consistent and safer in Java than Ada.

Links to this Page