Saving lives with coding: the global impact of an undergraduate project

Published: November 13, 2024

Every piece of digital technology that we use, from smartphones to gaming consoles, relies on code that is written and designed by people. At the University of Florida, USA, Professor Angelos Barmpoutis has developed a course-based undergraduate research experience, or CURE, that gives students the opportunity to design code for digital education resources that are used in schools across the US and beyond.

Talk like a software developer

Coding — the process of writing computer programmes, which are instructions that computers can read and carry out

Content expert — a person who has a high level of knowledge or skills in a specific area, often consulted in the development of new products

End user — a person who uses the products or services produced by a company or organisation

Open-source — software for which the original source code is freely available to use and modify

Optimisation — the process of modifying software to make it as fast and efficient as possible

Scalability — the extent to which a system can handle a growing amount of work

Software — the programmes, data and instructions used by computers to complete specific tasks

User experience (UX) design — the process of planning and designing the experience that a person will have when interacting with a digital product, which should be intuitive, easy and engaging

User interface (UI) design — the process of designing the look and feel of a digital product (its interface) to be functional, intuitive and visually appealing

Every smartphone app you use, every video game you play and every website you visit is built on a scaffolding of code that dictates how it works. However, coding is not just about writing computer programmes that work properly; it is also about ensuring that the end users of these programmes find them engaging and easy to use. 

User interface and user experience (UI/UX) design is often a central focus of software development courses. However, developing these skills in an educational environment can be tricky as students rarely get the chance to create programmes that will actually be used by real people. To tackle this issue, Professor Angelos Barmpoutis, a computer scientist at the University of Florida (UF), has developed a course-based undergraduate research experience (CURE) in which students develop educational apps that are then used by thousands of school students and educators across the US and further afield.

Creating the CURE

“Many software development courses teach concepts of UI/UX, but typically without real clients or users,” says Angelos. “This means that significant parts of the learning activities remain theoretical.”

Angelos was pondering the best way to address this issue when the COVID-19 pandemic hit. During the lockdowns, in collaboration with Director Holly Lane and Clinical Assistant Professor Valentina Contesse from the UF Literacy Institute (UFLI), he supervised the development of a suite of online educational tools that teachers could use to help their young students learn language skills. “These tools were widely adopted by teachers, students and parents, creating an ecosystem of apps with a large user base,” says Angelos. “It struck me that this presented an ideal testbed for students to gain experience of designing and deploying real-world apps with an international audience.”

From this idea, Angelos developed his CURE for coding, a semester-long software development course. “The goal of a CURE course is to involve undergraduate students in research, in this particular case, UI/UX research,” explains Angelos. Undergraduates enrolled in the CURE were tasked with developing educational apps, based on the UFLI curriculum, that could be used in real classrooms by real teachers. They developed prototypes, sought feedback from a content expert (Emily Laidlaw, a teacher from Hawaii) which they used to refine their apps, released the developed software and then conducted research studies in which they collected user feedback about the UI/UX of their software.

Welcome to the real world

“Through this experience, the students had to practice their coding skills in a real-life scenario, and not just for the purposes of their programming class homework,” says Angelos. “For example, observing the usage of their apps in real-time allowed the students to explore the concept of scalability – the capacity of their apps to be expanded and used by a growing number of people.”

One aspect of scalability is the need to consider cross-platform implementation, which allows apps to be used on different devices, as a desktop computer with a mouse and keyboard will have different requirements to a tablet with a touchscreen. Another important aspect of scalability is making sure that the software is fast and efficient, a process known as optimisation.

The importance of optimisation is often only apparent when many people are using the software at the same time. “When you cater to thousands of users in the same time zone, they are likely to use your apps at similar times,” says Angelos. “For example, our CURE students were noticing daily peaks in traffic at around 10am, near the start of the school day.” These periods of high demand can stress your software to its limits, so optimisation is crucial.

The elusive user experience

UI/UX design requires a deep understanding of your intended end users. “Understanding who your users are, why they need your software, and how competent they are at using technology are all questions that need to be answered before you start designing software in the real world,” says Angelos. “As you expand your audience, the software development process becomes more complicated, as you might need to account for cultural differences and multiple languages, as well as different laws and regulations.”

Reference
https://doi.org/10.33424/FUTURUM547

Angelos with Dr Wenbin Guo at the Digital Worlds Institute.
Students use QR codes to access and play the UFLI games on tablets. © Rebecca Fiore
Screenshot of the UFLI games.

Students using the UFLI apps on their classroom’s smart board.
© Rebecca Fiore

Getting the UI/UX of your software just right is a complex process. “In many ways, UI/UX design is a creative process that resembles art,” says Angelos. “There is an audience, and through your artistic creation, you are interacting with the audience – you are in a dialogue with them. The results are produced not just by lines of code, but by an elaborate creative process.” Angelos believes that experiencing the steps of this creative process and contributing to software that benefits thousands of users is a crucial experience for anyone looking for a career in software development.

Saving lives with coding

“Once the apps were tested and released, they were enthusiastically adopted by thousands of teachers around the world,” says Angelos. “On average, the UFLI games were being used over 30,000 times every school day, and, since then, many districts in the US and Canada have formally included them in their literacy curriculum.”

“After helping the students refine and improve their apps, Emily Laidlaw, our content expert, told the CURE students, “You are saving lives with coding”,” says Angelos. “She explained that their apps would help students with learning difficulties advance further in their lives, and have better chances for employment and further education.” Showing students that coding can be used as a force for good in the real world was a rewarding experience, and Angelos hopes to offer similar CURE courses again in the future.

Professor Angelos Barmpoutis
Professor of Digital Arts and Sciences, Digital Worlds Institute, University of Florida, USA

Field of research: Software development

Research project: Teaching undergraduates to develop user-friendly software by designing digital resources that are used in real-world contexts

Funders: University of Florida Literacy Institute (UFLI), UF Digital Worlds Institute, UF Center for Undergraduate Research (CUR)

About software development

Software development is the process of creating, testing and maintaining software. Coding is a crucial part of this process that involves using programming ‘languages’ to write lines of code that make computers perform small tasks which, when added together, amount to larger tasks. Angelos explains more about his discipline:

“These days, coding has become a necessary component of digital literacy. Previously the domain of computer scientists, it’s now becoming an essential skill in many other disciplines. The rising popularity of artificial intelligence (AI) is emphasising this, as training an AI model requires a basic knowledge of computer programming. On the other hand, AI chatbots, such as ChatGPT, are becoming valuable tools to support coding and problem-solving. Many universities have started embedding AI in all subjects.

“Open-source initiatives enable useful code and software to be shared for free. Public repositories, such as GitHub, facilitate collaborative efforts, with tangible positive impacts on the world. Examples include open-source scientific tools for medical image processing and drug discovery. By following reusable design principles, code can be repurposed in the future, meaning people can use others’ code as building blocks for something more complex and potentially impactful.

“We use some sort of digital system for almost everything we do. Checking messages on your phone, streaming music or movies, contactless payments; the list goes on. For each of these activities, a software developer had to think about how to make them convenient, engaging and secure.

“Since computing systems were first used in academia, scholars have stressed the importance of integrating computer programming across curricula, with many arguing that computer programming is as essential in the liberal arts as it is in science or engineering. Artists use programming to create digital art using computer algorithms such as AI, and neuroscientists use coding to help doctors diagnose more accurately.”

Pathway from school to software development

At high school and college, useful subjects include mathematics, physics, computer science and other science subjects. Many universities offer courses in software development or related fields such as software engineering and computer science.

However, it is not essential to go to university to become a software developer. You could also attend coding bootcamps (training courses that teach you how to write code) or teach yourself how to code.

Learning how to code is an essential skill and there are many learning tools that can help you including learnpython.org, codeacademy.com and even ChatGPT, which Angelos says can be used as a personal coding tutor, helping you build and dissect lines of code.

Explore careers in software development

The University of Florida Digital Worlds Institute offers the Digital Arts and Sciences programme that lets students explore the edge of experience design, wearable and mobile app development, and game design.

Read this article to learn more about what it’s like to be a software developer.

According to Indeed, a software developer in the US has an average annual salary of around $105,000.

Meet Satvik

Satvik Vippatoori is a software development and economics student at the University of Florida. He participated in Angelos’ CURE in 2023.

What inspired you to become a sociologist?

I entered university with a passion for learning, but with little idea of what I wanted to do with my life. All that changed when I took a sociology course. I began to realise that seeing the interconnections between private troubles and public issues was a powerful way to push for social change and make the world a better place.

What experiences have shaped your career?

I sometimes think that my career path has been marked by chance occurrences that, in hindsight, have been pivotal to moving my career forward. I’ve also been blessed by wonderful mentors who have both inspired and guided me.

What are your proudest career achievements so far?

I’ve been fortunate to be the recipient of several prestigious teaching and research awards over the course of my career. I take tremendous pride in each of them, but the awards I treasure most are those that were student-nominated. It is very meaningful to know that students feel that their lives have been positively impacted by my teaching.

What are your aims for the future?

My goal is to keep doing what I am doing. I am the author of two textbooks that are regularly revised to keep up with new trends and world events. I find joy in encouraging students to become critical thinkers and lifelong learners. And, I will continue conducting research that further reveals the unique dynamics of Canadian families in the twenty-first century.

Satvik’s top tips

1. Never be afraid to experiment. You will always run into issues, but the ability to learn from those failures and apply those lessons to other situations is what will truly make you shine.

2. Find mentors and communities where you can share your work and get feedback.

3. Software development is a constantly evolving field, so be curious, keep learning and always explore new technologies.

Meet Angelos

I belong to the generation that witnessed the entire digital transformation. I was always intrigued by technology, even when it was not as attractive as it is today. I recall the first personal computers of the 1980s which were not at all intuitive to use, through to more capable computers in the 1990s, and then the internet revolution that transformed almost every aspect of our lives. Even from the first simple video games, I wanted to learn more about how digital technologies worked.

When I started college as a computer science major, my course taught a programming language called Pascal. My anticipation for this class was so intense that I read the entire textbook in one day! I have never stopped programming since then.

I love that my work is highly interdisciplinary. I have the opportunity to collaborate with colleagues from many different fields of study to co-create ways to improve their methods using emerging digital technologies. Collaborative spaces like the Digital Worlds Institute facilitate innovation and create the synergies needed to invent solutions to real-world problems. For instance, one collaborative project involved inventing a new method for digitising historical artefacts in three dimensions, helping archaeologists create more accurate translations of the famous Rosetta Stone hieroglyphics. Another involved helping neurologists diagnose Parkinson’s disease more accurately.

There are two key skills for software developers: being able to systematically organise your thoughts, and breaking down problems into smaller, simpler problems. I ask my students to focus on organising their code in a well-structured manner, rather than displaying proficiency in any particular programming language. These skills have helped me handle large-scale projects with hundreds of thousands of lines of code, which become very cumbersome to debug, maintain and update if not well-organised.

Social skills and communication are also vital for software developers. You need to understand users’ needs, and communicate your work without using technical language so that others can understand you. By working with a wide range of people, including medical doctors, scientists, artists and archaeologists, I’ve been able to cultivate the ability to ‘speak their language’, which is very useful.

Angelos’ top tip

Be adaptive, and learn how to learn. Technology changes rapidly, so it’s important to keep up. Be constantly open to learning new skills; computer languages become obsolete over time as technological standards shift, so aim to make your knowledge applicable to the future.

Do you have a question for Angelos?
Write it in the comments box below and Angelos will get back to you. (Remember, researchers are very busy people, so you may have to wait a few days.)

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

 

 

Learn more about how to create accessible software:

www.futurumcareers.com/creating-software-that-works-for-everyone