Colloquium Archive

Multirobot Coordination: From High-Level Specification To Correct Execution

Nora Ayanian, Gabilan Assistant Professor of Computer Science, USC Viterbi School of Engineering


Using a group of robots in place of a single complex robot to accomplish a task has many benefits, including simplified system repair, less down time, and lower cost. Combining heterogeneous groups of these multi-robot systems allows addressing multiple subtasks in parallel, reducing the time it takes to address many problems, such as search and rescue, reconnaissance, and mine detection. These missions demand different roles for robots, necessitating a strategy for coordinated autonomy while respecting any constraints the environment may impose. Synthesis of control policies for heterogeneous multirobot systems is particularly challenging because of inter-robot constraints such as communication maintenance and collision avoidance, the need to coordinate robots within groups, and the dynamics of individual robots.

Classic Games

John Aycock, University of Calgary, Alberta, Canada


Even the simplest old computer games may have required technical miracles to get running at all --retrogame programmers were constrained by both hardware and software in ways that are unimaginable now. Retrogame archeology looks under the hood of old games to uncover the clever tricks that make them tick. Learn about what retrogame archeology is (and isn't) and how old games are studied today

Survey Of Quantum Computation & Applications

Jennifer Chubb Reimann, University of San Francisco


The notion of quantum computing is older than you might think. In 1981, Richard Feynman put forth the idea that computers designed to exploit the principles of quantum physics should be fundamentally different and have more capabilities than classical computers. It was in 1994, when Peter Shor unveiled his algorithm for factoring numbers in polynomial time with a quantum computer that the subject attracted the attention of a large community of researchers. Since then, scores of computer scientists, mathematicians, and physicists have worked on developing the theories of quantum computing, information, logic, and cryptography, and research teams all over the world are racing to implement their discoveries. In this talk, we will survey the history and some applications of the subject, in addition to seeing something about what quantum computing is, and what makes quantum algorithms different from the programs we write every day for our classical machines.

The Stored Program Computer And Some Early Computational Abstractions

Andru Luvisi, ISO, SSU


The stored program computer held instructions and data in the same memory. This enabled programs to manipulate other programs (or even themselves!) and made it possible to decouple the external representation of a program from the actual instructions executed by the machine. This in turn allowed new forms of abstraction to be created and used by implementing them in software. I will discuss the creation of the stored program computer and some early software and hardware ideas related to computational abstraction.

Optimizing The Performance Of A Cuda Kernel

Peter Pacheco, University of San Francisco


General purpose programs for Graphics Processing Units (GPGPU) have become an extremely important tool in High-Performance Computing. However, because of the novelty of the architecture of GPU's, optimizing the performance of GPGPU's can be very challenging, and it may involve some subtle changes to the "obvious" code. We give a brief introduction to the CUDA API for programming Nvidia GPU's, and then discuss optimization techniques for a simple dot product.