This is a guest blog post by MIT App Inventor Master Trainer Khoi Nguyen Tran Minh, a lecturer at Hoa Sen University, Vietnam
It is good news that after attending the MIT Master Trainers Program in Educational Mobile Computing, I am able to persuade my senior managers at The Faculty of Science and Technology, Hoa Sen University, Vietnam to introduce a new course, Introduction CS Principles with MIT App Inventor, into our IT curriculum. We developed our course based on Mobile CSP, which focuses on building mobile apps with MIT App Inventor and is among five pilot courses fully addressing the AP Computer Science Principles Curriculum Framework components.
The approval is mainly based on the fact that nearly 100 US colleges and universities have considered the CS Principles Framework as a college-level computing course. As a matter of fact, many of them have piloted a program to teach Seven Big Ideas and the Six Computational Thinking Practices to university students.
While MIT App Inventor has been utilised as a tool for many CS principles courses, it appears to me that it has potential for a great deal of other subjects, especially Data Structures and Algorithms. Take The Tower of Hanoi app (with tutorial) in the App Inventor Gallery and Google Play as an example. I developed this app to push MIT App Inventor beyond its comfort zone and saw that it has the capability to develop complicated apps as easy as any text-based programming language, if not more conveniently and in less time.
Additionally, I was able to use MIT App Inventor to complete all week 2 assignments of the Coursera Algorithmic Toolbox, course 1 of 6 in the Data Structures and Algorithms Specialization. Here are the links to the apps in the Google Play:
Compute a huge Fibonacci number (0 ≤ n ≤ 104)
Compute the last digit of a large Fibonacci number (0 ≤ n ≤ 107)
Compute a huge Fibonacci number modulo m (0 ≤ n ≤ 1018 2 &le m &le 105)
Compute the greatest common divisor of two integers (1 ≤ a, b ≤ 2 * 109)
Compute the least commond multiple of two integers (1 ≤ a, b ≤ 2 * 109)
Admittedly, these problems are not hard to solve. However, the obstacle is how long it would take to calculate huge numbers, such as the 10,000th Fibonacci number or the last digit of the 1,000,000,000th one. While a carefully-designed algorithm can solve these problems within seconds, its not-so-good counterparts can take hundred or thousand years to complete the computation.
Not surprisingly, I found that MIT App Inventor is a kind of pseudocode which is intended for human reading, yet it still delivers a fully functional app with a variety of algorithms without any difficulties at all. It is my goal to use MIT App Inventor to produce more algorithm-related apps before writing a book titled Data Structures and Algorithms with MIT App Inventor.
Intelligent Tutoring System is a field that I really want to explore further with AI2 and hopefully can I demo my app in the Summit in June. In the meantime, I will post some information about it in my next article.
I would love to receive feedback as well as comments and can be reached at khoi.nguyentranminh@hoasen.edu.vn