My name is Andrew Berns, and I am an assistant professor in the Department of Computer Science at the University of Northern Iowa. I received my PhD in December of 2012 from the University of Iowa. Prior to my graduate education, I received my BS in Computer Science from the University of Northern Iowa in 2005 and was employed for several years as a software engineer.
Current TeachingMy courses for Spring 2017 are listed below. Course materials are available on UNI eLearning or by request.
- CS 2720: Software Engineering
- CS 3750: Software Verification and Validation
My research interests are in fault-tolerant distributed computing. The need for fault-tolerance in distributed systems has become acute recently due to the rapid increase in the number and mobility of computing devices, the ubiquity of network connections, and the increase of transient failures that alter the system in an arbitrary fashion. For instance, sensor networks can consist of thousands of nodes operating in hostile environments where node failures, network disconnections, and topological changes are expected behavior. A useful property for these systems, then, is the ability to automatically recover from faults. Examples of these properties include self-healing, self-organizing, and self-stabilizing. My research focuses on the study of these properties, collectively referred to as self-* properties.
My recent work is on a fault-tolerant paradigm called self-stabilizing overlay networks. An overlay network is a network where communication occurs over logical links, where each logical link is realized by one or more physical links. Self-stabilizing overlay networks guarantee the correct overlay network topology is built regardless of the initial state. Currently, I am working on novel applications for self-stabilizing overlay networks with Dr. Sukumar Ghosh. You may view my publications to get a better sense of my interests and work.