Regularly Offered Courses

The following courses are offered regularly by the Computer Science Department:

  • COMP 690A/B - Research Methods in Computer Science (restricted to thesis-based students)
    • This course aims to prepare students for conducting research in Computer Science. We will cover basic skills (giving talks, LaTeX, literature search) as well as techniques applicable to various steps of a research project: formulating research questions, writing proposals and theses, the peer review process, publishing conference and journal papers.
  • COMP 6777 - Mobile Ad Hoc Networking
    • This course covers advanced topics in mobile ad hoc networking (MANET), a typical wireless networking technology for Internet-of-Things (IoT). We cover the fundamentals of MANET architectures, network queueing analysis, link-layer channel/medium access control mechanisms (e.g., CSMA/CA, TD) and routing algorithms (e.g., Bellman-Ford, Dijkstra).
  • COMP 6901 - Applied Algorithms
    • This course familiarizes students with the design and the formal analysis of classical algorithm paradigms. Topics include graph algorithms, greedy algorithms, dynamic programming, network flows, and linear programming. We will analyze these algorithms formally, including proving bounds on their runtime and their proofs of correctness.
  • COMP 6903 - Concurrent Computing
    • Parallel programming considers the fundamental aspects of programming for parallel architectures. This course will focus on the considerations and challenges of writing parallel programs, particularly for multicore processors and graphics processing units.
  • COMP 6905 - Software Engineering
    • We start with review of the basic skills necessary for a developer to function in a software engineering context. Next, we focus on methods and technologies that enable us to specify, design and implement complex systems. Finally, we look at technologies that support the control, assessment, and implementation of changes throughout the development.
  • COMP 6907 - Data Mining Techniques and Methodology
    • Covers core data mining techniques including data preprocessing, classification, association analysis, clustering, anomaly detection, and result validation. Applied to problems such as bot detection using decision trees, customer segmentation with K-means, market basket analysis via Apriori, and anomaly detection using DBSCAN and statistical tests.
  • COMP 6908 - Database Technology and Applications
    • This course introduces students to database processing, database management systems and database design considerations. Additional topics covered include the theory and methodologies essential for the relational database design, implementation and management under the corporation as well as web application environment.
  • COMP 6909 - Fundamentals of Computer Graphics
    • This course introduces the student to fundamental concepts and developments in 3D computer graphics. The underlying algorithms, as well as the basic techniques to develop interactive 3D graphics systems including games and simulators, are presented. Topics of the course include 3D geometrical transformations, 3D projections, and rendering.
  • COMP 6910 - Services Computing, Semantic Web and Cloud Computing
    • Topics include cloud service models, virtualization, data centers, cloud resource management, cloud storage, and cloud applications and platforms. We explore the underlying backend technologies that enable the construction and operation of efficient cloud environments and gain the knowledge needed to design, deploy, and manage cloud-based solutions.
  • COMP 6912 - Autonomous Robotics
    • We examine the fundamental constraints, technologies, and algorithms of autonomous robotics, with focus on computational aspects of wheeled mobile robots. Topics include: methods of locomotion, kinematics, simple control systems, sensor technologies, stereo vision, feature extraction, localization, SLAM, obstacle avoidance, and 2-D path planning.
  • COMP 6915 - Machine Learning
    • This course introduces key concepts and algorithms in machine learning for regression and classification. Students gain intuition on model selection, evaluation, and common methods such as random forests, support vector machines, and neural networks.
  • COMP 6916 - Security and Privacy
    • Topics covered include data security principles, privacy regulations, and tools for managing online identity and security.
  • COMP 6934 - Introduction to Data Visualization
    • Data visualization is the art of creating images based on data. Visualizations enable users to efficiently explore, understand, and extract insights from data. This course is centred on data visualization for data science and covers tools of data visualization, standard types of visualizations and theoretical aspects of data visualization.
  • COMP 6936 - Advanced Machine Learning
    • This course explores cutting-edge machine learning (ML) methods and its applications. Topics include, among others, interpretable and explainable ML, federate learning, data-efficient ML, and graph learning. Students will use ML methods published within the last five years in top machine learning conferences (e.g., ICML, IJCAI, NIPS) or journals.
  • COMP 6980 - Algorithmic Techniques in Artificial Intelligence
    • This course provides an introduction to Artificial Intelligence (AI), covering algorithmic techniques and data structures used in modern problem-solving environments. Each topic has a related assignment where the learned techniques are applied to simple games.
  • COMP 6981 - Data Preparation Techniques
    • This course introduces students to the challenges involved with real-world data, and the respective solutions in the form of data preparation techniques (using R and Python). Topics covered include: data cleaning, data representation/conversion, data engineering, data restructuring, data integration, and data preparation pipeline.
  • COMP 6982 - Computer Vision
    • This course introduces computer vision, focusing on how computers interpret and extract information from images. Students learn core problems and key methods in the field. Topics include image filtering, edge detection, object recognition, and 3D reconstruction.
  • COMP 6983 - Advanced Iteraction Techniques
    • This course explores emerging human-computer interaction techniques, including explicit, implicit, and machine-to-machine interactions. It provides an overview of advanced interaction methods, their applications, and current research and development directions.
  • AI 6000 - AI Foundations (restricted to MAI students)
    • AI Foundations provides the prerequisite mathematical background for further study in Artificial Intelligence. It covers essential foundations to understand AI concepts and algorithms, refreshing and advancing knowledge in vector calculus, linear algebra, and statistics for application in core AI techniques.
  • AI 6001 - Topics in AI (restricted to MAI students)
    • This course provides an overview of the history of AI and its main areas, emphasizes the relevance of ethics considerations in AI research and application, and introduces a selection of the disciplines that constitute modern AI.
  • AI 6002 - Artificial Intelligence Capstone (restricted to MAI students)
    • The AI Capstone Project offers students the opportunity to apply their knowledge of modern artificial intelligence techniques to a real-world problem (identified by an industry partner). Students work in small teams and demonstrate an ability to carry out work independently. At the end of the course a project report is submitted.

Additional courses are being offered by the Faculty of Business Administration, the Faculty of Engineering and Applied Science, and the Department of Mathematics and Statistics.