Artificial Intelligence
Description
Artificial Intelligence (AI) is the investigation of agents that make rational decisions based on input from external sources. These sources can be data from financial markets or biological systems, or physical input provided by cameras and other sensors. In the AI specialization, students can get experience in machine learning, robotics and other state-of-the-art systems.
Requirements
- COMP 3190 - Introduction to Artificial Intelligence
-
Two of:
- COMP 4180 - Intelligent Mobile Robotics
- COMP 4190 - Artificial Intelligence
- COMP 4200 - Expert Systems
- COMP 4360 - Machine Learning
Computer Systems
Description
The Computer Systems specialization is designed for students who have a desire to learn more about the lower levels of computing. This specialization allows students to focus on hardware-oriented aspects of computing, including compilers, operating systems and parallel computing.
Requirements
-
One of:
- COMP 3010 - Distributed Computing
- COMP 3290 - Introduction to Compiler Construction
-
Two of:
- COMP 4430 - Operating Systems
- COMP 4550 - Real-Time Systems
- COMP 4510 - Introduction to Parallel Computation
- COMP 4690 - Computer Systems and Architecture
Databases
Description
Modern society produces and stores vast amounts of data. In order to manage and understand this data, databases must be developed, maintained and mined for new information. Students in the database specialization will study these skills to be able to contributed to to the influx of information from areas as diverse as commerce, medicine and climate science, for example.
Requirements
- COMP 3380 - Database Concepts and Usage
- COMP 4380 - Database Implementation
-
One of:
- COMP 4710 - Introduction to Data Mining
- COMP 4740 - Advanced Databases
Human-Computer Interaction and Graphics
Description
Human-Computer Interaction (HCI) and Graphics are combined in this area of specialization to teach students how to design, implement and evaluate ways for people to interact with computing technology. Topics include ways in which people's needs and abilities should affect interface design, how to render and visualize information, and how to use novel devices and modalities to improve interactions.
Requirements
- COMP 3020 - Human-Computer Interaction
- COMP 3490 - Computer Graphics
-
One of:
- COMP 4020 - Human-Computer Interaction 2
- COMP 4490 - Computer Graphics 2
Networks and Security
Description
The networks and security specialization is designed for students interested in all aspects of computer networks. Networks provide the means for communicating between computers, and students will focus on both the low-level aspects of networking as well as higher-level concerns like security and cryptography.
Requirements
- COMP 4140 - Introduction to Cryptography and Cryptosystems
- COMP 4300 - Computer Networks
- COMP 4580 - Computer Security
Software Engineering
Description
Software Engineering is the study of the design and assembly of software systems. As such projects often need large groups to manage complex systems, students in this specialization will require skills in software design, project development and effective communication.
Requirements
- COMP 3010 - Distributed Computing
- COMP 3020 - Human-Computer Interaction
- COMP 3040 - Technical Communication in Computer Science
- COMP 3380 - Database Concepts and Usage
- COMP 4620 - Professional Practice in Computer Science
- COMP 4050 - Project Management
- COMP 4350 - Software Engineering 2
Theoretical Computer Science
Description
Theoretical computer science is the subfield of computer science interested in the mathematical aspects of computer science, and the computational aspects of mathematics. Theoretical computer science informs us about the limits of computing, the practicality of algorithms and other areas.
Requirements
- COMP 3030 - Automata Theory and Formal Languages
- COMP 3170 - Analysis of Algorithms and Data Structures
- COMP 4420 - Advanced Design and Analysis of Algorithms
-
Two of:
- COMP 4340 - Graph Theory Algorithms
- COMP 4140 - Introduction to Cryptography and Cryptosystems
- COMP 4510 - Introduction to Parallel Computation
Web-Based Systems
Description
Web-based systems look at applications or services that are resident on a server that is accessible using a Web browser
Requirements
- COMP 3010 - Distributed Computing
- COMP 3020 - Human-Computer Interaction
- COMP 3380 - Database Concepts and Usage
- COMP 4350 - Software Engineering 2
- COMP 4580 - Computer Security