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 If you want to continue pursuing research and expand your learning, you will work with a supervisor to develop a thesis. As a graduate student at the PhD level you will be expected to conduct meaningful research that expands the scope of your graduate work.
The study of the design, analysis and implementation of algorithms is at the heart of computer science. It is difficult to envision any large-scale computer application, such as an operating system, compiler, large-scale database system or computer graphics package that does not rely on the use of effective algorithms and data structures. Researchers in our group explore a variety of algorithm types and areas of application. Applications include computational geometry, graph theory (including graph drawing), bioinformatics, learning theory, network routing, search engines, database systems, quantum computing, number theory and formal languages. Approaches include the study of randomized algorithms, adaptive techniques, approximation algorithms, fixed-parameter tractable algorithms and the mathematical analysis of the performance of algorithms, as well as issues of implementation. The organization and structuring of data, fundamental to the performance of most algorithms, is a major area of study. Computational complexity is the study of the inherent limits of efficient computation measured in terms of time, space and other resources such as randomness. Our group includes researchers in various aspects of complexity theory including Kolmogorov complexity, as well as cryptography.