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):
The language of while programs. Programming logics. Operational and denotational semantics. The typed and untyped lambda calculi. Recursive definitions and domain theory. Full abstraction.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
A major programming project is undertaken under the supervision of a School member. The presentation of a seminar to describe the project is required.