Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Discussion 1 - Jimmy M. Espana
For Discussion 1, I read an article entitled "A Very Quick Comparison of Popular Languages for Teaching Computer Programming" by Patrick Jordan; this article can be found at the following URL: http://www.ariel.com.au/a/teaching-programming.html
In the article, "A Very Quick Comparison of Popular Languages for Teaching Computer Programming", Patrick Jordan attempts to answer the question of "which programming language should be used to teach beginners"; that is, individuals that are new to the computer programming world. Patrick Jordan compared the programming languages BASIC, C, Java, and Python by writing a "very simple program", in all of them, that would read in two numbers from the user, add them together, and print out the result. In performing this comparison, Patrick Jordan's interest were to note how long it took to write and debug the code, and how many things a student needed to understand in order to write this code. What is meant by "things that a student would need to understand in order to write this code", are the concepts of the language, the syntax of the language, and the rules of the language. Patrick Jordan mentions that the "times given to write the code are obviously not meant to be representative of the time required by a student," but he believes that they give a roughly accurate measure of comparison. Patrick Jordan makes note that he is reasonably skilled (1-5 years professional experience) in each language, and believes he isn't being unreasonably biased.
In the programming language BASIC, writing the code and debugging took about 15 seconds. There were only five things that a student would have to know; in order to carry out this program in BASIC. Patrick Jordan resolves that BASIC is a very easy language to learn for beginners, but it is "an old, poorly designed language, lacking in almost every modern feature". Patrick Jordan says that Visual BASIC is a great improvement over BASIC, but it is not appropriate, he believes, to teach a "single-platform proprietary language". In the programming language C, writing the code and debugging took about three minutes, and the amount of things that a student would have to know was fourteen. Patrick Jordan indicates that C is a major and very important language, but is a terrible language to teach beginners because of its complexity; too much C has to be explained, leaving less time for explaining programming. In the programming language Java, writing the code and debugging took about 19 minutes, and the things that a student would have to understand was twenty one. Patrick Jordan acknowledges that Java is a "must teach" language for its "robust platform Object Oriented development", and for its extensive and highly evolved set of class libraries. Java enforces Object Orientation, exception checking and strict typing, which is good for "a group of programmers to robustly create large systems, but for small problems (such as those faced in introductory programming classes) these things become nothing more than a complicated, time-sucking burden". In the programming language Python, writing the code and debugging took about a minute, and the amount of things a student needed to know was six. Patrick Jordan believes that Python is the best language to teach beginners because it requires less time, less lines of code, and less concepts to be taught to reach a given goal. He says that Python enforces good programming style, Object Oriented is available but isn't enforced, and is cross platform and has a powerful set of libraries.
Patrick Jordan concludes that C and Java are important languages because of the concepts they embody, and for the classes of problems they solve. He indicates that students must be given a thorough grounding in these languages. However, C and Java do not form a "sufficient arsenal" for the professional programmer. A good "scripting language", like Python, is a must. Patrick Jordan believes that C and Java have a "lot of overhead and other impediments" that take a lot of the pleasure out, and make both "the student's and the teacher's jobs more difficult than they ought to be". Python, on the other hand, is the ideal language to teach beginners because of the many advantages it has over the other languages. Programming in "Python is fun! Fun and frequent success breed confidence and interest in the student, who is then better placed to continue learning to program".
Now, I will relate my description to the Discussion 1 of G. Stepanov ; which can be found here Discussion 1 - G. Stepanov. G. Stepanov's description is very similar to mine, in that, both are about teaching Object Oriented Programming. Both our authors, Patrick Jordan and Michael Kölling, criticizes Java and C for being too lengthy and complex; both these languages require that syntax be extensively cover along with the concepts and rules of the language. Besides the fact that our authors compared different programming languages (except for C and Java), Michael Kölling didn't suggest which programming language is best to teach Object Oriented Programming; instead, he complained about the difficulty of teaching an Object Oriented language, unlike Patrick Jordan who suggested Python.
Finally, I will now attempt to answer the two questions for this Discussion 1. How do these languages differ? The way these languages differ is by the concepts, the syntax, and the rules they use; as can be seen in Patrick Jordan's article "A Very Quick Comparison of Popular Languages for Teaching Computer Programming". BASIC is a very simple language, but is weak compared to other more modern languages. C and Java both require much knowledge of the concepts, syntax, and rules of its language, which make them not the best languages for beginners to learn. Python, on the other hand, is a language that is not as complex as C and Java, and is a language that fits the needs of any beginner programmer. How does that affect people's programming? The way that affects people's programming, is in the way they use the language. People wanting to deal with the hardware directly, will probable use C. While people needing a language that is cross platform, would want to use Java. What a programmer wants or needs will dictate the language he or she uses.
In concluding my Discussion 1, I would like to mention that Patrick Jordan's article "A Very Quick Comparison of Popular Languages for Teaching Computer Programming" has another part to it, consisting of the comments he received on this topic, particularly on languages he didn't mention (Ruby, C++, Smalltalk, LISP); this can be found right here http://www.ariel.com.au/a/teaching-programming2.html . Last, but not least, I would recommend you to take a look at the code, which can be found in his article, for the "very simple program" that Patrick Jordan wrote in all the four languages he compared; so that you can really see the differences among these computer programming languages.
Return to the Jimmy M. Espana's CS 2340 Homepage Fall 2005 Who Who's Page.
Links to this Page