Initial Publication Date: August 16, 2018

MATLAB as a Tool for Teaching and Learning of High Performance Computing Applications

Sani Abba, Department of Mathematical Sciences (Computer Science), Abubakar Tafawa Balewa University (Federal University of Technology), Nigeria.

Developing computational skills is very essential in the undergraduate and graduate university curriculum. It's a clear fact that computational skills are the backbone of high performance embedded system applications. High-performance computing systems are the promising technology in the modern world. The mobile cell phone, the automobiles, the airplanes, the medical equipment and devices, etc. These devices and equipment's not only do they require lots of computation, but they must meet real-time performance requirements using MATLAB computation.

The fact that we have MATLAB computing skills makes the design of embedded computing systems a very different experience than the design of general-purpose computing systems, in which we cannot predict the uses to which the system will be developed. Therefore, we must use the MATLAB computational skills to create different implementations to meet the needs of different high-performance computing applications. The implementation and solutions should be programmable enough to make the design flexible and efficient, but not provide unnecessary flexibility that would detract from meeting the high-performance system requirements [1].

I taught undergraduate and graduate student's courses in computing for the past fourteen years. These courses include: EA413 computer programming for engineers (MATLAB programming), CS601 Parallel Algorithms Analysis, Design and Architectures. Based on these years of teaching and learning, I found MATLAB computation as a vital tool for high performance computing research in creating models, analyzing data and visualization.

MATLAB is a great tool for teaching undergraduate and graduate students to learn how to become expert in problem solving skills and solving computational problems. It's enriched with an object-oriented programming environment, built-in functions and Simulink suitable for engineering and science students in the introductory and final year courses [2].

Teaching engineering and science students at the upper undergraduate level is a very difficult task. Since, most of the students do not have prior programming experience. Some are even scared about writing computer programs. Their perception is that writing computer program is very difficult and can only be done by computer scientists. In my institution (Abubakar Tafawa Balewa University, Nigeria.), the undergraduate students take several courses in mathematics, engineering and computer science. However, they are deficient in the basic programming concepts and skills needed for basic problem solving in their respective discipline using MATLAB.

Based on my experience of teaching and learning of computational skills using MATLAB in undergraduate level curriculum, the students are categorized into two perspectives. Firstly, some students focus more on the use of the built-in functions and some fundamental programming concepts. Secondly, those students that cover only the programming constructs without using many of the built-in functions available in the MATLAB for efficient computation.
A student who learns just the built-in functions will be ready to instantly use MATLAB for problem solving, however, the student would not understand basic programming concepts. That student would not be able to learn other programming languages such as FORTRAN, PASCAL, C/C++, Java, etc. without taking a course in computer programming languages. On the other hand, any student who learns only programming language concepts using any of the languages mentioned above, would tend to write highly inefficient code using abstract data types, object-oriented paradigm, control statements to solve high performance computing problems [3].

In order to overcome the difficulties encountered by the two categories of students mentioned above, I employed the combined method of giving them both the programming concepts and the efficient built-in functions. In addition, I used practical examples and real-life applications to demonstrate to the students how to model, analyze and visualize high performance computing applications using MATLAB. An intensive effort is necessary in advanced computing using MATLAB to explore the high-performance computing together with all its enabling technologies crucial to tackle the current and future computational problems.

As a lecturer and course instructor, my aim is to demonstrates the basic computational concepts, such as mathematical modelling, algorithms analysis and design techniques and how they can be applied in real life problems and use MATLAB as a tool for the design and implementation. Students are given a semester-long assignment to solve a real-life high-performance computing problem in areas such as nuclear physic, robotics, automobiles, machine learning, big data, cloud computing, etc. This approach will help the students to apply the knowledge acquired during the class to solve real-life problems. In doing so, the students are transformed through the process of identifying real-life challenges facing scientist and engineers in the present technological advancement using MATLAB.

Furthermore, through this approach of teaching and learning of MATLAB computational skills, the students have learnt how to solve computational problems in their respective disciplines, write good projects and obtain good academic records. In addition, they have realized that MATLAB is the best tool for teaching and learning of high performance computing compared to FORTRAN, PASCAL, C/C++, JAVA and other programming languages and tools.


References:
[1] Marilyn Wolf, High-Performance Embedded Computing Applications in Cyber-Physical Systems and Mobile Computing, Georgia Institute of Technology, Morgan Kaufmann, Elsevier Inc., 225 Wyman Street, Waltham, MA 02451, USA, Second Edition 2014, pp. 1-20.
[2] Stormy Attaway, MATLAB: A practical Introduction to Programming and Problem Solving, College of Engineering, Boston University, MA, Butterworth-Heinemann, Elsevier Inc., Third Edition, 2013, pp. 14-70.
[3] Timothy J. Barth, Michael Griebel, David E. Keyes, Risto M. Nieminen, Dirk Roose, Tamar Schlick, Advanced Computing: Lecture Notes in Computational Science and Engineering, No. 93, Springer-Verlag Berlin, Heidelberg 2013, pp. i-viii.

Downloadable version of this essay

MATLAB as a Tool for Teaching and Learning of High Performance Computing Applications (Microsoft Word 2007 (.docx) 21kB Aug14 18)