Departmental Facilities
The School of Computing graduate facilities consist of network of Macs, PCs, SGI and Sun workstations with the main infrastructure supported by Sun servers. The School's network of 100 computers support the research laboratories in the fields of study described below. The laboratories contain specialized equipment such as audio and video equipment, robotic equipment, eye tracking equipment, ultra sound machine and tracking systems for surgical tools. Undergraduate teaching facilities include four laboratories with 175 PCs supporting a Win XP and Linux environment, 24 Sun workstations and Sun servers for the main infrastructure. There is a Human Media laboratory consisting of five Macs with tablets and digital video cameras.
Graduate Student Support
For information concerning financial aid, students are advised to consult with the School of Computing or the School of Graduate Studies.
Fields of Study
The school's research and course offerings emphasize three broad areas of computing science:
- Computer Systems: including the topics of computer architecture, software engineering, design and implementation of programming languages, operating systems, program verification and analysis, the software/hardware interface, computer networks, distributed systems, data security, and Grids. The ULSS graduate stream (Ultra-Large-Scale Software Systems) is part of the Computer Systems field.
- Theory of Computation: including the topics of computability, complexity of computations, algorithm design and analysis, parallel computation, graph theory, computational geometry, array theory, theory of programming languages, logic, cryptology, Formal Methods.
- Applications: including the topics of information storage and retrieval, database organization and management, management information systems, computer-assisted surgery, computer vision, biomedical computing, human-computer interaction, artificial intelligence, cognitive science, object editing, graphics, image processing, music, bioinformatics, molecular scene analysis, pattern recognition and Data and Text Mining.
Programs of Admission
Applicants are admitted in accordance with the general regulations of the School of Graduate Studies.
Faculty
Director
Hassanein, H.S.
Coordinator of Graduate Studies
Salomaa, K.T.
Professor
Adams, B., Akl, S.G., Blostein, D., Chen, Y., Dingel, J., Ellis, R.E., Fichtinger, G., Givigi, S., Graham, T.C.N., Hassanein, H.S., Hassan, A.E., Mousavi, P., Salomaa, K.T., Skillicorn, D.B., Stewart, J., Zulkernine, F., Zulkernine, M.
Associate Professor
Choudhury, S., Duan, Q., Hossain, A., Hu, T., Ma, B., Powley, W., Simpson, A.
Assistant Professor
Alaca, F., Dunfield, J., ElSawy, H., Meger, E., Muise, C., Nabil, S., Stinson, C., Tian, Y.
Professor Emeritus
Cordy, J.R., Crawford, R.G., Glasgow, J.I., Jenkins, M.A., Lessard, G., MacEwen, G.H., Martin, T.P., Rappaport, D., Shepard, C.D., Tennent, R.D.
Adjunct Professor
Feng, W.
Adjunct Associate Professor
Abolmaesumi, P., Nasser, N., Somogyi, R.
Adjunct Assistant Professor
Abou-Zeid, H., Delamer, J.A., Ding, H., Elgazzar, K., Glossop, N., Hashemi, J., Hodges, J., Iqbal, S., Jardine, P.T., Jiang, Z.M., Khalifa, S., Khomh, F., Oteafy, S., Shang, W., Taha, A.,Tyryshkin, K., Ungi, T.
Cross-Appointed
Alalfi, M., Blohm, G., Dean, T.R., Greenspan, M., Hashtrudi-Zaad, K., Kelly, D., Knight, S., Lederman, S.J., Lu, N., Maslove, D., Mozersky, J., Noureldin, A., Panchenko, A., Poppenk, J., Redfearn, D., Rivest, F., Rudan, J., Rudie, K., Seiler, C., Siemens, R., Winn, L., Winston, G., Zou, Y.
The actual courses offered each term will be determined by student demand and the availability of faculty. All courses are half courses (3.0 credit units). In addition to the courses listed below, descriptions of other courses offered by the School are given in the undergraduate calendars.
Graduate students in the School may include in their program relevant courses from other departments such as Electrical and Computer Engineering, Psychology, Mathematics, or the School of Business.
CSAI 801 Fundamentals of Artificial Intelligence and Machine Learning
An introductory course on Artificial Intelligence and Machine Learning for graduate students without a background in Computing. Includes fundamental concepts in AI, state space search, knowledge representation, intelligent agents, problem solving, planning, decision making, robotics, natural language processing, computer vision, embodied and situational cognition, machine intelligence, statistical modeling, clustering, prediction, and artificial neural networks.
PREREQUISITES: a 100-level math course; some programming experience; permission of the School.
EXCLUSIONS: CISC 352, CISC 452, CISC 453, CISC 856, CISC 867
CISC 813 Automated Planning
Focus on the theoretical and practical aspects of the many forms of automated planning and sequential decision making from both a problem modelling and solving perspective. Students in the course will learn the fundamentals of the field of automated planning and gain experience in applying planning techniques to a wide variety of problem settings. (3. 0 credit units).
PREREQUISITE: Permission of the School.
CISC 825 Paradigms of Wireless and Mobile Networking
This course introduces the different paradigms of wireless and mobile networking. It will also familiarize students with the state-of-the-art technologies, as well as with recent efforts in research and standardization. Students taking this course will develop a strong grasp of the different architectures involved in current and future wireless networks, have a functional understanding of the different paradigms, design and analyze the behavior of wireless and mobile networks protocols using one or more network simulation tools.
PREREQUISITE: CISC 435 or equivalent.
CISC 832 Data Base Management Systems
Theory and practice of modern data base systems; data as a model of reality; architecture of current and proposed systems. Networks models, entity data model and relational models of data. Data independence, security, data base integrity, contention handling, data definition languages, data manipulation languages and their relation to current and proposed systems. Readings from current research literature. Two term-hours; lectures. Two term-hours; lectures.
REREQUISITE: Permission of the School.
CISC 834 Topics in Computer Science
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 835 Topics in Computer Systems
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 836 Topics in Software Systems
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 839 Topics in Information Systems
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 843 Mining Software Repositories
Mining Software Repositories, Applied Machine Learning in Software Engineering, Automated Software Engineering, Empirical Software Engineering, Software Engineering for Artificial Intelligence. PREREQUISITE: Permission of the School of Computing
CISC 844 Model‐Driven Software Development
Modeling in the sciences, engineering, and software engineering; modeling software with UML; developing reactive systems with the actor model, UML-RT and supporting tooling; specifying and implementing domain-specific languages; developing software with domain-specific languages and supporting tooling; case studies. (3.0 credit units).
PREREQUISITE: Permission of the School.
CISC 846 Software Design and Implementation
General characteristics of designs and design methods. Survey of design methods: information hiding; object-oriented design; state machine methods; data flow design. Module specification techniques: first-order logic; algebraic specification; trace specification; weakest preconditions; the refinement calculus; abstract modeling. Transition from design to implementation. Three term-hours; lectures and seminars. PREREQUISITE: Permission of the School.
CISC 848 Software Reliability and Security
Software crisis and software process models, Software reliability and methods for reliable software, Software reliability engineering process, Software dependability, Software fault tolerance, Run-time software monitoring, Software security, Software security engineering process, Network security, Intrusion detection. Three term hours: lectures and seminars. PREREQUISITE: Permission of the School.
CISC 850 Topics in Computer Applications and Algorithms l
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the department. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 851 Evolutionary Optimization and Learning
This course offers a hands-on introduction to evolutionary computing, a field that amounts to building, applying and studying algorithms based on the Darwinian principles of natural evolution. Evolutionary computing, as a population-based search technique inspired by evolution, is able to create novel solutions and is often regarded as a creative approach to AI. Students will learn various evolutionary computing techniques including genetic algorithms, evolution strategies, and genetic programming, and will study their applications to optimization and learning problems.
PREREQUISITE: Permission of the School of Computing
CISC 854 Computer Graphics
Advanced computer graphics with emphasis on physical modelling and rendering of realistic 3-d scenes. Topics include constructive solid geometry, parametric shape representations, kinematics and dynamics, photometry and surface reflectance, and ray tracing. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 855 Nonlinear Optimization
Methods for computational optimization, particularly examining nonlinear functions of vectors. Topics may include: unconstrained optimization; first-order methods; second-order methods; convex problems; equality constraints; inequality constraints; applications in machine learning. Three term-hours; lectures.
CISC 856 Reinforcement Learning
This course includes topics on formal and heuristic approaches to problem solving, planning, reinforcement learning, knowledge representation and reasoning, Markov decision processes, dynamic programming, temporal difference learning, Monte Carlo reinforcement learning methods, function approximation methods, integration of learning and planning. Three term-hours; lectures.
PREREQUISITE: CISC 352 or equivalent, programming expertise.
CISC 857 Image Processing
Examines the techniques used in digital image processing. Topics covered include image transformations (FFT, DCT, wavelets), linear and nonlinear filtering, image compression, image restoration and enhancement, Bayesian estimation of image properties, and image registration methods. Applications examined include medical imaging, motion analysis, remote sensing imagery (satellite and aircraft), and industrial imaging (inspection). Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 858 Programming Language Processors
An introduction to the systematic construction of a compiler: grammars and languages; scanners; top-down and bottom-up parsing; run-time organization; symbol tables; internal representations; Polish notation; syntax trees; semantic routines; storage allocation; code generation; interpreters. Three term-hours; lectures.
PREREQUISITE: CISC 210, 363 and 366, or permission of the School.
CISC 859 Pattern Recognition
An introduction to statistical and structural pattern recognition. Feature extraction and the feature space. Bayes decision theory. Parametric classification. Clustering methods. Syntactic pattern description: string, tree and graph grammers; attributed grammars; stochastic grammars. Error correcting parsing; parsing of stochastic languages. Assignments include practical experience in application areas such as character recognition and document image analysis. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 860 Topics in Programming Languages
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 865 Semantics of Programming Languages
Specifying syntax and semantics; operational and denotational semantics. Lambda calculi, type systems and logical foundations. Meta-theoretic properties. Semantics of imperative languages. Three term-hours; lectures and seminars. Offered jointly with CISC 465. (3.0 credit units).
PREREQUISITE: Permission of the School.
CISC 866 Introduction to Cybersecurity
An introduction to cybersecurity covering a wide range of vulnerabilities, attacks, and defence mechanisms in individual computers, networks, the Internet and the Web and applications that use them, and storage and computational clouds. The human side of cybersecurity, and the legal and ethical constraints on both attack and defence. Offered jointly with CISC 447.
CISC 867 Deep Learning
Teaches algorithms and concepts about deep learning based on the biological neural network. Students will learn about deep belief network, restricted Boltzmann machine, Convolutional, Generative adversarial and Long Short Term Recursive NN and develop DNN using tools such as TensorFlow to perform feature extraction, image recognition and text processing. (3.0 credit units)
PREREQUISITE: Permission of the School.
CISC 870 Topics in Theoretical Aspects of Computing I
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 872 Parallel Algorithms
The design and analysis of parallel algorithms. Computational models. Complexity classes. Parallel algorithms for various problems including: basic arithmetic, sorting, searching, selection, graph theory, matrix computations, combinatorial enumeration, optimization, computational geometry, and numerical analysis.
Three term hours; lectures and seminars.
PREREQUISITE: Permission of the School. CISC 365 (or equivalent) is recommended.
CISC 873 Data Mining
Study of the extraction of concepts from large high-dimensional datasets. Statistical foundations; techniques such as supervised neural networks, unsupervised neural networks, decision trees, association rules, Bayesian classifiers, inductive logic programming, genetic algorithms, singular value decomposition, hierarchical clustering.
Three term hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 874 Neural and Cognitive Computing
Theoretical foundation and practical applications of Artificial Neural Networks (ANN) and Cognitive Computing (CC) models. Paradigms of neural computing algorithms using attention and context embedding models, applications in cognitive modeling, artificial intelligence, and machine learning with multi-stream data processing techniques.
Three term hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 875 Bioinformatics
This inter-disciplinary course for students in the computational and life sciences looks at the application of computing techniques to molecular biology. Topics may include: DNA data analysis (genomics), secondary and tertiary structure analysis (nucleic acids and proteins), molecular scene analysis, evolutionary trees (phylogenetics), and computing with DNA. Three term hours; lectures and seminars.
PREREQUISITE: Permission of the School.
EXCLUSION: Jointly with BCHM 875.
CISC 876 Computational Complexity
A systematic studyof the known relations between the most important resource bounded complexity classes. Reductions, separation results and translation techniques. Relativized computation. Topics may include also: Circuit complexity, Kolmogorov-Chaitin complexity, Communication complexity. Three term-hours; lectures and seminars.
PREREQUISITES: Permission of the School. CISC 365 (or equivalent) is recommended.
CISC 877 Topics in Information Systems
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School
CISC 878 Topics in Computer Applications and Algorithms ll
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 879 Topics in Theoretical Aspects of Computing ll
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 880 Topics in Software Systems II
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 881 Topics in Biomedical Computing I
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term hours: lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 882 Topics in Biomedical Computing II
Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School. Three term hours: lectures and seminars.
PREREQUISITE: Permission of the School.
CISC 886 Cloud Computing
Cloud computing is a distributed computing paradigm where computing resources are provided in an on-demand manner. The goal of the courses is to introduce students to key concepts and techniques from cloud computing. The course focuses on issues such as system architectures, resource allocation and management, and approaches and systems for the storage, management and processing of data in cloud environments.
CISC 888 Advanced Research in Human-Computer Interaction
This is a topics-based course that presents a comprehensive set of research within the broad range of activities in Human-Computer Interaction (HCI). Topics include eye-tracking input, digital desks, wearable computing, ubiquitous and context-aware computing, tangible interfaces and organic user interfaces. Each area will be treated in depth, on the basis of its scientific foundations. In addition, you will get important knowledge on the body of scientific work in HCI, practice of scientific evaluation, practice in advanced engineering with project-based deliverables.
PREREQUISITE: CISC 325, CISC 425 or permission of the instructor.
CISC 895 Research Experience
This course in intended for, and limited to, students who are part of the Canadian International Development Scholars program. Students will work with a research supervisor and submit a written report based on the research conducted. Graded on a Pass/Fail basis. (3.0 credit units)
CISC 896 Professional Development in Cybersecurity
Designed to develop professional skills that complement students' qualifications and technical skills, and provides multidisciplinary skills relevant to industrial and academic careers in cybersecurity. These skills include aspects of intellectual property/commercialization; leadership and management; social responsibility; communication; and public relations. The course includes completing external workshops and certifications (e.g., Queen's Expanding Horizons workshops, MITACS STEP workshops), and participating in either a cyber red on blue exercise, or a tabletop cyber strategic thinking exercise. This course is graded on a Pass/Fail basis.
CISC 897 Research Methods in Computer Science
This course provides an introduction to the primary and secondary sources of information in the computing science literature. The course includes work aimed at improving research skills. Students are required to submit and present a paper on a topic that relates to their research.
CISC 898 Master's Project
A major programming project is undertaken under the supervision of a School member. The presentation of a seminar to describe the project is required.
CISC 899 Master's Thesis
CISC 999 Ph.D. Thesis
The courses listed below are courses in the Masters of Digital Product Management (MDPM) program. This degree program is hosted by the Smith School of Business, in cooperation with the School of Computing.
COMP 810 DPM Practicum: Build, Scale & Operate
This project course will integrate course-level learning objectives related to the product development phases of build, scale, operate, and exit. Student groups will complete work associated with three experiential learning milestones. Required outputs of this course include the final digital product prototype and final client presentation. (1.5 credit units) Offered jointly with MDPM 910.
EXCLUSION: MDPM 910
PREREQUISITES: MDPM 900, MDPM 884, COMP 887, COMP 885, MDPM 888; enrolment in the MDPM program
COMP 822 Emerging Computing Technologies
Novel computing technologies for digital products such as machine learning, generative artificial intelligence, cloud computing, service computing, and internet of things. Evaluating emerging technologies. Applications to digital products. (2.25 credit units).
Offered jointly with MDPM 822
EXCLUSION: MDPM 822
PREREQUISITE: Enrolment in the MDPM program
COMP 824 Software Systems Security
System dependability; threats, attributes, and solutions for dependability and security. Security types and principles, authentication, access control, and cryptography. Computer attacks and defenses, intrusion detection systems. System security engineering, security engineering principles, software engineering for security. (1.5 credit units) Offered jointly with MDPM 824.
EXCLUSION: MDPM 824
PREREQUISITE: COMP 822; enrolment in the MDPM program
COMP 826 Gamification and Usability Evaluation
Fundamentals of product usability evaluation, including usability test plans, usability testing, analysis of test results. Psychology of persuasion, including specific gamification techniques and gamification case studies. (2.25 credit units). Offered jointly with MDPM 826.
EXCLUSION: MDPM 826
PREREQUISITE: Enrolment in the MDPM program
COMP 883 Designing Digital Product
In this applied studio course, students learn how to build proof-of-concept prototypes that are sufficient to greenlight new projects. By the end of the course, students will be familiar with no-code development, wireframing, agile development with scrum, and other approaches to creating low-fidelity prototypes. (3.0 credit units). Offered jointly with MDPM 883.
EXCLUSION: MDPM 883
PREREQUISITE: MDPM 881; enrolment in the MDPM program
COMP 885 Optimizing the User Experience
In this design studio course, students apply the fundamentals and best practices in human-centered, accessible, and inclusive design to translate product design into an operational solution that is highly usable across a diverse population. Theory and concepts introduced in COMP 826 will be applied in this course. (1.5 credit units). Offered jointly with MDPM 885.
EXCLUSION: MDPM 885
PREREQUISITE: MDPM 884, COMP 826, COMP 883; enrolment in the MDPM program
COMP 887 Architecting the Digital Product
This course introduces software architecture to connect the technical and non-technical aspects of a software product while helping match functional and non-functional requirements in software systems. Topics include: Software Architecture, Architecture Styles, Architecture Recovery, Big Data, and Architecture Tradeoff Analysis.(2.25 credit units). Offered jointly with MDPM 887.
EXCLUSION: MDPM 887
PREREQUISITE: COMP 822, COMP 824; enrolment in the MDPM program.