Faculty members in the Computer Science Department undertake research in three broad research areas: algorithms, computational intelligence, and formal methods. Many graduate and undergraduate students have studied in these areas under faculty supervision. Students are encouraged to explore the personal pages [1] of faculty members to find detailed up-to-date information about their research activity, publications, and supervision.

**Formal Methods**

Computers are used everywhere in modern society. Software errors can be disasterous for public safety and the economy. Formal methods [2] is a field of computer science that uses algebra [3] and logic as tools for software design and analysis. By applying rigorous mathematical techniques in the software engineering process, more reliable software can be produced, and errors can be more easily avoided. Faculty research explores different topics in formal systems, ranging from program specification and refinement, formal database design, and new approaches to mathematical reasoning.

*Example publications:*

- "Categories of Relations for Variable-Basis Fuzziness." M. Winter and E. Jackson,
*Fuzzy Sets and Systems*, http://dx.doi.org/10.1016/j.fss.2015.07.004, 2015

- "Rough set clustering." I. Düntsch and G. Gediga. In C. M. Henning, M. Meila, F. Murtagh, and R. Rocci, editors,
*Handbook of Cluster Analysis*, Handbooks of Modern Statistical Methods, chapter 5. Chapman & Hall, 2015

**Algorithms**

The study of algorithms [4] is a fundamental research topic in computer science. Research explores the design of algorithms to accomplish important tasks, as well as their effectiveness, complexity, and relationships to other known approaches. Faculty members are working in a number of areas of algorithm research. The study of parallelism [5] is an active area of research in the department. This research uses mathematical modeling to analyse properties of parallel systems. New algorithms are developed that exploit parallelism in innovative ways. The design of effective parallel algorithms results in faster and more efficient programs and networks.

Faculty are also studying topics in coding theory [6], which is concerned with the development and implementation of representations of information. Developed systems can aid in the detection and correction of errors in transmitted messages. Other research in coding theory explores cryptography, which is concerned with ways to hide message content for privacy reasons. Related to coding theory, combinatorial optimization [7] research involves the study of ways to find optimal configurations of information and mathematical objects. This research often explores whether these optimal objects exist at all, and finding efficient ways to determine them. Coding theory and combinatorial optimization have many practical applications, for example, problems in bioinformatics [8].

*Example publications:*

- “On Disjoint Shortest Paths Routing in Interconnection Networks: A Case Study in the Star Graph”. E. Cheng, K. Qiu, and Z.Z. Shen,
*Congressus Numerantium*, 216, pp.157-180, 2013

- "Build a Sporadic Group in Your Basement", P.E. Becker, M. Derka, S. Houghten and J. Ulrich,
*American Mathematical Monthly*124, p. 291-301, 2017.

**Computational Intelligence**

Computational intelligence [9] is a branch of artificial intelligence that studies nature-inspired approaches to solving complex problems. Faculty research concentrates in a number of areas of computational intelligence. Evolutionary computation uses Darwin's theory of evolution as an inspiration for problem-solving by computers. Faculty are applying genetic algorithms [10] towards finding efficient solutions for complex problems in scheduling, graph layouts, bio-informatics, and other problems. Other research is studying genetic programming [11], and applying it in a number of application areas, ranging from network design, biological modeling, 2D art, and 3D graphics.

Particle swarm optimization [12] is a relatively new nature-inspired approach that uses an algorithm based on the flocking behaviour of birds. Particle swarm research has been used to solve problems in system optimization, among others.

Some faculty participate in the Bio-inspired Computational Intelligence Group (BICIG) [13].

*Example publications:*

" Vector-Evaluated Particle Swarm Optimization with Local Search". D. Dibblee, J. Maltese, B. Ombuki-Berman and A. Engelbrecht.

*IEEE CEC 2015*, Sendai, Japan, pp.1343-1350, May 2015

- "Exploring Non-photorealistic Rendering with Genetic Programming". M. Baniasadi and B.J. Ross.
*Genetic Programming and Evolvable Machines*, 16(2), pp.211-239, June 2015

"Algorithms for Speedy Visual Recognition and Classification of Patterns Formed on Rectangular Imaging Sensors". V. Wojcik and P. Comte,

*Neurocomputing,*74(1-3), pp.140-154, Dec 2010

- "Permutation Problems, Genetic Algorithms, and Dynamic Representations", J.A. Hughes, S. Houghten and D. Ashlock, book chapter for “Nature Inspired Computing and Optimization: Theory and Applications”, Springer book series on Modelling and Optimization in Science and Technology, p.123-149, 2017.