Which programming language should we teach in the first course of programming to our undergraduate students of engineering? Most entering freshmen have no programming experience whatsoever. We have to teach them the first steps of programming, and swiftly bringing them to a level of skill where they can use computing in their other courses: to analyze data for lab reports, to learn linear algebra, to solve problems in mechanics, problems involving differential equations, and writing a program to control a robot (embedded programming).
Python is a high-level object-oriented programming language. It is designed to be easy to program. Guido van Rossum started the design of Python in 1980. Over the years, Python has gained popularity in a broad range of fields from web development, games, scripting language, science, and engineering. Python is open source software, and can thus be distributed freely, even for commercial use. This openness makes that Python plays well with the other languages and is easily expandable. Python is a general purpose language, which means that many things are made easy. Examples are string processing, reading/writing files, sockets, websites, databases, GUI’s. This is why it has been adopted by so many universities. The ease of use for general tasks makes Python very suitable for education. For science this is also an advantage, as scientist often need to load data, visualize it, and maybe control it via a user interface. For commercial applications this means that many things work out of the box, saving time and money.
Matlab was designed at the University of New Mexico by Cleve Moler in the late 1970s. It soon spread to other universities and found a strong audience within the applied mathematics community. Later, Jack Little, a Stanford University engineer, recognized its commercial potential and founded Mathworks in 1983. Matlab is a commercial numerical computing environment and programming language. It has a lot of advanced toolboxes and functions, and they are oriented to circuit analysis, signal processing, financial analysis, economics, business, statistics, and optimization .These functions are well documented and developed. However they are proprietary and you cannot see the code of most of the algorithms you are using. The proprietary nature also makes it difficult for third parties to extend the functionality of this language. Matlab is not an open source language and you have to buy a license. However it is easier for beginners, because the package includes all you need. Python and Matlab are interpreted language, which means that rather than compiling the complete program, bits of code can executed in a running program/session. This is what makes it so suitable for scientific computing: you can quickly run part of code in a sequence, or run the same piece of code repeatedly while improving it.
In this paper based on the data from different universities and industries, we evaluate and recommend a programming language for the first course of programming to our undergraduate students of engineering.
Are you a researcher? Would you like to cite this paper?
Visit the ASEE document repository at
for more tools and easy citations.