Paul Werbicki
Research Synopsizes
Multi Agent Systems
Dr. Jörg Denzinger
Multi Agent Systems includes the modeling, development and implementing of systems in which autonomous agents act in a common environment. In this common environment an agent receives information called precepts. Based on these precepts an agent uses internal logic and states to decide on certain actions to perform. The realization that agents exist in other disciplines other than Computer Science provides opportunity for cross-disciplinary research. Active research areas in Multi Agent Systems include work on cooperative and indifferent or competitive Multi Agent Systems.
Intelligent Support for Software Analysis and Design Decisions
Dr. Guenther Ruhe
In the process of Software Engineering, an underlying philosophy is that to be successful you must combine many disciplines in the development process. In any software life cycle there are numerous decisions that need to be made. Poor decisions early in the development cycle have the potential to cause serious issues later on. Decision Support helps improve the accuracy of decisions that occur early on in the development cycle using knowledge, experience, modeling, simulations, reasoning and decision analysis. Some of the first stages in the development cycle include release planning, requirements elicitation and third party software selection. Techniques such as evolutionary algorithms provide decision support tools in these areas.
Evolution, Aspects and Experimentation
Dr. Rob Walker
Software evolution is the concept of software changing over its lifetime. As software is actively used bug fixes, new features and environmental pressures require that further development on the software occur. For larger software projects change can be very difficult due to size, complexity and availability of resources. Any change that occurs also has the potential to introduce further errors in the software. Research in this area attempts to improve the process of software evolution using Aspect Oriented Programming. Aspect Oriented Programming isolates common code and re-enables existing code while locating all of the changes in one place. Other research uses a technique called implicit context to remove aspects from code in a way that will ultimately lead to the simplification of the remaining code.
Cryptography and Information Systems
Dr. Micheal Jacobson
Cryptography and Information Systems deal with the mathematics and theory behind computer cryptography. Historically Diffie-Hellman is an example of the first use of number theory in cryptography. There are two ways to analyze cryptography: analyze the security of algorithms using public information, and analyze the protocol used to transmit that information. Analyzing the Diffie-Hellman algorithm we find problems relating to both analysis methods. The security of cryptography systems is based on the presumed difficulty of solving a hard mathematical problem. Active areas of research and application of cryptography include large-scale distributed computing, custom object oriented development of cryptography systems and algorithm optimization.
Quantum Computation
Dr. John Watrous
Quantum mechanics is the next stage after classic physics and represents many new possibilities in computer science. Quantum computing applied to information processing tasks reveal potential break-troughs in computation, cryptography and communication protocols. Quantum computing is the application of probability theory in relation to quantum mechanics. Quantum computations are able to perform tasks that classical computing, which is based on classical physics, currently cannot. One example is the ability to factor a number in polynomial time, something that is not possible currently but is theoretically possible in quantum computing.
Digital Media Laboratory
Dr. Jim Parker
The Digital Media Laboratory researches how computers interact with text, image and sound. Pattern recognition is an underlying theme with new developments being made in how computers recognize various media. Advances and research are being performed in character recognition, and intelligent text and imaged searching. Image analysis is another area of research performed by the Media Lab. Areas include general vision, similarity searches and biometrics (face and signature recognition). The final body of work is in the area of sound representing a fairly difficult medium to work in. Sound synthesis and voice recognition are two active topics.
Geometric Algorithms and Applications
Dr. Marina Gavrilova
Computational Geometry is about the implementation of geometric algorithm in applications. Geometric algorithms cover areas that include modeling and simulations of natural processes, collision detection optimization, and terrain modeling. Active research is being performed in the areas of optimization, visualization, image process and mapping and numerical stability.
Parallel and Distributed Systems
Dr. Rob Simmonds
Parallel and distributed systems cover many areas of research including network simulations, Discrete Event Simulations and grid computing. Discrete Event Simulations model systems at discrete points in time. Parallel Discrete Event Simulations involve running several discrete simulations as fast as possible while correcting for errors caused by parallel execution. This technique is used for network simulations where tools allow simulations of scenarios based on real networks. Grid computing is a set of services used to enable interoperability across administration domains. Basic services such as authentication, resource discovery, scheduling and data movement are homogenized across the grid. A computational grid is a virtual construct used to secure resources using basic grid services on multiple machines. WestGrid, a partnership between western universities, provides HTPC resources to Alberta and British Columbia, and is an example of grid computing.
Agile Software Engineering
Dr. Frank Maurer
The essence of Software Engineering is about the development of professional software at a reasonable price. Agile methods are a new software development methodology used to help improve the success of software projects. Agile software focuses on people, software, customer involvement and embracing of change over processes and tools, documentation, contract negotiation and excessive planning. Agile methods contrast other tayloristic methods that follow a waterfall approach. Research focuses on empirical studies on productivity and perceptions and the development of agile software tools. Abuse of agile methodologies is rampant and studies help lend credibility to agile software development.
Hockey Night in the Vision Lab
Dr. Jeff Boyd
The vision lab performs research on the surveillance and tracking of moving objects. A common framework has been developed by embedding algorithms that are used over and over into a camera that in turn provides higher-level information on the movement of objects within the camera’s view. The cameras become servers of object movement that is available over the network to client software. Client implementations include a motion swarm demonstration that was showcased at the Nickel Arts museum. Active research is being made in the tracking of hockey players on a hockey rink. Cameras are connected to a game server that clients such as PDAs connect to in order to watch the movement of the game in real-time. Homography is the process that maps the camera views to a 2D overhead view suitable for display on many devices.
Programming Language Implementation
Dr. John Aycock
The implementation of programming languages involves building compilers, building tools for building compilers and building tools for enhancing existing tools for building compilers. Compiler construction crosses many areas of Computer Science such as computation, architecture, software engineering, data structures and operating systems. Active research includes improving existing compiler tools, work on scripting language implementations and the development of alternate operating system models. Older solutions that in the past lacked computational resources are being revisited now that computers are more powerful.
Evoltuion and Swarms – Computational Biology, Bioinformatics and Beyond
Dr. Christian Jacob
Computational biology is challenged with how to combine biological systems with computations systems. The main area of research is evolution where genetic coding is used to create complex organisms. Genotypes provide the program code to map this information into phenotypes. Computationally this is done using genetic computer programming which allows a computer to be programmed without telling it explicitly what to do. Programs evolve over time through random mutations that selectively weed out programs that do not achieve a particular fitness level. Swarms are an example of how genetic algorithms simulate how biological systems such as bees in a swarm behave. These tools help biologists study these complex behaviors.
Wireless Internet Performance
Dr. Carey Williamson
Research in the area of wireless performance involves all of the layers of the protocol stack above the physical layer. The emergence of wireless technologies provides the opportunity to research wireless performance, traffic modeling, wireless network simulation and the development of wireless applications. Mobile devices are extensively used in conjunction with Bluetooth, 802.11b and 802.11a technologies. Active research areas also include web performance in which clustered web servers, load balancing and proxy caching is used to improve network performance. A big part of network performance research involves the measurement and analysis of network traffic over large networks.
Fault Tolerant Distributed Algorithms
Dr. Lisa Higham
Research into the correctness of algorithms is highly theoretical however in practice incorrectness often causes serious computational and system errors. In a distributed system operations happen asynchronously and the time each operation takes to complete is arbitrary. The goal is to prove that for a given algorithm, regardless of execution and order, the correct output is achieved every time. In non-deterministic algorithms we have a very complicated scenario where two forces perform probabilistic steps. A solution is to employ random algorithms that can achieve operations faster then deterministic ones. Failures in a system represent another area where distributed algorithms have the potential to produce incorrect output. Research is being performed to enable distributed computations to recover from failures using a technique called self-stabilization.
Computational Biology and Computer Graphics
Dr. Przemyslaw Prusinkiewicz
Computational biology is the development of the macroscopic form of multi-cellular organisms from genes to phenotypes. Research uses experimental and mathematical modeling, simulation and visualization to model biological structures. The use of modeling in developmental biology is just being established. The challenge lies in the use of dynamic systems with dynamic structures. L-systems are a technique used to address the complexity of these dynamic models by using a special model specification language. L-studio is software that has been developed to facilitate the simulation and rendering of plant growth using L-systems.
Computer Algebra
Dr. Wayne Eberly
Numerical analysis is a mature area of computer science that provides approximate solutions to computations. Using a numerical package such as MatLab, numbers are approximated using real numbers. These approximations often introduce errors into complex calculations. Computer algebra is a new area whose goal is to provide exact answers to computations. Current software that is able to perform these exact calculations includes Maple and Mathematica. These powerful systems are improving as generations of the tools evolve. Other active research areas include computer algebra algorithms and the representation of mathematical equations on the web using OpenMath and MathML.
Quantum Information Processing
Dr. Richard Cleve
Moore’s law is a constraint on the computing industry that will eventually lead to transistors that operate on the atomic scale. At the atomic scale classical physics give way to the effects of quantum mechanics. With quantum information systems we have the potential to achieve such things as unbreakable cryptography with short key lengths, fast factoring algorithms that render classical cryptography obsolete and performance improvements to communications protocols.
1