Academic Calendar 2021-2022

Computing and Information Science (CISC)

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 801     Programming Skills and Tools for Processing of Biomedical Data     
The objective of this course is to provide students hands-on training in computer programming languages and tools to familiarize them with the principles and practice of cutting edge technologies for bioinformatics used in biomedical and molecular sciences research. This course will span over four weeks and will consist of a combination of lectures and interactive computer labs. Specifically, students will acquire working knowledge of basic functions in Rand MATLAB for managing and pre- processing biomedical data, and use examples of real biomedical data to apply methods for identifying data outliers and gain skills for cloud computing.
PREREQUISITE: Admission in the Graduate Diploma (GDip [BI]) or Masters in Biomedical Informatics (MBI) or permission of the Program Coordinator.
EXCLUSIONS: none

CISC 802     Biomedical Data Analysis     
The objective of this course is to provide students with hands-on training in the analysis of biomedical datasets to familiarize them with the principles and practice of cutting edge technologies for bioinformatics used in biomedical and molecular sciences research. This course will span over four weeks and will consist of a combination of lectures and interactive computer labs. Specifically, students use examples of real biomedical data to apply methods for recognizing patterns, classify and extract features using supervised and unsupervised learning approaches, and grasp basic concepts in biostatistics and employ statistical algorithms for data analysis. PREREQUISITES: CISC 801 and admission in the Diploma in Biomedical Informatics or Masters in Biomedical Informatics (MBI) or permission of the Program Coordinator.
EXCLUSIONS: None

CISC 803     Biomedical Data Mining and Applications     
The objective of this course is to provide students with hands-on training in data mining to familiarize them with the principles and practice of cutting edge technologies for bioinformatics used in biomedical and molecular sciences research. This course will span over four weeks and will consist of a combination of lectures and interactive computer labs. Specifically, students will acquire knowledge and skills for mining various biomedical dataset, survey the breadth/depth of biomedical datasets and how they are used to advance biomedical research, design an experiment that will require them to generate a hypothesis and test that hypothesis using real biomedical data. PREREQUISITES: CISC 801, CISC 802 and admission in the Diploma in Biomedical Informatics or Masters in Biomedical Informatics (MBI) or permission of the Program Coordinator.
EXCLUSIONS: None

CISC 810      Fundamentals of Computational Science     
This course is offered in the Fall semester and is open to graduate students and advanced undergraduate students interested in Computational Science and Engineering.  The purpose of this course is to present the tools necessary to pursue computational science and engineering within the student's “home” discipline.
This course is offered jointly with QCSE-810.  Graduate students enrolled in the CSE specialization must register in QCSE-810.  The Queen's CSE management committee may cap enrollment, in which case students in the CSE specialization have priority. PREREQUISITE: Permission of the instructor.
EXCLUSION: QCSE-810

CISC 811     High Performance Computing And Its Applications     
This course is offered in the Winter semester and is open to graduate students and advanced undergraduate students interested in Computational Science and Engineering.  This course covers the principles and practices of current high performance computing architecture and software, such as parallel, massively parallel, and grid computing.  Advanced tools for analyzing and optimizing the performance of algorithms important to computational science and engineering  will be introduced. This course is offered jointly with QCSE 811.  Graduate students enrolled in the CSE specialization must register in QCSE 811.  The Queen's CSE management committee may cap enrollment, in which case students in the CSE specialization have priority
PREREQUISITE: Permission of the instructor.
EXCLUSIONS: QCSE 811 and CISC 878 taken in 2004-2005

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. PREREQUISITE: Permission of the School.

CISC 833     Advanced Operating Systems     
This course considers operating systems for distributed architectures covering the following topics: distributed system characteristics, process synchronization and communication, basic distributed algorithms, principles of fault tolerance, reliable broadcast, naming, file systems, load balancing, and layering. Three term-hours; lectures and seminars.
PREREQUISITE: 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 837     Network Traffic and Resource Management     
The course describes fundamental techniques, principles and technologies associated with network traffic and Quality of Service (QoS) management. The Broadband Integrated Services architecture and Asynchronous Transfer Mode are described. TCP/IP flow and congestion control and the Integrated and Differentiated Services architectures and their accompanying protocols and techniques for QoS management are detailed. The course includes studies of end-to-end resource management across heterogeneous domains and platforms.  H. Hassanein
PREREQUISITE: Permission of the School.

CISC 838     Software Engineering     
Designing and constructing large software system: requirements analysis, architectural design, detailed design and specification, implementation, test planning, delivery, evolution. Project and configuration management issues. This course includes a team project. 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 841     Advanced Computer Architecture     
Large uniprocessor design, including pipelining, cache management, lookahead and prefetch; array processors and algorithms; multi-processors, conventional multiprocessors, systolic arrays, data driven and demand driven architectures. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School.

CISC 842     Parallel Languages and Architectures     
A study of the techniques necessary for developing complete parallel systems. This includes program development techniques in a parallel setting, parallel languages, compilation and transformation techniques, and properties of parallel architectures. The emphasis is on integrating solutions to each of these stages to provide practical parallel systems. 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 845     Requirements of Specifications and Design     
Software system engineering. Essential elements of requirements. Natural and formal language specification. Software process models. Mathematical foundations. Model-oriented specification styles: informal (data flow, control flow, process-based, data models, object-oriented); operational (process-based, state machine, data models); set theory and logic. Property-oriented specification style: trace-based; event-based; abstract data type. Refinement of requirements to components. Tool support. Case studies. Three term-hours; lectures.
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 847    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 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 853     Computer-aided Verification of Software Systems     
Expressing concurrent systems using finite-state machines and Buechi automata.  Expressing properties of systems: assertions, safety properties, liveness properties, temporal logic, specification patterns.  Analyzing concurrent systems using model  checking: algorithms, complexity, and optimizations.  Academic and industrial model checking tools.  Three term hours: lectures and seminars.  
PREREQUISITE:  Permission of the School.

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 861     Advanced Graphics      
The course will cover historical and recent research in computer graphics.  The instructor will give lectures on the physics of illumination, radiosity methods for light transport, Monte Carlo methods for light transport, visibility, and geometric problems. Students will give presentations on papers that they've chosen from the current research literature. Three term hours: lectures and seminars. 
PREREQUISITES:  Permission of the School.  CISC 454 or equivalent.

CISC 865     Introduction to Programming-Language Theory     
The language of while programs. Programming logics. Operational and denotational semantics. The typed and untyped lambda calculi. Recursive definitions and domain theory. Full abstraction. Three term-hours; lectures and seminars.
PREREQUISITE: CISC 222/260 and CISC 202, or 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.
PREREQUISITE: COGS 400/ CISC 452/CMPE 452 or co-requisite CISC 874

CISC 868     Computational Geometry     
A study of fundamental techniques for developing effective algorithms and data structures to solve geometric problems. Topics include - algorithms for computing convex hulls, triangulations, minimum spanning circles, Voronoi diagrams; point location problems; intersection problems; path planning, and hidden surface algorithms.  Three term-hours; lectures.
PREREQUISITE: CISC 365 or permission of the School. 

CISC 869     Advanced Topics in Programming-Language Theory     
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: CISC 865 or 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 871     Algorithmic Graph Theory     
An introduction to graph theory, and a survey of graph theoretic algorithms as applied to classic and contemporary problems in combinatorics and computer science. Topics include: colouring, isomorphism, connectivity, network flow, matchings, planarity, shortest path problems, NP- completeness. Three term-hours; lectures and seminars.
PREREQUISITE: Permission of the School; CISC 202 or equivalent is recommended.

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. Offered jointly with CISC 486.
.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  
2018-19 topic: Medical Image and Signal Processing   
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 883     Introduction to Ultra Large-scale Software Systems     
An introductory course in Ultra Large-scale Software Systems (ULSS). This course gives students an overview of the ULSS area covering a wide range of ULSS topics, while building and strengthening their independent research skills. Topics include research methods, large-scale applications, web services, hosted applications, software as a service, autonomic computing, and mobile applications. Three term-hours, lectures and seminars. 
REREQUISITE: Registration in CREATE program in ULSS.

CISC 884     Practicum in Ultra Large-scale Software Systems     
This course is an independent studies course to allow ULSS students the opportunity to gain experience with ultra large systems prior to their thesis or project (Pattern II). The student will propose a project to a CREATE professor that investigates issues relevant to Ultra Large Scale Software Systems. The project report will include a report on the current state of the art, the experiment performed, and the results. The student and supervising professor will meet on a regular basis. 
REREQUISITE: Registration in CREATE program in ULSS.

CISC 885     Professional Development in Ultra Large-scale Software Systems     
The Professional Development in ULSS course is designed to develop professional skills that complement students’ qualifications and technical skills, and provides multidisciplinary skills relevant to careers in ULSS. These skills encompass aspects of intellectual property/commercialization; leadership and management; social responsibility; communication; and public relations. The course includes regular meetings with the instructor, seminars, and completing external workshops and certification (i.e., Expanding Horizons, MITACS, Ontario Centres of Excellence – VAP).
PREREQUISITE: Registration in CREATE program in ULSS.

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 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