Most engineering curricula include an introductory programming course in the first or second year. This course typically assumes no previous programming experience and is intended to help students learn the skills that they will need to solve problems in their upper-level engineering courses. Learning outcomes for this course can include data types, vector and matrix manipulation, programming structures, function definition, and programming strategy.
The choice of programming language for this course varies depending on the curriculum requirements. Common choices are Python, C/C++, Java, and Matlab. At NAME OF OUR UNIVERSITY Engineering, the introductory programming course has traditionally been taught using Matlab. Matlab was selected for its relatively simple syntax, its focus on mathematical programming, and because it is widely used by faculty in upper-level courses.
In recent years, Python has become one of the most widely-used, general programming languages. A recent study published in IEEE Spectrum found that job opportunities for Python programmers exceeded those for Matlab programmers by an order of magnitude. The popularity of Python can be attributed to its relatively simple, readable syntax and the fact that Python and virtually all associated modules and packages are open-source. This open-source model has resulted in a huge base of freely-available packages in virtually every field of engineering and science.
In response to the popularity of Python, NAME OF OUR UNIVERSITY Engineering has changed from Matlab to Python in the introductory computing course. The course topics and learning goals for the course were not changed, and course lectures were only changed to reflect the change in programming language.
This paper compares student achievement between classes that took the Matlab-based version of the course and those who took the Python-based version. Students in the two versions were given very similar exam and final project problems so that their achievement of course goals can be compared. A comparison is also made of students’ self-assessment of learning as measured using responses from student course evaluations.
This work is the first phase of a longer-term project intended to assess the digital literacy of NAME OF OUR UNIVERSITY Engineering graduates. Students’ programming skills are being assessed as they progress through the four-year engineering curricula. A particular focus of this longer-term work is to determine whether students who learn Python as their first programming language are better prepared to adapt to new languages and programming platforms.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.