Computer Science | Computer Engineering | Software Engineering

Our stellar programs attract oustanding students from around the world who work closely with our faculty to advance state-of-the-art research in computing technologies. We attribute our success to a strong tradition of collaborative research, close working relationships with local industries, state-of-the-art facilities and a dedicated committment to student achievement.

We offer bachelor of science degrees in computer science (CS), computer engineering (CPE), and a master's degree in software engineering (MSE). Our MSE program is unique within the UW system and offers graduates very desiriable employment opportunities. We also offer a very popular dual-degree program that awards students a BS in Computer Science and a Master's in Software Engineering within a condensed time frame of only five years. If you have any questions please contact us at


Spring 2021: Lab Schedule
Spring 2021: MFT requirement is waived

Funding for Summer 2022 CS and Engineering Camp

Working in collaboration with UWL's Office of Multicultural Student Services, Professor Elliott Forbes has received funding from the Wisconsin Department of Public Instruction to host the UWL Computer Science and Engineering Exploration Camp. The summer camp is for pre-college students who live in low-income regions where access to equipment and expertise is not available. Converging on UWL's campus in the summer of 2022, students will stay on campus and participate in leadership and team-building exercises. Throughout their stay, students will be introduced to the fields of computer science and computer engineering, with activities that will give students hands-on exposure to the day-to-day tasks that computer scientists and computer engineers perform in their careers. The CS department will also recruit existing UWL Computer Science students to give a panel talk about life as a UWL student, and their experience with the Computer Science and Computer Engineering programs.

Continuing NSF Research

Prof. Allie Sauppé continues work on a National Science Foundation grant, together with colleagues at UW-Madison and University of Washington, which seeks to develop a framework for computationally validating appropriate robot social behaviors. For example, if you program a robot to approach someone, say "hi", and then walk away, is that robot following typical human social behaviors? No! Will it be successful in whatever tasks it is assigned to do? Probably not! Humans don't like technology that behaves in unexpected ways. Right now, tools for programming robots do nothing to ensure that the programmer is implementing appropriate social behavior, primarily because there is not yet a framework for automatically validating whether a provided program is socially appropriate. For this summer, Prof. Sauppé and Peter Aloisi, a UWL MSE student, are beginning work on his capstone project to develop a visual programming environment that will introduce secondary school students to programming robots in socially appropriate ways. During the next school year, they will test the programming environment with a local homeschool co-op group.

CS Alumn Presentation: June 23

Andrea Connell, ’08, is part of NASA’s Jet Propulsion Laboratory in Pasadena, California, which has helped oversee planning and operations for the Mars Perseverance rover. Adrea earned her undergraduate degree in Computer Science and then went on to earn her master’s degree from the University of Hawaii. During this time, she worked as a summer intern with the Jet Propulsion Laboratory. She will be giving a presentation on her work with the Mars Perseverance project on Wednesday as part of the What's New Wednesday series. The program is free and open to anyone: register online here.

CS Alumn Authors Kotlin Book

CS Alumn Michael Fazio recently completed a book called "Kotlin and Android Development featuring Jetpack". The book is currently available in eBook form while physical copy should be available in late June of 2021. The book is published by the Pragmatic Bookshelf, run by the same people who wrote "The Pragmatic Programmer", a well known text that has been popular for the last 20 years; a rare feat in the technology field. The author appreciates his time at UWL saying that "Development first clicked for me in her [Dr. Mao Zheng's] class and I wouldn't be where I am without her"!

NSF Research Award

Professor David Mathias has received a National Science Foundation grant to fund his research group’s work on swarm intelligence.  Inspired by natural swarms, such as insects, artificial swarms consist of a large number of relatively simple agents.  Depending on the application, the agents can be hardware (small robots, for example) or software.  The large number of agents provide redundancy within the swarm.  If one agent is lost or damaged, another can replace it.  One reason that swarms are not yet used in real-world applications is that decentralization — having agents independently decide what tasks to perform in pursuit of the group’s goals — is a difficult problem.  Dr. Mathias’ research, in collaboration with Dr. Annie Wu at the University of Central Florida, seeks to develop effective decentralized task allocation.  That is, ensuring that agents self-select tasks such that all tasks are appropriately addressed.  The NSF grant will enable undergraduate student participation in the research for the next fiscal year.

Evolutionary Computation Lab: Summer Researchers

Bee hives are marvels of nature. Thousands of individuals relentlessly pursue the goal of ensuring survival of the colony by performing tasks such as caring for the brood, constructing and repairing the hive, foraging for food, and maintaining the hive temperature in a very narrow range of approximately 32 to 35 degrees C. Amazingly, all of this occurs with little centralized control.

This summer, four UWL Computer Science students will use bees as inspiration to solve decentralized, dynamic task allocation problems for artificial swarms. Artificial swarms consist of large numbers of relatively simple computational agents that must achieve a common objective through repeated performance of one or more tasks. The ultimate goal of such research is to enable creation of robotic swarms capable of self-organizing to solve complex problems. Working with Dr. Annie Wu and her research group at the University of Central Florida, Dr. David Mathias' Evolutionary Computation Lab explores ways to ensure that agents in artificial swarms allocate themselves to tasks in appropriate numbers so that all tasks are completed and extra work performed is minimized.

Junior CS major Dan Fedorenko will develop a new, much more general testbed simulation for our swarm work. The current simulator is limited to four tasks. Dan will create a generalized simulator that allows the user to determine the number of tasks and how much work must be performed for each task at any given time.

Undergraduate CS major Zach Gephart, recipient of a College of Science & Health Dean's Distinguished Fellowship, will examine the effects of a changing task set. In other words, how does the swarm cope when new tasks are introduced, requiring that new agents with the capability of performing those tasks replace some existing agents. His work will require making significant changes to our existing simulator, running numerous experiments, and analyzing the results.

Dan Fedorenko (left) and Zach Gephart (right)

MSE candidate John Lanska is undertaking a particularly challenging and fun problem. Combining two of David Mathias' passions, swarm intelligence and soccer, John will attempt to create a simulated robotic soccer team that is competitive with other such teams. John's team will use our principles of decentralized, dynamic task allocation rather than more typical machine learning techniques. This work is based on the well-known RoboCup robotic soccer competition (if you are not familiar with RoboCup, it's worth watching one of the many videos on YouTube).

Having completed just his first year at UWL, Eagle Apprentice Walter Leifeld is using a genetic algorithm to evolve effective behaviors for agents to solve our testbed problem. This work combines swarm systems with evolutionary computation, a method for solving computationally difficult problems. The ultimate goal is to develop a genetic algorithm that will allow us to create behaviors that will work effectively for all problems in the simulator.

John Lanska (left) and Walter Leifeld (right)

All of these projects are on the cutting edge of artificial swarm research. Zach, Dan, Walter, and John join a long list of UWL CS students making significant contributions to advancing science while pursuing their degrees.

Deans Distinguished Fellow: Zach Gephart

Zacharay Gephart has received a Dean's Distinguished Fellowship for research with Dr. David Mathias. The project will explore using swarm intelligence for tasks such as robotic path planning. Here is an abstract of his research.

In the ever-expanding field of robotics, the demand for innovation is constant. One emerging field of innovation that has yet to be fully explored can solve problems by forming behaviors similar to those found in the natural world. This field features swarms of many artificial agents working together to achieve common goals. An important aspect of an intelligent swarm system is that it is entirely decentralized, meaning each individual decides the task it wants to perform and when. This research will introduce a high degree of environmental dynamism, in the form of changing task sets and agent population to examine the swarm’s ability to adapt to these changes. This work is inspired by natural swarms, in particular, those of eusocial insects such as ants and bees. In these societies, individuals are regularly replaced as part of the lifecycle and in response to changing needs. In our system, we will similarly replace agents in response to changing tasks. Because real-world environments are very dynamic, the results of this research may help make use of artificial swarms for realistic problems more attainable.

UWL Faculty Friday with Dr. Foley

Dr. Samantha Foley was recently featured on a livestream interview/presentation sponsored by UWL's International Admissions office. She gives a great overview of the CS department including academic programs, research projects, job opportunities, student groups and the like. The presentation is available on youtube.

Tutors Available

Tutors are available to help students in CS 120 and CS 220. Tutoring hours are Tuesday, Wednesday, and Thursday 3:00-5:00 through Zoom or Discord. Get the link from your 120/220 instructor if you would like to participate.

SIGCSE 2021 Presentation by Dr. Foley and Adam Yakes

Recent MSE graduate, Adam Yakes, will be demonstrating his MSE project at SIGCSE 2021. He collaborated with Dr. Samantha Foley to develop a software tool meant to aid students learning about concurrency. The tool allows students to adjust a variety of parameters that affect concurrent behavior and to visualize the affect of these parameters on a set of classic concurrency problems that are frequently taught in CS-441, Operating Systems Concepts.

The application specifically seeks to help students understand how concurrency and non-determinism can impact resource utilization, waiting time, and the likelihood of deadlock. The tool runs in the browser allowing students to play with these problems on any system, view an animation of a particular run, and view aggregate results. The work will be presented at SIGCSE 2021, which is being held remotely this year, as a demonstration session on Wednesday, March 17th.