Abstract
The effectiveness of certain languages when iterating code are very debatable. Some
people find various programming languages easier to use for different reasons. Those reasons
include the languages mechanics or the applications associated with it. Programming languages
all vary in certain categories such as errors caught, run time and user-friendliness. All of the
characteristics were considered and a scale was created to evaluate each application in each
programming language to ultimately solve the problem of which programming language is the
best place to start for beginners who are proficient learners in the field of computer science. An
experiment will be conducted that allows programming applications of various languages (C++,
Java and Python) to iterate programs. Once each application does so, the performance will be
evaluated using the scale mentioned before. In the end of the research, a programming language
Table of Contents
1. Introduction
2. Literature Review
3. Data Collection
4. Conclusion
5. References
Konduru 4
Introduction
perform human-like tasks. It once started out as a simple activity that was done to past time and
explore technology. Schools are even beginning to integrate computer programming in their
course selections for students. However, schools often misinterpret what language is the best to
teach the students. There are many different computer programming languages and programming
tools to program on. The three most popular are Python, C++, and Java. Python is referred to as a
high-interpreted programming language that is used for general life purposes. Java programming
is a language that enforces an object-oriented approach that makes it simpler for users. C++ is
the complex language in which professionals use for scripting and highly advanced web
development. Many might find different reasons to get involved in a certain programming
language rather than another. However certain characteristics must be taken into consideration
various ways of teaching beginners and the distinctive characteristics about each. The language
of Java consists of a unique portability and it has the capability of operating similarly on any
hardware or operating system. Java has always been the primary language for software
developers to use because it accomplishes the complex computational tasks with simplicity. C++
experience and is always changing and developing due to the fact that there were many bugs,
incompatibilities and incongruities when it first started to be used. A C++ programmer usually
Konduru 5
spends a considerable amount of effort to no other end than to make the program work. Meaning
even the simplest tasks may take a while to accomplish. Python is referred to as a
high-interpreted programming language that is used for general life purposes. It combines simple
syntax, abundant online resources and a rich ecosystem of scientifically focused toolkits with a
Literature Review
The conclusions that have been drawn by the experiment have been found in many
sources that support it. These sources agree that Python is the most user-friendly and easiest
high-interpreted programming language that is used for general life purposes (Perkel).
It combines simple syntax, abundant online resources and a rich ecosystem of scientifically
focused toolkits with a heavy emphasis on community. This programming language’s growth in
popularity is credited to the usage of big data analytics (Perkel). Python has been extensively
used in the industry for anything from building Raspberry Pi applications to configuration
servers and using a scripting language for large scale applications (Cardoza). The extensive use
of Python is obvious and the increasing interest with the language is due to the features it offers
users and programming characteristics it provides. Many computer programming languages have
a something that it is known for. Python is used in every domain. Such as system operations, web
development, deployment, scientific modeling, etc. Python is the most versatile programming
language (Cardoza). The sources evaluated into determining the results of the research even
Konduru 6
support how effective Python is to the programming environment and the users. Python allows
the users to interact with their errors and take away from their programming experience
(Cardoza). The environment that builds Python applications advocated for beginners and
proficient learners. And with the new wave of students wanting to learn computer science and
computational skills Python has gained in popularity and effectiveness when compared to other
The evidence of Python’s effectiveness is clear, but when compared to the other common
coding languages C++ and Java it stands out because the features provided in the other two
languages are inferior compared to Python. A C++ programmer usually spends a considerable
amount of effort to no other end than to make the program work. Meaning even the simplest
tasks may take a while to accomplish (Becker). This type of code is not the best for beginners
because people who are just starting to code may find it tedious and time consuming. C++ is
always changing and developing due to the fact that there were many bugs, incompatibilities and
incongruities when it first started to be used (Becker). The language is hard to keep up with and
may even confuse people using it, whereas Python remains constant and abides by the most
Java also does not compare to the valuable assets and characteristics of Python. Java is
broken up into five difficult subtopics that must be understood to excel in Java programming.
Those subtopics are generics, nested classes, inheritance, interfaces and overriding methods.
Overloading methods are when two methods have identical names, but do different things. This
often confuses most software application tools. Not be to mistaken with overloading methods,
Overriding a method is when a function within the method refers to the method it is in. Both of
Konduru 7
these cause issues for a programming application when it debugs and tries to run code entered by
a user (Perry). Inheritance is the idea that allows a programmer to create classes that are derived
from other classes. The class inherited is referred to as the superclass. This is used when two or
more classes are dependent upon each other to perform a task or are similar in function (Perry).
Interfaces are special classes/methods in java because they can only contain it’s name and
parameters of the whole code. They are used often for simple functions that don’t require
complex statements to iterate (Perry). Generics are a new aspect to Java that was added in 2004.
They were designed to extend Java's type system to allow a type or method to operate on objects
of various types while providing compile-time type safety. So complex code can run at a faster
rate and not cause your computer to crash (Perry). Nested classes are classes within other classes.
They are important because they allow a specific function to occur by giving the most enclosed
class access to all the other classes in the program (Perry). It is proven to be difficult to
understand these principles, whereas in Python no extensive prior knowledge is needed. One can
easily get involved and stay involved because of the consistency within all of the Python
programming applications.
Many sources also support the idea of consistency being the most prevalent and
significant idea to consider when starting to program. And it is evident that Python embodies that
idea greatly. Coding professionals know that the act of coding doesn’t have a right or wrong way
to do it. A coder's background and training, among other factors, will greatly influence the way
he or she assigns codes (Dimick). The best way to ensure coding consistency is through the even
and routine disbursement of information and education among a coding group or class (Dimick).
When coding and developing as a programmer maintaining the same coding style and using the
Konduru 8
same or similar applications is important to learn more and grow (Ars Technica). These are
Some may even ask why this topic is worth studying. Many sources have argued that
computer science and computer programming in particular is the future. In the US, there is
currently a lot of argument about the need to make teaching programming mandatory. For
challenge. In reality, you don’t need to be a computer expert to teach students how to program.
The key is to start small, and then allow the students to drive the learning (Heggart). The skill of
learning to program is an educational medium that relates to the ability to facilitate and extend
people’s natural ability and drive to construct, hypothesize, explore, experiment, evaluate, draw
conclusions all in an independent manor (Heggart). It is a very versatile subject matter because it
can apply anyone, from students to retired individuals. Computer programming allows students
who are looking for a job in the field to explore their creative interests. The overall impact of
computer programming it focuses more on logic-based foundational skills than on the
Data Collection
An experiment was the most appropriate form of data collection because there is a variety
of programming applications that are free to be tested with and are accessible to most people.
The rationale behind the research being conducted is to contribute to the field of computer
science by creating an interest for the field for students who are beginning to learn how to
program. Many people who find an interest are not persistent and abandon the field completely
Konduru 9
before understanding all the characteristics, so this research will present the audience with
information that will help make it easier to understand programming languages and debugging
methods.
Rating 5:
- Gave very descriptive feedback and showed the user how to fix the error
Rating 4:
Rating 3:
Rating 2:
Rating 1:
- Errors were present, but the program didn’t explain them or highlight them
Rating 0:
Data:
GNAT
Programming
Code::Blocks Studio CodeLite
Trial-1:
Rolling Dice 4 2 4
Trial-2:
Rolling Dice 3 1 3
Trial-3:
Rolling Dice 3 1 4
Trial-1:
Tic-Tac-Toe 3 5 5
Trial-2:
Tic-Tac-Toe 2 3 5
Trial-3:
Tic-Tac-Toe 3 3 5
Trial-1:
Rock-Paper-S
cissors 1 4 3
Trial-1:
Rock-Paper-S
cissors 3 5 4
Konduru 11
Trial-1:
Rock-Paper-S
cissors 2 4 5
JDK (Java
Development
Kit) Eclipse JUnit
Trial-1:
Rolling Dice 3 3 2
Trial-2:
Rolling Dice 2 3 1
Trial-3:
Rolling Dice 3 3 3
Trial-1:
Tic-Tac-Toe 2 5 4
Trial-2:
Tic-Tac-Toe 2 3 4
Trial-3:
Tic-Tac-Toe 2 2 3
Trial-1:
Rock-Paper-S
cissors 4 1 2
Trial-1:
Rock-Paper-S
cissors 1 5 5
Trial-1:
Rock-Paper-S
cissors 3 4 5
Konduru 12
Eclipse with
PyCharm Eric PyDev
Trial-1:
Rolling Dice 4 3 5
Trial-2:
Rolling Dice 4 5 4
Trial-3:
Rolling Dice 3 5 3
Trial-1:
Tic-Tac-Toe 4 4 5
Trial-2:
Tic-Tac-Toe 4 4 5
Trial-3:
Tic-Tac-Toe 4 4 4
Trial-1:
Rock-Paper-S
cissors 5 4 5
Trial-1:
Rock-Paper-S
cissors 4 3 4
Trial-1:
Rock-Paper-S
cissors 4 2 4
Konduru 13
Konduru 14
The data shows the relations and trends throughout the evaluation process. Each excerpt
of code has logical and semantic errors that the application should be able to identify. The scale
created measured all aspects needed to debug a program well. Overall, the language that was
proven to be most user-friendly and debugged the program excerpts the best was Python. Python
is usually referred to as one of few languages out there that is both easy to get started with for
beginners yet incredibly powerful when beginners improve and begin to working on real-world
projects. The programming applications as a whole, within Python, had ratings mostly of 4’s and
5’s with some 3’s. In terms of consistency no matter the complexity of the program, Python
Konduru 15
maintained the same rating. That means that even when doing complicated programs later on that
Python would still use its user-friendly and extensively detailed debugging methods to help the
programmer. The specific applications of Python all were on the same level as each other.
Eclipse with PyDev had a slight edge in rating than the other applications. This is mainly
because of its extensive features. Such as code completion, integration of Python debugging,
addition of a token browser, refactoring tools, and much more. Those features usually help more
advanced Python programmers. Eric was also a helpful application but had a longer run time
compared to the other application, but in that time it collected more errors. However, some
criticisms of Eric are that it’s long run time becomes a problem when running large excerpts of
code. PyCharm is a mixture of the other two Python applications. It’s relatively fast run time
makes up for the errors missed. Also the feedback given is extremely helpful because it
highlights the error, explains what went wrong and tells the user how to fix it.
The second most helpful applications to use are the ones in Java. Java may seem
complicated at first because of the error messages, but after coding more they become easier
understand. JDK and JUnit earned higher ratings than Eclipse, but Eclipse remained consistent
even though the excerpts of code became more complicated. JUnit earned a higher rating as the
code became more complex, which shows that when programming something advanced and
larger that JUnit is the best. JUnit can test one block of code at a time rather than waiting for the
entire program to be completed before you run a test. You can actually test and then code,
meaning there is very little doubt about the final functionality of an program. JDK’s rating
decreased as the complexity increased. So starting out with JDK would probably be the best
experience because it includes the necessary Java Compiler, the Java Runtime Environment, and
Konduru 16
the Java APIs. Basically meaning everything is up to date all the time and gives the user a proper
user friendly experience. However, the consistency of Eclipse puts it ahead of the other Java
applications. It got close to the same rating no matter the complexity. Having consistency is most
important when learning programming and eventually coding more advanced programs. Java
provides much needed assistance for code completion, refactoring and syntax checking. It also
offers something called the Java Development Tools project, which provides a range of tool
The worst language to begin programming in is C++. Unless this is a profession, C++
still remains as one of the hardest programming languages to fully understand. That’s why all the
C++ applications had various ratings as the complexity increased. GNAT and Code::Blocks
reamined equal and had similar ratings in each complexity. GNAT highlights syntax and has an
incredibly fast run time, but not all the errors are caught. Code::Blocks is opposite to GNAT
programming, but the error messages of it has little to no description of the error itself and how
to fix it. CodeLite was the best because it performs well when iterating complex programs. Due
to the fact that it displays errors in an organized, descriptive glossary and also used code
navigation which helps beginners understand where to place what and why. Throughout every
application in any programming language, consistency has proven to be the main key when
learning new programming skills. Finding errors, giving feedback on errors and measuring run
time are all characteristics of debugging programs. Beginners should remain persistent when
learning how to program because of the various obstacles and rules that must be learned.
Overall, the experiment was the best way for the researcher to answer the question. The
access to all the programming tools and background knowledge in computational skills allowed
Konduru 17
this to occur. This project teached programmers the main characteristics and ideas to understand
in order to begin computer programming. It explains good examples of where to begin, such as
Eclipse, which is well-known due to its consistency when iterating the code of beginners. BAd
examples of a starting point were also shared. Such as C++ because the complexity and
perception of the programming language itself often makes beginners confused and causes
computer programming to be viewed as boring and difficult. THe impact to society gained from
this experiment is a place to start for people who have an interest in computational skills and
want to pursue this interest. This paper will provide them with traits and qualities of each
programming tool and they themselves can use the scale given to evaluate their experience or use
Conclusions
Computer Programming as a whole is a field that students should start taking part in because it is
the future. However, the best language to start with is Python. Python applications advocate for
beginners and proficient learners. And with the new wave of students wanting to learn computer
science and computational skills Python has gained in popularity and effectiveness when
compared to other program languages (Perkel). C++ is complex and can be difficult to learn atan
early level of beginning to program (Becker). Java has always been the go-to language for
software developers to use because it accomplishes the complex computational tasks with
simplicity (Perry). In order for the complex tasks to be solved with simplicity, the beginners
must understand them. That’s why Java can be difficult at times. The main characteristic when
beginning to program is consistency. It's important that beginners choose a language and
Konduru 18
application that maintains the consistency in the program. This way all the basics and roots of
References
Ars Technica. What's the right balance between code consistency and code improvement? (2013,
June 01). Retrieved March 20, 2018, from
https://arstechnica.com/information-technology/2013/06/whats-the-right-balance-betwee
n-code-consistency-and-code-improvement/
Becker, T. (2013, August 11). C and the Culture of Complexity. Retrieved February 24,
2018, from
http://blog.greaterthanzero.com/post/58482859780/c-and-the-culture-of-complexity
Best Programming Language For Me in 2016. (2016, January 6). Retrieved March 14, 2018,
from http://www.bestprogramminglanguagefor.me/why-learn-java
Brown, T. B. (2013, January 24). Modern Debugging Tips and Tricks. Retrieved March 3, 2018,
from https://alistapart.com/article/modern-debugging-tips-and-tricks
Cardoza, C. (2017, July 17). The Python programming language grows in popularity. Retrieved
March 17, 2018, from
https://sdtimes.com/artificial-intelligence/python-programming-language-grows-popularit
y/
Cellania, M. (2015, October 13). Ada Lovelace: The First Computer Programmer. Retrieved
March 20, 2018, from
http://mentalfloss.com/article/53131/ada-lovelace-first-computer-programmer
Dimick, C. (2010, July 13). Achieving Coding Consistency. Retrieved March 17, 2018, from
http://library.ahima.org/doc?oid=101092#.Wq2X9WaZOu4
Farmer, J. Teaching Novice Programmers How to Debug Their Code. Retrieved November 13,
2017. CodeUnion Blog RSS,
blog.codeunion.io/2014/09/03/teaching-novices-how-to-debug-code/
Heggart, K. (2014, June 16). Coded for Success: The Benefits of Learning to Program. Retrieved
March 17, 2018, from
https://www.edutopia.org/discussion/coded-success-benefits-learning-program
Perry, J Steven. (July 19, 2011). Figure 2f from: Irimia R, Gottschling M (2016) Taxonomic
revision of Rochefortia Sw. (Ehretiaceae, Boraginales). Retrieved February 1, 2018.
Biodiversity Data Journal 4: e7720. https://Doi.org/10.3897/BDJ.4.e7720. Java
Language Basics.
Raik-Allen, S. (2013, January 10). A brief history of computer programming languages. Which
do you use? Retrieved March 18, 2018, from
http://www.abc.net.au/technology/articles/2013/01/11/3667939.htm
Wen, M. (2013, November 15). Computer Science: an ever-evolving discipline. Retrieved March
17, 2018, from
http://www.dailycal.org/2013/11/14/computer-science-an-ever-evolving-discipline/
Werell, B. (2017, February 02). Discover the History of Coding for Computer Science Week.
Retrieved March 18, 2018, from
http://blog.connectionsacademy.com/discover-the-history-of-coding-for-computer-scienc
e-week/
Whyte, S. (2013, February) Learning & Leading with Technology. Retrieved April 1, 2018, from
htp://www.iste.org?learn /publications/learning-leading