At the Information Science Department in the Faculty of Arts and Social Sciences at Stellenbosch University (SU), a group consisting of computing and information scientists and engineers are leading the way in algorithm improvements in software as they search for the correct construction techniques to use when designing new algorithms in future. According to the researchers, the project's findings will help reduce the amount of software bugs that so many consumers have learned to live with in everyday items over the years.
An algorithm is a set of steps designed to allow a computer programme to perform a task such as a calculation, the processing of data or even reason.
"People seem to have a high tolerance for software bugs in things like computers and even in navigation systems like those on airplanes. However, through our research we are aiming to find ways to build software that functions correctly from the start especially where there is a life and death component, as is the case with software used in cars and airplanes today," says Prof Bruce Watson, the Head of the Information Science Department and a Professor of Informatics specialising in cyber and information security, algorithms, artificial intelligence, computing and data science.
The project, called Correctness-based taxonomies and toolkits for algorithms, aims to "use correctness-by-construction techniques for the design of new algorithms, while at the same time creating classifications of existing algorithms". Watson is working on the project together with Prof David Pearce, a computer scientist from the Victoria University of Wellington in New Zealand, Prof Ina Schaefer, an automotive software engineer from the Technische Universität Braunschweig in Germany, and two research associates, Prof Loek Cleophas, who specialises in computer science and engineering at the Technische Universiteit Eindhoven in Eindhoven in the Netherlands, and Prof Derrick Kourie, who specialises in artificial intelligence, information systems (business informatics), and programming languages at the SU department.
As part of their research, the academics are also exposing undergraduate students to their work by teaching them how to "build systems that work correctly the first time around".
"We are doing this by borrowing tried and tested ideas from other fields of engineering. If you look at mechanical and civil engineers, they took centuries to analyse and understand how physical structures are built. They did this by taking existing structures, scaling them and then looking at how different supports used in these structures linked together to work effectively and how different components in these same structures worked to make the whole structure function. They were basically looking at the mathematics of these structures," explains Watson.
"This is exactly what we mean when we talk of the correctness for programming. While we know what a program must do, we are now breaking it into small pieces and testing each piece to see if the parts work. The reality is that if you build correctly in the first place then you don't have to create software updates to fix these bugs later and the end user is guaranteed a much better user experience."
While a lot of what they are doing in this project is based on mathematics principles, Watson's says they have taken the "sting out of it" by figuring out how to make the mathematics component fun, but still rich enough for effective learning.
"We've gone to a lot of effort to make the math intuitive and fun so that students with a basic understanding of mathematics can "get it" easily even if they're not a mathematician," adds Watson.
First-year students completing a BA in Socio-Informatics are already being taught about algorithms through the Whiley programming language and tools developed by Pearce.
"While there may be scepticism that we are trying to do something in the information sciences which seems to belong in engineering or computer science, we have seen that information, computation and maths literacy are actually important no matter what career students decide to pursue in future. We are living in a digital age where our ability to absorb and process knowledge accurately in a work environment is vital. At the same time, information systems – examples include computers that store data on customers' in-store and online purchases at large retailers like Edgars, Woolworths or Takealot, as well as at banks like Capitec and medical aid schemes like Discovery Health – have become an indisputable part of our world and play a vital role in helping us understand for example customer preference, in modern organisations," explains Watson.
"As a society, we recognise the value of literacy and the importance of reading and writing skills. There is also a universal acceptance that these skills are important to master irrespective of whether we intend using those skills in pursuit of a career as a poet or author. Over the years, people have also started recognising the value of math literacy for everyday life, even if you don't intend becoming a mathematician in future. South Africa still needs to go quite a distance in this regard, but at the same time, there is a worldwide need for the new generation to recognise the value of information and computation literacy to be able to function in a digital society. In future, you won't even be able to function without these skills and it is one of the reasons that the research we do is also directly linked to the skills and knowledge we share with our students."
Photo: Discussing computational equations: Prof Derrick Kourie (left) and Prof Bruce Watson, both from the Information Science Department at Stellenbosch University, discuss computational equations for a research project investigating algorithm improvements in software. (Richard Barnett)