USING PYTHON FOR THE DEVELOPMENT OF ELECTRICAL ENGINEERING FINAL PROJECTS
This paper presents the authors’ experience in the usage of an open source programming language, namely Python, for the development of final projects in the field of electrical engineering. In particular, we describe (i) how students approach the study of a new programming language and the open source philosophy, (ii) the phases of the development of the final project, and (iii) overall benefits and advantages of using an open source language for the learning process of the students. Three cases are illustrated and discussed in detail.
The motivation of this paper is the following. The first author has been developing an open source software tool for power system analysis, PSAT. Such tool was originally developed in Matlab that is often considered the state of the art for didactical scientific computing. However, Matlab itself is neither free nor open-source and, as a programming language, shows several limitations. Thus, in the last two years, the first author has been developing a fully open source tool based on Python and has shared it with colleagues as well as undergraduate and master students. From the didactical viewpoint, the utilization of this Python-based tool has led to surprising results, which we present in this paper.
We identify the following three main advantages of using Python for electrical engineering projects.
1. Since Python is not taught in the basic courses on informatics (typically students have naïve knowledge of Java and/or Matlab), students approach the study of such programming language in a very pragmatic manner. This approach is quite efficient since students study the language with a clear object in mind (e.g., developing a specific power system device or controller).
2. Python itself is free and open-source, not only the modules for the simulation of power systems. This fact is important for two reasons. The student does not need licenses or corporative accounts to install the software and implement the code. Few tutorial hours are sufficient to get started. Then the student can work anywhere, and all he/she needs is a laptop and an Internet connection.
3. The open source nature of Python not only makes easy to find information and help over the Internet, but also stimulates the students to look for alternative modules and libraries and to participate in web-based forums. A positive byproduct of this fact is that the student is also motivated to autonomously search bibliography on the technical part of the project (e.g., scientific papers, reports, etc.) over the Internet.
Our main conclusion is that the usage of an open source tool such as Python efficaciously promotes deep learning. In particular, Python helps the students develop skills such as looking for solutions, and working autonomously. The productivity and efficiency is also notably improved.
In this paper, we show the educational aspects of three cases, i.e., the experience in supervising two undergraduate students and one master student for the development of two final projects and a master thesis, respectively. Due to the limited time, undergraduate students have been asked to simply implement two devices, namely the Superconducting Magnetic Energy Storage (SMES) and the Compressed Air Energy Storage (CAES). The master student has been asked to work on a higher level, i.e., to compare the behavior and the properties of different algorithms for the simulation and analysis of power systems.