Story by Wayne Gillam | UW ECE News
“This course can transform an app user into an experienced app developer. Many of the skills students learn may prove to be very useful, not only for personal enjoyment, but also for their professional development,” said Laura Arjona, describing the course she taught in the Professional Master’s Program (PMP). The PMP is offered through the University of Washington Department of Electrical & Computer Engineering (UW ECE), and it is designed to give recent graduates and working professionals expertise needed to drive innovation.
“This course can transform an app user into an experienced app developer.”
— Laura Arjona, UW ECE PMP instructor
Arjona knows what she’s talking about. She has an extensive background in software development and wireless communication, and she is a Washington Research Foundation Innovation Postdoctoral Fellow in Neuroengineering. Currently, she is working as a research associate in the Paul G. Allen School of Computer Science & Engineering. There, she collaborates with UW ECE faculty members Josh Smith and Chet Moritz in the Sensor Systems Laboratory, researching and developing wireless power and data transfer protocols for neural implants.
The PMP graduate-level course taught by Arjona, EE P 523: Mobile Applications for Sensing and Control, takes place Thursday evenings every spring quarter and was taught online this year for the first time. In the course, students learn how to develop Android smartphone apps capable of taking full advantage of the device’s hardware, wireless communication, sensing and control capabilities.
“Today, smartphones are being used not only for personal and recreational activities but also for more practical and professional purposes like research. They are not just for making phone calls and texting anymore,” Arjona said. “Because of the advancements in hardware, they are becoming more and more powerful within the same size. For example, you can now run machine-learning models, like artificial neural networks in your smartphone. You could maybe not do that five years ago, but you can do it now.”
“This course was key to bringing what’s hot from the market to students.”
— PMP student Plinio Barreto
Students in this PMP course are a mix of full-time graduate students and working professionals. Many are seeking to advance their careers and are already employed at leading technology companies such as Microsoft, Nokia and Facebook. In the course, students become intimately familiar with the Android development platform. They develop apps capable of using a smartphone’s built-in motion, position and environmental sensors (such as the gyroscope, proximity sensor and barometer) to interact with the outside world. The students use Android Studio for app development and learn Kotlin, a high-level, object-oriented programming language similar to Java. They also learn how to extract data from smartphone sensors, use Bluetooth Low Energy (BLE) communication protocol, do digital signal processing and program an Arduino microcontroller board, which turns signal inputs into outputs and communicates wirelessly with the smartphone.
As if that wasn’t enough, students also learn how to use Firebase, a mobile development framework from Google, to run machine-learning models in Android apps and work with remote databases. These activities help to give the students a practical introduction to integrating artificial neural networks into app development.
“While my objective was to actually develop an app for Android, I had never imagined that I would end up developing a complex app that would integrate a remote NoSQL database and artificial intelligence techniques,” said PMP student Plinio Barreto, who developed an app that detects facial expressions during video calls. “In the end, I was surprised with the outcome, and it was a fun journey.”
Moving to an online learning environment
This hands-on course, traditionally taught in-person, had to move online this year because of the novel coronavirus. Students were mailed the necessary equipment they would need, which included an Android smartphone, an Arduino microcontroller board, a Bluetooth Low Energy shield, alligator clips, a battery and a charger. The transition to a virtual learning environment was unexpected, but it proved to have some benefits.
“Last year, I couldn’t do most of the activities during the class the way I did it this year, because many of the students didn’t bring their computer,” Arjona said. “This year, an advantage of being online is that the students could easily follow my examples on their own equipment, in their own software, and also work in small groups during the lecture time. I think they learn better if they practice with programming some parts of the apps during the class time.”
Most students seemed to echo Arjona’s assessment of the class being taught online, and if anything, the online environment often seemed to enhance, rather than detract from, their learning experience.
“I think that it is even better to study online,” said PMP student Lunjie Zhang. “I can hear the professor better and see her demonstrations more clearly. I can also sit more comfortably and use a faster desktop computer.”
There were 48 students enrolled in the 2020 class working individually and in groups on weekly assignments, as well as final projects. The students used their creativity to design and develop innovative Android apps for a wide range of practical purposes. Below are a few examples of their final projects.
PathMapper by Anna Ptasznik
Ptasznik is a very physically active person, so she developed an app to track data from her runs, bicycle rides, hikes and other activities. Her app uses global positioning to track routes, along with information about elevation profiles and miles traveled. It stores all data locally, on the smartphone. Ptasznik has continued work on the app after the end of the course, adding integration with a heart rate monitor.
“I can put together a quality Android app extremely quickly now. That is the biggest gain [from the course] I saw,” Ptasznik said. “Having to build apps every week or two pushed me to keep velocity in my development. After the first few projects, it really clicked, and I could quickly implement features. I’m now very confident.”
Drive Awake by Lunjie Zhang
Zhang’s app is designed to help drivers stay awake during a long road trip. From the smartphone positioned on the driver’s dashboard, the app detects if the driver has closed their eyes for too long. If so, the app sends a notification to an Arduino microcontroller to make a sound and light alert. The app is capable of running in the background, so the driver can use their smartphone to check the weather, open Google Maps and/or play music while Drive Awake is still running.
“This is a great class for someone who wants to learn Android app design,” Zhang said. “The time spent on homework is very reasonable, and the lectures are very clear and helpful. The professor and her team are friendly and easy to reach out to. You will have fun and get a sense of accomplishment through the app you design yourself.”
Contact Collector by Elliot Blanford
Blanford built an app to help restaurants comply with COVID-19 reopening requirements. At the time he developed the app, Seattle restaurants were being required to record diners’ personal info to facilitate contact tracing, a rigorous method of tracking and monitoring those who may have been exposed to the novel coronavirus. Most restaurants were using sign-in sheets or other handwritten information, methods prone to error and poor security. Blanford’s app solves this problem by allowing customers to scan and use a quick response (QR) code to record and upload personal information into a remote, secure database accessible by the restaurant. The data then is available for COVID-19 contact tracing and reaching out quickly to customers who might have been inadvertently exposed to the virus at the restaurant.
“I joined this class because I’m interested in strategies for controlling sensors and processing data, specifically for building test equipment,” said Blanford, who works on wearables for an augmented reality company. “This class made app development a lot less intimidating.”
ClinterApp by Plinio Barreto
Also related to the novel coronavirus, many counselors and psychologists are now relying on video calls to continue to operate. Barreto’s app was developed to facilitate remote connection between a psychologist and their patient, helping the care provider deliver essential emotional support. The app consists of three modules that assist with scheduling appointments, video calls and determining a patient’s emotional state. The app uses an artificial neural network to detect and recognize facial expressions during the video call. Barreto developed this app for a family member to use in their clinic after the course concluded.
“This course was key to bringing what is hot from the market to the students,” Barreto said. “The Kotlin programming language and Firebase tools are what I believe to be the most modern and state-of-the-art techniques for app development, and I am happy that the course was based on these tools.”
Skills that contribute to personal and career development
The project-based learning model that this course was built on helps to provide PMP students with skills that are directly applicable to the real world, as well as their personal interests and careers. This is a major aim of the PMP, which focuses on cutting-edge topics and the latest university research to prepare graduates for new and rewarding career opportunities. Also, as a bonus, the course is simply a lot of fun.
“I think programming apps to interact with the real world, in and of itself, is fun. I think students enjoyed doing the weekly assignments, and yet, it’s practical, it’s very connected to the real world,” Arjona said. “Every assignment is very different from the previous one, so you learn different skills. It’s not monotonous.”
While students’ careers and objectives varied, there seemed to be consensus that the skills they gained in this course were valuable and applicable to their lives.
“I believe this course will help me in the long-term,” Zhang said, “because my goal is to become an engineer with all kinds of skills, someone who is able to manage all kinds of electrical engineering projects.”
“This is a fun course and a journey to create something that can be useful to you, to the market or really revolutionary,” Barreto said. “The only limit is one’s creativity.”
“This class is a lot of work, and it can feel really intimidating at the start. But if you are willing to go along for the ride, it is one of the most gratifying courses I’ve been in,” Ptasznik said. “It feels amazing to have an app idea and then figure out how to implement it. You will come away with all of the fundamentals you need to continue learning after class and build apps for yourself, your work or to sell on your own. I would do it again if I could.”
The PMP is still accepting applications for Fall 2020. For more information about PMP courses, including EE P 523 Mobile Applications for Sensing and Control, and to register for an upcoming info session, visit the PMP website.
Watch an overview of EE P 523 Mobile Applications for Sensing and Control in the video below.