Queen's School of Computing

Overview of Graduate Courses

Note: For current timetable and instructor information, the Graduate Course Information page

Master's students following the research pattern may take any four graduate courses as long as these are approved by their supervisor and/or, the Coordinator of Graduate Studies. Those following the project pattern degree must choose their courses according to the current distribution requirements. Graduate students taking a graduate course offered jointly with an advanced undergraduate course are expected to do the amount of work normally required to earn a credit in a graduate course. Graduate students in the School may include in their programs relevant courses from other departments such as Biology, Electrical Engineering, Mathematics or Psychology. The School currently offers the following courses (subject to availability of instructors):

Theory of Computation

Computer Systems

Applications

Other


Course Descriptions

Theory of Computation

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

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

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

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

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

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

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

  • CISC-879 Topics in Theoretical Aspects of 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.

Computer Systems

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

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

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

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

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

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

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

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

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

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

  • CISC-847 Software Verification and Validation

    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.

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

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

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

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

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

Applications

  • 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 model, 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.

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

  • CISC-850 Topics in Computer Applications and Algorithms 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 department.

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

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

  • 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).

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

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

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

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

  • CISC-874 Foundations of Neural Networks

    An introduction of the computational properties of neural networks. Topics may include: Learning Processes, Single Layer Perceptrons, Multilayer Perceptrons, Principal Components Analysis, and Self-Organizing Maps.

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

  • CISC-878 Topics in Computer Applications and Algorithms 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.

  • CISC-881 Topics in Biomedical Computing I

    Consists of formal lectures and the study and discussion of research papers appearing in the current literature. Students will be expected to participate in the presentation of the lecture material. Topics chosen for study will be by arrangement with the School.

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

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

Other

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

  • 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