Asee peer logo

The First Course of Programming: Python, Matlab, or C?

Download Paper |


2016 ASEE Annual Conference & Exposition


New Orleans, Louisiana

Publication Date

June 26, 2016

Start Date

June 26, 2016

End Date

August 28, 2016





Conference Session

Computing & Information Technology Division Technical Session

Tagged Division

Computing & Information Technology

Page Count




Permanent URL

Download Count


Request a correction

Paper Authors


Alireza Kavianpour DeVry University - Pomona

visit author page

Dr. Alireza Kavianpour received his PH.D. Degree from University of Southern California (USC). He is currently Senior Professor at DeVry University, Pomona, CA. Dr. Kavianpour is the author and co-author of over forty technical papers all published in IEEE Journals or referred conferences. Before joining DeVry University he was a researcher at the University of California, Irvine and consultant at Qualcom Inc. His main interests are in the areas of embedded systems and computer architecture.

visit author page


Sogand Kavianpour University of California - Irvine

visit author page

Miss Sogand Kavianpour received her B.S. degree in Electrical & Computer Engineering from the University of California, Irvine. She is currently working with a medical device company specializing in magnetic technology.

visit author page

Download Paper |


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.

Kavianpour, A., & Kavianpour, S. (2016, June), The First Course of Programming: Python, Matlab, or C? Paper presented at 2016 ASEE Annual Conference & Exposition, New Orleans, Louisiana. 10.18260/p.26164

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2016 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015