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.
