Thursday, 12 September 2019

Students Learn Computational Science and Engineering through Android Smartphones

Prof. Godfrey E. Akpojotor (Delta State University, Abraka, Nigeria) 

The general goal of computational science and engineering is to use computational approaches as a means of understanding the various disciplines in science as well as useful training for the future, while retaining the characteristics of these all disciplines in education, in-order to integrate understanding and adaptive learning. Computational approaches help students develop a more intuitive feel for their disciplines. They learn useful and transferable skills that will make them well-sought-after in industrial and commercial environments. These graduates will be better prepared to tackle both theoretical and experimental research problems at the post-graduate level. The learners are eased into programming and given the opportunity to develop a conceptual model of what a program is, and what it does. 

The best strategy to achieve this mission is to adopt an accessible and easy-to-learn programming language. This was the reason for our choice of Python, which is an interpreted, interactive, object-oriented, free, open-source and extensible programming language. It combines clarity and readability, making it an extremely powerful and multipurpose language that can be used for various applications and resolving problems. 

There is, however, a major challenge: access to enough computing devices and computer time. A three-hour computational course requires three hours of lectures and another three hours of computer activities. Further, the computing devices should be connected to the internet to facilitate continuous assessments and examinations. My initial strategy to meet these targets was to get my university to seek partnership with a laptop provider, who could supply the students the laptops, with a payment plan included in their school fees or over the period of the years of study. After years of an unsuccessful effort to initiate this partnership, it was a great relief to adopt the QPython, which is the Python version on Android smartphone devices. It has been a boost to our Python African 

Computational Science and Engineering Tour (http://www.pacsetpro.com/) as it has made possible the teaching/learning of computational approaches to “science and engineering anywhere, anyhow, anytime.” Code-named QPython PACSETPro, its mission is similar in spirit to One Laptop per Child (OLPC) initiated by Professor Nicholas Negroponte at the Massachusetts Institute of Technology. The Android phones are acquired, maintained and repaired by the individuals. Interestingly, there is already an increasing penetration of smartphones including low-cost Android phones into all parts of Africa and many of the low-cost versions are even compatible with QPython! 

The strategy of QPython PACSETPro is to provide continually updates of the QPython and third party libraries important for scientific computing in Android phones - and hopefully in other smartphones in the future. Apart from the small keyboard and small screen, one major limitation of QPython is that only the built-in Math module is currently available for scientific computing. Therefore, many of the computing capabilities in third party libraries like NumPy and SciPy are not currently available in QPython. However, after about two years of adoption of the QPython in my undergraduate computational courses and in training workshops, we have been able to figure out a number of alternatives available in the math module. For example, we replaced the poly1d function in NumPy with the lambda expression in Math for creating arbitrary functions. Beyond these alternatives, the developers of QPython, hence our small but now rapidly growing community of QPythonists, are committed to future stable versions of the QPython compatible with the plotting capabilities of the Matplotlab module and the navigable 3D displays and animation capabilities of the VPython module. These accomplishments will add to the current very captivating capability of QPython: helping developers to develop Android applications. The presentation at the Education Summit of the Python 

Community Conference (PyCon 2019) held in Cleveland, Ohio, US in May 2019 (https://pyvideo.org/pycon-us-2019/adopting-qpython-insmartphones-for-teachinglearning-computational-science-and-engineering.html) was well received. The chairperson, who was a Google programmer, pointed out that this project needs to be extended to reach all underserved communities in other low-income countries in the world such as her own country of India. Finally, Guido van Rossum, who is the author of the Python programming the language was amazed at the already available capabilities of the Python in Android phones, and the possibility of now using the QPython for teaching/learning programming anywhere, anyhow, and anytime.

No comments:

Post a Comment

Achieving Cloudera as the Data Source and Using Data Vault 2.0 in AWS Cloud: A Comprehensive Guide

In the realm of data warehousing, leveraging robust data platforms and methodologies is crucial for managing, integrating, and analyzing vas...