The David R. Cheriton School of Computer Science has an international reputation in teaching, academics, research, and employment. We attract exceptional students from all over the world to study and conduct research with our award-winning faculty. You can participate in research projects in a wide variety of topics with our internationally acclaimed researchers. Our research spans the field of computer science, from core work on systems, theory and programming languages to human-computer interaction, DNA and quantum computing to theoretical and applied machine learning, just to name a few. As a graduate student, you will: Access research-intensive lab spaces. Gain the opportunity to publish your work in top conferences and journals. Present at premier conferences in front of peers, industry leaders, researchers, and experts in your field. As a graduate student, you will have the independence to pursue your preferred area of research with a faculty supervisor, or complete eight courses to fulfill your degree requirements through the coursework option.
WatForm (Waterloo Formal Methods) draws its members from the Cheriton School of Computer Science and the Department of Electrical and Computer Engineering. The group uses rigorous mathematics to engineer real-world, computer-based systems, ranging from microprocessors to telephone systems. Mathematical modelling and analysis can reveal errors early in the development process, when they are easiest and cheapest to correct. Digital-system designers rely on a hierarchy of abstractions, ranging from switch-level models to instruction-set architectures, to treat collections of transistors as single modules. Missing is an abstraction level between the register-transfer level and the functional-block level. The group is developing a theory of the structure and behaviour at the pipeline level, which will make design and validation more systematic, thorough, and productive. Using this theory, the group is investigating ways of verifying high-performance microprocessors with complex optimizations, such as out-of-order and superscalar execution. The rising complexity of automatic control systems poses problems of formal verification and synthesis. Modern automation requires not only the design of small-scale feedback loops, but also the co-ordination of large numbers of interacting subsystems. The group is devising analysis and synthesis methods for large-scale discrete-event control systems.