Academic Calendar 2021-2022

Computing and Information Science (CISC)

CISC 101  Elements of Computing Science  Units: 3.00  

Introduction to algorithms: their definition, design, coding, and execution on computers. Intended for students who have no programming experience. All or most assignment work will be completed during lab time.
NOTE Also offered online. Consult Arts and Science Online. Learning Hours may vary. Sufficient preparation for CISC 121; alternative to CISC 110/3.0 and CISC 151/3.0
LEARNING HOURS 120(36L;84P)

Requirements: Prerequisite None. Exclusion APSC 142; APSC 143; CISC 110; CISC 151. One-Way Exclusion May not be taken with or after CISC 121; CISC at the 200-level or above.  
Offering Faculty: Faculty of Arts and Science  
CISC 102  Discrete Mathematics for Computing l  Units: 3.00  

Introduction to mathematical discourse and proof methods. Sets, functions, sequences, and relations. Properties of the integers. Induction. Equivalence relations. Linear and partial orderings.
NOTE Also offered online. Consult Arts and Science Online. Learning Hours may vary.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite None. One-Way Exclusion May not be taken with or after CISC 203.  
Offering Faculty: Faculty of Arts and Science  
CISC 110  Creative Computing  Units: 3.00  

Introduction to fundamental programming concepts in the context of visual, interactive media. Students may develop applications in any domain (e.g., fine art, education, commerce, physical or social sciences) while learning about algorithms, program design, logic, program control flow, functions, testing, etc.
NOTE No computing or art background required.
NOTE Sufficient preparation for CISC 121/3.0. . Alternative to CISC 151/3.0. With permission of the School, students with programming experience may take this concurrently with CISC 121/3.0
LEARNING HOURS 120 (36L;84P)

Requirements: Exclusion No more than 3.0 units from APSC142;APSC143;CISC101; CISC110; CISC151. One-Way Exclusion May not be taken with or after: CISC121; CISC or SOFT at the 200 level and above.  
Course Equivalencies: CISC 101/110/121 / APSC 143  
Offering Faculty: Faculty of Arts and Science  
CISC 121  Introduction to Computing Science I  Units: 3.00  

Introduction to design, analysis, and implementation of algorithms. Recursion, backtracking, and exits. Sequences. Elementary searching and sorting. Order-of-magnitude complexity. Documentation, iterative program development, translating natural language to code, testing and debugging.
NOTE Also offered online. Consult Arts and Science Online. Learning Hours may vary.
LEARNING HOURS 120 (36L;84P)
RECOMMENDATION Some programming experience (such as high-school level programming or CISC 101/3.0 or CISC 110/3.0 or CISC 151/3.0)

Requirements: Prerequisite None. Corequisite (CISC 102 or MATH 110 or MATH 111 or MATH 112 or MATH 120 or MATH 121 or MATH 123 or MATH 124 or MATH 126 or APSC 171 or APSC 172 or APSC 174 or COMM 161 or COMM 162).  
Offering Faculty: Faculty of Arts and Science  
CISC 124  Introduction to Computing Science II  Units: 3.00  

Introduction to object-oriented design, architecture, and programming. Use of packages, class libraries, and interfaces. Encapsulation and representational abstraction. Inheritance. Polymorphic programming. Exception handling. Iterators. Introduction to a class design notation. Numerical computation. Applications in various areas.
LEARNING HOURS 120 (36L;24Lb;60P)

Requirements: Prerequisite A minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 121. Corequisite (CISC 102 or MATH 110 or MATH 111 or MATH 112 or MATH 120 or MATH 121 or MATH 123 or MATH 124 or MATH 126 or APSC 171 or APSC 172 or APSC 174 or COMM 161 or COMM 162).  
Offering Faculty: Faculty of Arts and Science  
CISC 151  Elements of Computing with Data Analytics  Units: 3.00  

Introduction to algorithms: their definition, design, coding, and execution on computers, with applications drawn from data analytics, including simple prediction and clustering. Intended for students who have no programming experience. All or most assignment work will be completed during lab time.
NOTE Sufficient preparation for CISC 121/3.0. Alternative to CISC 101/3.0 and CISC 110/3.0
LEARNING HOURS 120(36L;84P)

Requirements: excl 3 fr APSC142;CISC101, CISC110; CISC151 One-Way Exclusion May not be taken with or after CISC121; CISC or SOFT courses at the 200-level and above.  
Offering Faculty: Faculty of Arts and Science  
CISC 181  Digital Societies  Units: 3.00  

This introductory course provides a broad overview and ethical implications of technological topics and trends in the digital world such as the Internet of Things (IoT), Social Networks, Security and Privacy, Data Analytics, and Artificial Intelligence (AI). No programming experience is required.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite None. Equivalency CISC P81.  
Offering Faculty: Faculty of Arts and Science  
CISC 203  Discrete Mathematics for Computing II  Units: 3.00  

Proof methods. Combinatorics: permutations and combinations, discrete probability, recurrence relations. Graphs and trees. Boolean and abstract algebra.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Level 2 or above and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 121 and [CISC 102 or MATH 110]).  
Offering Faculty: Faculty of Arts and Science  
CISC 204  Logic for Computing Science  Units: 3.00  

Elements of mathematical logic with computing applications. Formal proof systems for propositional and predicate logic. Interpretations, validity, and satisfiability. Introduction to soundness, completeness and decidability.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Level 2 or above and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 121 and [CISC 102 or MATH 110]).  
Offering Faculty: Faculty of Arts and Science  
CISC 212  Computing Science For Engineer  Units: 4.00  

Introduction to design and analysis of algorithms. Control structures: recursion, backtracking. Data structures: multidimensional arrays, defined data types. Introduction to numerical computation. Documentation, testing and debugging. Object-oriented design, architecture and programming: encapsulation and representational abstraction, inheritance and polymorphism, interfaces and abstract classes, exception handling.  (0/0/0/26/22)

Requirements: (APSC142 AND APSC174)  
Offering Faculty: Faculty of Arts and Science  
CISC 220  System Level Programming  Units: 3.00  

Basic concepts of Unix-like systems. Shells and scripting. System-level programming in the C language. Software development tools and techniques.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Level 2 or above and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 121. Corequisite CISC 124.  
Offering Faculty: Faculty of Arts and Science  
CISC 221  Computer Architecture  Units: 3.00  

The descriptive levels of computer architecture. Instruction-set architectures. Assembly Language. Data representation. Support for operating-system management and high-level languages. Input/output and interrupts. Designing for performance. Digital Logic.
LEARNING HOURS 120 (12L;24G;84P)
RECOMMENDATION CISC 220/3.0.

Requirements: Prerequisite Level 2 or above and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 124. Recommended CISC 220.  
Offering Faculty: Faculty of Arts and Science  
CISC 223  Software Specifications  Units: 3.00  

Introduction to techniques for specifying the behaviour of software, with applications of these techniques to design, verification and construction of software. Logic-based techniques such as loop invariants and class invariants. Automata and grammar-based techniques, with applications to scanners, parsers, user-interface dialogs and embedded systems. Computability issues in software specifications.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Level 2 or above and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 124 and CISC 204).  
Offering Faculty: Faculty of Arts and Science  
CISC 226  Game Design  Units: 3.00  

An introduction to techniques for designing elementary computer games. Topics will include game development tools and processes, principles of game design, game prototyping and game evaluation.
LEARNING HOURS 120 (36L;60G;24P)

Requirements: Prerequisite Level 2 or above and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 124.  
Offering Faculty: Faculty of Arts and Science  
CISC 231  Computer Architecture  Units: 4.00  

Requirements: CISC121 OR APSC142  
Offering Term: W  
Offering Faculty: Fac of Engineering Appl Sci  
CISC 234  Information Structures  Units: 3.00  

Requirements: CISC121  
Offering Faculty: Faculty of Arts and Science  
CISC 235  Data Structures  Units: 3.00  

Design and implementation of advanced data structures and related algorithms, including correctness and complexity analysis.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Level 2 or above and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 124 and CISC 203).  
Offering Faculty: Faculty of Arts and Science  
CISC 236  Fund Of Software Eng & Info St  Units: 4.50  

Requirements: CISC121  
Offering Faculty: Faculty of Arts and Science  
CISC 251  Data Analytics  Units: 3.00  

Introduction to data analytics; data preparation; assessing performance; prediction methods such as decision trees, random forests, support vector machines, neural networks and rules; ensemble methods such as bagging and boosting; clustering techniques such as expectation-maximization, matrix decompositions, and bi-clustering; attribute selection.
LEARNING HOURS 120 (36L;24Lb;60P).

Requirements: Prerequisite A cumulative GPA of a 1.70 or higher. Exclusion CISC 333; CMPE 333. Recommended Experience with problem solving in any discipline.  
Offering Faculty: Faculty of Arts and Science  
CISC 271  Linear Data Analysis  Units: 3.00  

Elements of linear algebra for data analysis, including: solution of linear equations; vector spaces; matrix decompositions; principal components analysis; linear regression; hyperplane classification of vectorial data.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Level 2 or above and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in {[CISC 101 or CISC 110 or CISC 151 or CISC 121] and [MATH 110 or MATH 111 or MATH 112] and [MATH 120 or MATH 121 or (MATH 123 and MATH 124) or MATH 126]}. Exclusion MATH 272.  
Offering Faculty: Faculty of Arts and Science  
CISC 282  Fundamentals of Web Development  Units: 3.00  

This course surveys current best practices for implementing attractive, usable, secure and maintainable web applications. Other issues considered include: accessibility, platform and browser independence, licensing of intellectual property, scalability, user privacy, and using web technologies in mobile development.
LEARNING HOURS 120 (36L;48O;36P)

Requirements: Prerequisite Level 2 or above and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 124. Equivalency CISC P82.  
Course Equivalencies: cisc282; ciscP82  
Offering Faculty: Faculty of Arts and Science  
CISC 320  Fundamentals of Software Development  Units: 3.00  

Introduction to management of small and medium-scale software projects. Advanced programming methodology using the programming language C++. Includes a significant programming project.
LEARNING HOURS 120 (36L;24T;24G;36P)

Requirements: ASC Students: Prerequisite Registration in a School of Computing Plan a C- (any term) or a 'Pass' (Winter 2020) in CISC 235. Exclusion None. FEAS Students: Prerequisite Registration in a BASc program (ELEC 276 or ELEC 278). Exclusion CISC 322.  
Offering Faculty: Faculty of Arts and Science  
CISC 322  Software Architecture  Units: 3.00  

Abstractions and patterns of interactions and relationships among modules. Design recovery; relationship of architecture to requirements and testing.
LEARNING HOURS 120 (36L;24T;36G;24P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 223 and CISC 235). Exclusion CISC 326.  
Offering Faculty: Faculty of Arts and Science  
CISC 324  Operating Systems  Units: 3.00  

Layered operating systems for conventional shared memory computers: concurrent processes. Synchronization and communication. Concurrent algorithms. Scheduling. Deadlock. Memory management. Protection. File systems. Device management. Typical layers.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 221 and CISC 235).  
Offering Faculty: Faculty of Arts and Science  
CISC 325  Human-Computer Interaction  Units: 3.00  

Developing usable software requires that human factors be considered throughout the design and development process. This course introduces a series of techniques for development and evaluating usable software, and shows how these techniques can be integrated into a process for software development.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite C- (or P in Winter 2020) in (CISC124 and CISC235) and registration in a School of Computing Plan. Exclusion SOFT325  
Offering Faculty: Faculty of Arts and Science  
CISC 326  Game Architecture  Units: 3.00  

An introduction to software architectural design through the application domain of game development. Abstractions and patterns of interactions and relationships among modules. Design recovery. Relationship to requirements and testing
LEARNING HOURS 120 (36L;24T;24G;36P).

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 223 and CISC 235). Exclusion CISC 322. Recommended CISC 226.  
Offering Faculty: Faculty of Arts and Science  
CISC 327  Software Quality Assurance  Units: 3.00  

Validation of software throughout the life cycle. Comparative effectiveness in defect removal of formal methods (proofs of correctness), inspection (walkthroughs and reviews), and testing (unit, integration, and system testing; white box versus black box).
LEARNING HOURS 120 (36L;84G)

Requirements: Prerequisite C- (or P in Winter 2020) in (CISC 220 and CISC 124) and registration in a School of Computing Plan. Exclusion SOFT 327  
Offering Faculty: Faculty of Arts and Science  
CISC 330  Computer-Integrated Surgery  Units: 3.00  

Concepts of computer-integrated surgery systems and underlying techniques such as medical-image computing, robotics, and virtual reality, learned through real-life applications and problems. Techniques learned in class will be applied in a hands-on surgery session where students perform minimally invasive surgery with virtual-reality navigation tools.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 121 and CISC 271). Exclusion COMP 329; COMP 230. Equivalency COMP 230.  
Course Equivalencies: CISC330; COMP230  
Offering Faculty: Faculty of Arts and Science  
CISC 332  Database Management Systems  Units: 3.00  

Data models: relational, entity-relationship. Relational query languages: relational algebra and SQL. Relational database design. Application interfaces and embedded SQL. Storage and indexing.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Level 2 or above and registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 102 and CISC 124). Exclusion COMM 392.  
Offering Faculty: Faculty of Arts and Science  
CISC 335  Computer Networks  Units: 3.00  

Fundamental concepts in the design and implementation of computer communication networks, protocols, and applications. Overview of network architectures; applications; network programming interfaces (e.g., sockets); transport; congestion; routing and data link protocols; addressing; local area networks; wireless networks, mobility management; security.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in [CISC 124 and (CISC 102 or CISC 204)].  
Offering Faculty: Faculty of Arts and Science  
CISC 340  Digital Systems  Units: 3.00  

Combinational circuits; sequential circuits; digital systems design; micro-programming; bus structures; data communications; interface design; microprocessor systems.
LEARNING HOURS 120 (12L;24G;84P)

Requirements: ASC Students: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 221. Exclusion None. FEAS Students: Exclusion ELEC 272; ELEC 373.  
Offering Faculty: Faculty of Arts and Science  
CISC 351  Advanced Data Analytics  Units: 3.00  

Design and implementation of complex analytics techniques; predictive algorithms at scale; deep learning; clustering at scale; advanced matrix decompositions, analytics in the Web, collaborative filtering; social network analysis; applications in specialized domains.
LEARNING HOURS 120 (36I;36Lb;84P)

Requirements: Prerequisite A minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 251 and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (3 units in STAT or 3 units from STAT_Options). Exclusion CISC 371; CISC 372.  
Offering Faculty: Faculty of Arts and Science  
CISC 352  Artificial Intelligence  Units: 3.00  

An introduction to the basic principles and tools of artificial intelligence. Problem solving methods and knowledge representation techniques.
LEARNING HOURS 120 (36L;84P)
RECOMMENDATION CISC 360/3.0 or CISC 260/3.0.

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 235. Recommended CISC 360 or CISC 260.  
Offering Faculty: Faculty of Arts and Science  
CISC 360  Programming Paradigms  Units: 3.00  

Review of imperatives programming features. Introduction to other widely used programming paradigms. Functional programming languages, such as LISP and Haskell. Higher order functions, lazy evaluation, abstract and recursive types, structural induction, symbolic expressions. Logic programming languages, such as PROLOG. Operational interpretation of predicates and terms, proof search, unification, backtracking. Typical applications.
LEARNING HOURS 120 (36L;84P)
EQUIVALENCY CISC 260/3.0.

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 124 and CISC 204). Equivalency CISC 260.  
Offering Faculty: Faculty of Arts and Science  
CISC 365  Algorithms I  Units: 3.00  

Principles of design, analysis and implementation of efficient algorithms. Case studies from a variety of areas illustrate divide and conquer methods, the greedy approach, branch and bound algorithms and dynamic programming.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 203 and CISC 204 and CISC 235).  
Offering Faculty: Faculty of Arts and Science  
CISC 371  Nonlinear Data Analysis  Units: 3.00  

Methods for nonlinear data analysis, particularly using numerical optimization. Applications may include: unconstrained data optimization; linear equality constraints; constrained data regression; constrained data classification; evaluating the effectiveness of analysis methods.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 271 and [STAT 263 or STAT_Options]). Exclusion CISC 351.  
Offering Faculty: Faculty of Arts and Science  
CISC 372  Advanced Data Analytics  Units: 3.00  

Inductive modelling of data, especially counting models; ensemble approaches to modelling; maximum likelihood and density-based approaches to clustering, visualization. Applications to non-numeric datasets such as natural language, social networks, Internet search, recommender systems. Introduction to deep learning. Ethics of data analytics.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 271 and [3.0 units in STAT or STAT_Options]).  
Offering Faculty: Faculty of Arts and Science  
CISC 422  Formal Methods in Software Engineering  Units: 3.00  

Mathematical methods for describing software behaviour and structure. Topics include (but are not limited to) the following: Requirements specification. Module specification: axiomatic, algebraic, and trace specifications. Abstract models. Verification. Specification-based validation.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 223.  
Offering Faculty: Faculty of Arts and Science  
CISC 423  Software Requirements  Units: 3.00  

An integrated approach to discovering and documenting software requirements. Identification of stakeholders; customer, operator, analyst, and developer perspectives. Requirements elicitation. Transition from initial (informal) requirements to semi-formal and formal representations. Requirements analysis process; analysis patterns. Requirements specification techniques. Relation to architecture and user interface design; traceability of requirements.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 223 and CISC 235). Corequisite (CISC 325 and [CISC 322 or CISC 326]).  
Offering Faculty: Faculty of Arts and Science  
CISC 425  Advanced User Interface Design  Units: 3.00  

Advanced user-interface styles such as eye-tracking input, digital desks, wearable computing, ubiquitous and context-aware computing, and tangible interfaces.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 325 or permission of the School.  
Offering Faculty: Faculty of Arts and Science  
CISC 426  Real-Time Systems  Units: 3.00  

Design and implementation of real-time embedded applications. Specifying timing properties: formal and semi-formal methods; soft real-time versus hard real-time. Design notations; language constructs. Real-time operating systems. Abstract device interfaces.

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 324 and CISC 327).  
Offering Faculty: Faculty of Arts and Science  
CISC 432  Advanced Data Management Systems  Units: 3.00  

Storage and representation of "big data", which are large, complex, structured or unstructured data sets. Provenance, curation, integration, indexing and querying of data.
LEARNING HOURS 120 (36L;84P).

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 235 and CISC 332).  
Offering Faculty: Faculty of Arts and Science  
CISC 434  Distributed Systems  Units: 3.00  

Distributed systems goals, characteristics, and architectures. Processes: models, inter-process communication and coordination. Name services. Consistency and replication. Fault tolerance: design for reliable communication and recovery. Security. Development paradigms based on data types: object, file, and web-based systems.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 324.  
Offering Faculty: Faculty of Arts and Science  
CISC 437  Performance Analysis  Units: 3.00  

Analytic and empirical evaluation of the performance of software systems. Performance modeling. Experimental design and statistical techniques for empirical performance analysis.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 324 and CISC 327).  
Offering Faculty: Faculty of Arts and Science  
CISC 447  Introduction to Cybersecurity  Units: 3.00  

An introduction to cybersecurity covering a wide range of vulnerabilities, attacks, and defense 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 defense.
LEARNING HOURS 120(36L;84P)

Requirements: Prerequisite CISC 324 and CISC 335. Exclusion CISC 490 (Topic Title: Computer Security).  
Offering Faculty: Faculty of Arts and Science  
CISC 448  Software Reliability and Security  Units: 3.00  

Software dependability and other related concepts, software process models and methods for reliable software. Software reliability engineering process, software fault tolerance and run-time monitoring. Software security engineering process, secure software design, program security vulnerabilities and software security testing
LEARNING HOURS 120(36L;84P)

Requirements: Prerequisite CISC 327 or CMPE 327.  
Offering Faculty: Faculty of Arts and Science  
CISC 451  Topics in Data Analytics  Units: 3.00  

Content will vary from year to year; typical areas covered may include: tools for large scale data analytics (Hadoop, Spark), data analytics in the cloud, properties of large scale social networks, applications of data analytics in security.
LEARNING HOURS 120 (36I;36Lb;48P)

Requirements: Prerequisite A minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 333 or CISC 351 or CISC 372).  
Offering Faculty: Faculty of Arts and Science  
CISC 452  Neural and Genetic Computing  Units: 3.00  

Introduction to neural and genetic computing. Topics include associative memory systems, neural optimization strategies, supervised and unsupervised classification networks, genetic algorithms, genetic and evolutionary programming. Applications are examined, and the relation to biologic systems is discussed.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 235. Exclusion COGS 400.  
Offering Faculty: Faculty of Arts and Science  
CISC 453  Topics in Artificial Intelligence  Units: 3.00  

Investigation of selected areas of artificial intelligence research. Possible topics include natural language understanding, computational perception, planning, learning, and neurocomputing.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 352.  
Offering Faculty: Faculty of Arts and Science  
CISC 454  Graphics (A)  Units: 3.00  

Introduction to computer graphics, including a review of current hardware; modelling and transformations in two and three dimensions; visual realism: perspective, hidden surface elimination, and shading; colour models; applications in several fields. James Stewart.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Level 3 or above and registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 235 and [MATH 110 or MATH 111 or MATH 112]).  
Offering Faculty: Faculty of Arts and Science  
CISC 455  Evolutionary Optimization and Learning  Units: 3.00  

Building, applying and studying algorithms based on the Darwinian principles of natural evolution. A creative approach to AI able to create novel solutions. Genetic algorithms, evolution strategies, and genetic programming. Application to optimization and learning problems.
LEARNING HOURS 120 (36L;84P).

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 365 and STAT 263).  
Offering Faculty: Faculty of Arts and Science  
CISC 457  Image Processing and Computer  Units: 3.00  

Introduction to fundamental concepts and applications in image processing and computer vision. Topics include image acquisition, convolution, Discrete Fourier Transform, image enhancement, edge detection, segmentation, image registration, human contrast perception, colour perception and reproduction, stereo vision.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in ([MATH 110 or MATH 111 or MATH 112] and [MATH 120 or MATH 121 or MATH 123 or MATH 124 or MATH 126] and CISC 124).  
Offering Faculty: Faculty of Arts and Science  
CISC 458  Programming Language Processors (S)  Units: 3.00  

Introduction to the systematic construction of a compiler: grammars and languages, scanners, top-down and bottom-up parsing, runtime organization, symbol tables, internal representations; Polish notation, syntax trees, semantic routines, storage allocation, code generation, interpreters.
LEARNING HOURS 120 (36L;36Lb;48G)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 121 and CISC 221 and CISC 223).  
Offering Faculty: Faculty of Arts and Science  
CISC 462  Computability and Complexity  Units: 3.00  

Turing machines and other models of computability such as µ-recursive functions and random-access machines. Undecidability. Recursive and recursively enumerable sets. Church-Turing thesis. Resource-bounded complexity. Complexity comparisons among computational models. Reductions. Complete problems for complexity classes.
LEARNING HOURS 120 (36L;84P)
RECOMMENDATION CISC 365/3.0.

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 223. Recommended CISC 365.  
Offering Faculty: Faculty of Arts and Science  
CISC 465  Semantics of Programming Languages  Units: 3.00  

Specifying syntax and semantics; operational and denotational semantics. Lambda calculi, type systems and logical foundations. Meta-theoretic properties. Semantics of imperative languages.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 204 and CISC 223 and [CISC 360 or CISC 260]).  
Offering Faculty: Faculty of Arts and Science  
CISC 466  Algorithms II  Units: 3.00  

A continuation of CISC 365/3.0. Lower bound theory. Average-case analysis of algorithms. Approximation algorithms. Probabilistic algorithms. Parallel algorithms.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 365.  
Offering Faculty: Faculty of Arts and Science  
CISC 467  Fuzzy Logic  Units: 3.00  

History of fuzzy theory; fundamental concepts of fuzzy theory: sets, relations, and logic operators. Approximate reasoning, fuzzy inference, possibility theory. Separation from probability. Fuzzy control systems. Fuzzy pattern recognition. Advanced topics may include fuzzy expert systems, financial systems, graph theory, optimization.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Level 4 or above and registration in a BCMP or COCA Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 204.  
Offering Faculty: Faculty of Arts and Science  
CISC 468  Cryptography  Units: 3.00  

Fundamentals of cryptographic algorithms: secure pseudorandom number generators, hash functions, symmetric-key cryptography (stream ciphers, block ciphers); public-key cryptography (encryption and decryption, digital signatures, key agreement). Applications of cryptography to secure communication protocols and systems.
LEARNING HOURS 120 (36L;84P).

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 235 and CISC 335).  
Offering Faculty: Faculty of Arts and Science  
CISC 471  Computational Biology  Units: 3.00  

Advanced computational approaches to the problems in molecular biology. Techniques and algorithms for sequence analysis and alignment; molecular databases; protein structure prediction and molecular data mining.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 271 and CISC 352 and CISC 365).  
Offering Faculty: Faculty of Arts and Science  
CISC 472  Medical Informatics  Units: 3.00  

Current topics in the application of information technology to medical image computing and its use in image-guided medical interventions.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 330.  
Offering Faculty: Faculty of Arts and Science  
CISC 473  Deep Learning  Units: 3.00  

Design of deep neural networks based on leading-edge algorithms such as Restricted Boltzmann Machines, Recurrent Neural Networks, Convolutional Neural Networks, Long-Short Term Machines. Autoencoding as a clustering technique. Applications to prediction problems in natural language and images.
LEARNING HOURS 120 (36L;84P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 371 or [CISC 271 and CISC 352]).  
Offering Faculty: Faculty of Arts and Science  
CISC 474  Reinforcement Learning  Units: 3.00  

Formal and heuristic approaches to problem-solving, planning, knowledge representation and reasoning, Markov decision processes, dynamic programming, temporal-difference learning, Monte Carlo learning, function approximation, integration of learning and planning. Implementing simple examples of logical reasoning, clustering or classification.
LEARNING HOURS 120 (36L;12G;72P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 352.  
Offering Faculty: Faculty of Arts and Science  
CISC 486  Game Development  Units: 3.00  

An introduction to 'engines' used in networked 3-dimensional games. Topics include game-engine architecture and components providing 3-dimensional rendering, physics simulation, sound, artificial intelligence and networking services.
LEARNING HOURS 120 (36L;15G;69P)

Requirements: Prerequisite Registration in a School of Computing Plan and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 226 and [CISC 322 or CISC 326] and CISC 324 and [MATH 110 or MATH 111 or MATH 112]).  
Offering Faculty: Faculty of Arts and Science  
CISC 490  Topics in Computing Science I  Units: 3.00  

Content varies. Not offered every year.
NOTE Learning Hours will vary.

Requirements: Prerequisite Registration in a School of Computing Plan and permission of the instructor.  
Offering Faculty: Faculty of Arts and Science  
CISC 491  Topics in Computing Science II  Units: 3.00  

Content varies. Not offered every year.
NOTE Learning Hours will vary.

Requirements: Prerequisite Registration in a School of Computing Plan and permission of the instructor.  
Offering Faculty: Faculty of Arts and Science  
CISC 492  Topics in Computing III  Units: 3.00  

Content varies. Not offered every year.
NOTE Learning Hours will vary.

Requirements: Prerequisite Registration in a School of Computing Plan and permission of the instructor.  
Offering Faculty: Faculty of Arts and Science  
CISC 496  Game Development Project  Units: 3.00  

Team-based project involving the development of a game using modern tools and software engineering techniques.
LEARNING HOURS 129 (9L;120G)

Requirements: Prerequisite: Registration in a Computing honours plan and (C- in CISC 486) and 30 units in CISC/SOFT/COGS/COCA and 2.6 GPA in all of CISC/SOFT/COGS/COCA Exclusion CISC 496; CISC 498; CISC 499; COGS 499; CISC 500.  
Offering Faculty: Faculty of Arts and Science  
CISC 497  Social, Ethical and Legal Issues in Computing  Units: 3.00  

A wide range of topics of current importance in computing, including technical issues, professional questions, and moral and ethical decisions. Students make presentations, deliver papers, and engage in discussion.
LEARNING HOURS 120 (12L;24S;84P)

Requirements: Prerequisite Level 4 or above and registration in a COMP Major or Specialization Plan and a cumulative GPA of 1.90 and a (GPA of 2.60 in CISC; COCA; COGS; SOFT) and (30.0 units of CISC; COCA; COGS; SOFT) and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in (CISC 352 or CISC 365).  
Offering Faculty: Faculty of Arts and Science  
CISC 498  Information Technology Project  Units: 6.00  

Topic selected under the supervision of a faculty member. Emphasis is on the application of software engineering techniques to the development of a substantial software system. Group work, oral presentation, participation in design and code review meetings, and delivery of complete software specification and design are required.
LEARNING HOURS 258 (18S;240G)

Requirements: Prerequisite Level 4 or above and registration in a SODE Specialization Plan and a cumulative GPA of 1.90 and a (GPA of 2.60 in CISC; COCA; COGS; SOFT) and (30.0 units in CISC; COCA; COGS; SOFT) and (a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in [CISC 322 or CISC 326] and [CISC 325 or CISC 327]). Exclusion CISC 496; CISC 499.  
Offering Faculty: Faculty of Arts and Science  
CISC 499  Advanced Undergraduate Project  Units: 3.00  

Topic selected under the supervision of a faculty member. Emphasis may be on the development of a large program, or on more theoretical issues. Independent research, an oral presentation, and a written report are required.
LEARNING HOURS 120 (120P)

Requirements: Prerequisite Level 4 or above and registration in a COMP Major or BMCO or COMA or CSCI Specialization Plan and a cumulative GPA of 1.90 and a (GPA of 2.60 in CISC; COCA; COGS; SOFT) and (30.0 units in CISC; COCA; COGS; SOFT) and a minimum grade of a C- (obtained in any term) or a 'Pass' (obtained in Winter 2020) in CISC 365. Exclusion CISC 496; CISC 498; COGS 499; CISC 500.  
Offering Faculty: Faculty of Arts and Science  
CISC 500  Undergraduate Thesis  Units: 6.00  

Individual research project under the supervision of a School of Computing faculty member. Evaluation is based on an oral presentation and a written thesis. It is the responsibility of the student to make a research proposal and secure a supervisor prior to enrolling in the course.
LEARNING HOURS 240 (24I;216P)

Requirements: Prerequisite Permission of the School and a minimum cumulative GPA of 3.50 or higher and level 4 or above and registration in a COMP Major or BMCO, COGS, COMA, CSCI, or SODE Specialization Plan. Exclusion CISC 496; CISC 499; COGS 499.  
Offering Faculty: Faculty of Arts and Science  
CISC 594  Independent Study  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 595  Independent Study  Units: 6.00  

Offering Faculty: Faculty of Arts and Science  
CISC 596  Independent Study  Units: 12.00  

Offering Faculty: Faculty of Arts and Science  
CISC 801  Programming Skills and Tools for Processing of Biomedical Data  Units: 3.00  

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. EXCLUSION: None

Offering Faculty: Faculty of Arts and Science  
CISC 802  Biomedical Data Analysis  Units: 3.00  

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. PREREQUISITE: CISC 801 and admission in the Diploma in Biomedical Informatics or Masters in Biomedical Informatics (MBI) or permission of the Program Coordinator. EXCLUSION: None

Offering Faculty: Faculty of Arts and Science  
CISC 803  Biomedical Data Mining and Applications  Units: 3.00  

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. PREREQUISITE: CISC 801, 802 and admission in the Diploma in Biomedical Informatics or Masters in Biomedical Informatics (MBI) or permission of the Program Coordinator. EXCLUSION: None

Offering Faculty: Faculty of Arts and Science  
CISC 810  Fundamentals Of Comput. Scienc  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 811  High Performance Computing  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 825  Paradigms of Wireless and Mobile Networking  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 832  Database Management Systems  Units: 3.00  

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. Pat Martin.

Offering Faculty: Faculty of Arts and Science  
CISC 833  Advanced Operating Systems  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 834  Topics in Computer Science  Units: 3.00  

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. Hossam Hassanein.

Offering Faculty: Faculty of Arts and Science  
CISC 835  Topics in Computer Systems  Units: 3.00  

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. Ahmed Hassan.

Offering Faculty: Faculty of Arts and Science  
CISC 836  Topics in Software Systems  Units: 3.00  

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. Juergen Dingel

Offering Faculty: Faculty of Arts and Science  
CISC 837  Computer Networks  Units: 3.00  

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   

Offering Faculty: Faculty of Arts and Science  
CISC 838  Software Engineering  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 839  Topics in Information Systems  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 841  Advanced Computer Architecture  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 842  Parallel Lang. & Architectures  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 843  Mining Software Repositories  Units: 3.00  

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

Offering Faculty: Faculty of Arts and Science  
CISC 845  Requirements Specs & Design  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 846  Software Design Methodologies  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 847  Software Verific. & Validation  Units: 3.00  

Formal techniques: proving programs correct, checking consistency and completeness. Inspections and reviews. Unit/module testing. White box and black box testing. System integration and testing. Tool support for testing. Faults vs. failures. Verification of implementation against both requirements and design. Techniques for critical software. Trust-worthiness vs. reliability. Timing analysis and verification. Safety analysis. Multi-version programming. Software quality assurance, software reliability. Debugging. Three term-hours; lectures and seminars.

Offering Faculty: Faculty of Arts and Science  
CISC 848  Software Reliability & Secur  Units: 3.00  

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.  

Offering Faculty: Faculty of Arts and Science  
CISC 850  Topics in Computer Applications and Algorithms I  Units: 3.00  

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. Diane Kelly.

Offering Faculty: Faculty of Arts and Science  
CISC 851  Evolutionary Optimization and Learning  Units: 3.00  

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

Offering Faculty: Faculty of Arts and Science  
CISC 853  Verification Of Software Syst.  Units: 3.00  

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.  

Offering Faculty: Faculty of Arts and Science  
CISC 854  Graphics (A)  Units: 3.00  

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. James Stewart.

Offering Faculty: Faculty of Arts and Science  
CISC 855  Nonlinear Optimization  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 856  Reinforcement Learning  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 857  Image Processing  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 858  Programming Lang Processors (S)  Units: 3.00  

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. Jim Cordy.

Offering Faculty: Faculty of Arts and Science  
CISC 859  Pattern Recognition (A)  Units: 3.00  

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. Dorothea Blostein.

Offering Faculty: Faculty of Arts and Science  
CISC 860  Topics: Structure & Design of Programming Languages  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 861  Advanced Computer Graphics (A)  Units: 3.00  

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. James Stewart.

Offering Faculty: Faculty of Arts and Science  
CISC 864  Top. In Robotics & Perception  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 865  Intro to Programming Language Theory (T)  Units: 3.00  

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. Bob Tennent.

Offering Faculty: Faculty of Arts and Science  
CISC 866  Introduction to Cybersecurity  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 867  Deep Learning  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 868  Computational Geometry (T)  Units: 3.00  

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. David Rappaport.

Offering Faculty: Faculty of Arts and Science  
CISC 869  Adv. Topics-Program.-Language  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 870  Cryptography  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 871  Fuzzy Logic and Fuzzy Algorithms  Units: 3.00  

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. Robin Dawes.

Offering Faculty: Faculty of Arts and Science  
CISC 872  Parallel Algorithms  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 873  Data Mining (A)  Units: 3.00  

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. David Skillicorn.

Offering Faculty: Faculty of Arts and Science  
CISC 874  Neural and Cognitive Computing  Units: 3.00  

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

Offering Faculty: Faculty of Arts and Science  
CISC 875  Bioinformatics  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 876  Computational Complexity (T)  Units: 3.00  

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. Kai Salomaa.

Offering Faculty: Faculty of Arts and Science  
CISC 877  Developing Digital Games  Units: 3.00  

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. Nick Graham.

Offering Faculty: Faculty of Arts and Science  
CISC 878  Topics in Computer Applications and Algorithms ll  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 879  Topics in Theoretical Aspects of Computing  Units: 3.00  

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. Selim Akl.

Offering Faculty: Faculty of Arts and Science  
CISC 880  Mining Software Engineering Data  Units: 3.00  

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. Ahmed Hassan.

Offering Faculty: Faculty of Arts and Science  
CISC 881  Topics in Biomedical Computing I  Units: 3.00  

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

Offering Faculty: Faculty of Arts and Science  
CISC 882  Topics in Biomed Computing II  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 883  Introduation to Ultra Large-scale Softward Systems  Units: 3.00  

Offering Faculty: School of Graduate Studies  
CISC 884  Practicum in Ultra Large-scale Softeware Systems  Units: 3.00  

Offering Faculty: School of Graduate Studies  
CISC 885  Professional Development in Ultra Large-scale Software Systems  Units: 3.00  

Offering Faculty: School of Graduate Studies  
CISC 886  Cloud Computing  Units: 3.00  

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.

Offering Faculty: School of Graduate Studies  
CISC 888  Advanced Research in Human-Computer Interaction  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 892  Information Structures  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 896  Professional Development in Cybersecurity  Units: 3.00  

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.

Offering Faculty: Faculty of Arts and Science  
CISC 897  Research Methods in Computer Science  Units: 3.00  

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. Janice Glasgow.

Offering Faculty: Faculty of Arts and Science  
CISC 898  Master's Project  Units: 6.00  

A major programming project is undertaken under the supervision of a School member. The presentation of a seminar to describe the project is required.

Offering Faculty: Faculty of Arts and Science  
CISC 899  Computer Science M.Sc. Thesis  Units: 6.00  

Offering Faculty: Faculty of Arts and Science  
CISC 911  Numerical Analysis-I  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 912  Numerical Analysis-II  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 932  File Organization  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 933  Operating Systems II  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 934  Topics In Computer Science  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 936  Systems Stimulation  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 951  Infor. Org. & Retrieval I  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 952  Infor. Org. & Retrieval II  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 954  Computer Graphics  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 955  Pattern Recognition  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 956  Artificial Intelligence  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 958  Compiler Writing I  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 959  Compiler Writing II  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 964  Comparison Of Languages  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 965  Theory Of Language  Units: 6.00  

Offering Faculty: Faculty of Arts and Science  
CISC 968  Formal Languages I  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 969  Formal Languages II  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 991  Automata I  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 992  Automata II  Units: 3.00  

Offering Faculty: Faculty of Arts and Science  
CISC 999  PhD Thesis  Units: 6.00  

Offering Faculty: Faculty of Arts and Science