Computer Science and Software Engineering Master's and PhD Courses

Description: Principles of distributed computing: scalability, transparency, concurrency, consistency, fault tolerance. Client-server interaction technologies: interprocess communication, sockets, group communication, remote procedure call, remote method invocation, object request broker, CORBA, web services. Distributed server design techniques: process replication, fault tolerance through passive replication, high availability through active replication, coordination and agreement transactions and concurrency control. Designing software fault-tolerant highly available distributed systems using process replication. Laboratory: two hours per week.

Component(s): Lecture; Laboratory

Description: Migration from Von Neumann to parallel processing architectures: shared-memory and message-passing paradigms; massively parallel computers; recent trends in commodity parallel processing; clusters, multi-core, CPU-GPU based heterogeneous computing. Issues of memory consistency and load balancing. Parallel algorithms for shared-memory and message passing platforms; efficiency and scalability; issues of performance overhead. Parallel programming environments: parallel programming models; languages; software tools. Laboratory: two hours per week. A project is required.

Component(s): Lecture; Laboratory

Notes:
  • Students who have completed COMP 428 may not take this course for credit.

Prerequisite/Corequisite: The following course must be completed previously or concurrently: COMP 6761 or equivalent.

Description: Introduction to the algorithms, data structures, and techniques used in modelling and rendering dynamic scenes. Topics include principles of traditional animation, production pipeline, animation hardware and software, orientation representation and interpolation, modelling physical and articulated objects, forward and inverse kinematics, motion control and capture, key-frame, procedural, and behavioural animation, camera animation, scripting system, and free-form deformation. A project is required.

Component(s): Lecture; Laboratory two hours per week

Notes:

  • Students who have completed COMP 477 may not take this course for credit.

Prerequisite/Corequisite:

Description: Introduction to the fundamentals of machine learning. Linear models: linear and polynomial regression, overfitting, model selection, logistic regression, naive Bayes. Non-linear models: decision trees, instance-based learning, boosting, neural networks. Support vector machines and kernels. Computational learning theory. Experimental methodology, sources of error. Structured models: graphical models, deep belief networks. Unsupervised learning: k-means, mixture models, density estimation, expectation maximization, principle component analysis, eigenmaps and other dimensionality reduction methods. Learning in dynamical systems: hidden Markov models and other types of temporal/sequence models. Reinforcement learning. Survey of machine learning and its applications. A project is required.

Component(s): Lecture; Laboratory two hours per week

Prerequisite/Corequisite: Permission of the instructor is required.

Description: Introduction to advanced aspects of computer games. Game engine design. Artificial Intelligence (AI): nonplayer character movement, coordinated movement, pathfinding, world representations; decision making; tactical AI, strategic AI, learning in games. Physicsbased techniques: collision detection and response. Networked gaming: multiplayer games, networking and distributed game design, mobile gaming. Improving realism: cut scenes, 3D sound. A project is required.

Component(s): Lecture; Laboratory two hours per week

Notes:
  • Students who have completed COMP 476 may not take this course for credit.

Description: This course introduces basic techniques and concepts in computer vision including image formation, grouping and fitting, geometric vision, recognition, perceptual organization, and the state-of-the art software tools. Students learn fundamental algorithms and techniques, and gain experience in programming vision-based components; in particular, how to program in OpenCV, a powerful software interface used to process data captured from passive and active sensors. A project is required.

Component(s): Lecture; Laboratory two hours per week.

Notes:
  • Students who have received credit for COMP 691 (Computer Vision) may not take this course for credit.

  • Students who have completed COMP 425 may not take this course for credit.

Description: Selected elements of numerical methods that are central to scientific computation. The precise contents of the course may differ somewhat from one offering to the next, but will include the following topics: An introduction to the numerical solution of nonlinear equations, continuation methods, numerical solution of initial value problems in ordinary differential equations, finite difference method, numerical stability theory, stiff equations, boundary value problems in ordinary differential equations, collocation methods, introduction to the numerical solution of partial differential equations, with emphasis on nonlinear diffusion problems. A project is required.

Component(s): Lecture

Description: An introduction to numerical algorithms for nonlinear equations, including discrete as well as continuous systems. The emphasis is on computer-aided numerical analysis rather than numerical simulation. This course is suitable for scientists and engineers with a practical interest in nonlinear phenomena. Topics include computational aspects of: homotopy and continuation methods, fixed points and stationary solutions, asymptotic stability, bifurcations, periodic solutions, transition to chaos, conservative systems, travelling wave solutions, discretization techniques. A variety of applications will be considered. Numerical software packages will be available. A project is required.

Component(s): Lecture

Description: This course covers the fundamentals of immersive technologies and offers a brief history and overview of immersive technologies. Students analyze case studies of interactive experiences using immersive technologies and identify the main challenges of the current state of the art. Furthermore, this course covers the fundamental principles of 3D graphics for creating virtual assets and environments, and basic concepts and technologies for interaction. A project is required.

Notes:
  • Students who have completed COMP 475 may not take this course for credit.

Description: This course introduces the digital geometry modelling pipeline focusing on fundamental data structures and algorithms for digital representation and processing of 3D geometry. Students study a wide range of applications and solutions in computer-aided design, engineering, architecture reverse engineering, and medical applications. As triangle meshes are by far the most popular representation for 3D geometry, this course focuses on triangle mesh representations and data structures that enable the programmer to efficiently query and edit geometry. In addition, the course covers spline modelling: Hermite splines, Bezier splines, and B-Splines. A project is required.

Component(s): Lecture

Description: Comparison of several high-level programming languages with respect to application areas, design, efficiency, and ease of use. The selected languages will demonstrate programming paradigms such as functional, logical, and scripting. Static and dynamic typing. Compilation and interpretation. Advanced implementation techniques. A project is required.

Component(s): Lecture

Description: Compiler organization and implementation: lexical analysis and parsing, syntax-directed translation, code optimization. Run-time systems. A project is required.

Component(s): Lecture; Laboratory

Notes:
  • Students who have completed COMP 442 COMP 442 may not take this course for credit.

Description: Direct link networks: encoding, framing, error detection, flow control, example networks. Packet switching and forwarding: bridges, switches. Internetworking: Internet Protocol, routing, addressing, IPv6, multicasting, mobile IP. End-to-end protocols: UDP, TCP. Network security concepts. Application-level protocols.

Component(s): Lecture; Laboratory two hours per week

Prerequisite/Corequisite: Only MApCompSc and MEng (SOEN) students may take this course for credit.

Description: This course provides an overview of programming, problem solving, widely-used data structures and the design of fundamental and advanced algorithms using object oriented programming. Students will learn about arrays, lists, and the underlying concepts of iterators; sorting and searching algorithms; software testing including boundary and unit testing; complexity analysis; recursion; trees and tree traversal algorithms; maps and hash tables; search trees; and graphs and graph-based algorithms. For a passing grade, the student must pass one or more computer-based Programming Competency Tests.

Component(s): Tutorial 1 hour per week; Laboratory 3 hours per week

Notes:
  • Students who have received credit for COMP 5481 may not take this course for credit.

Description: Review of standard relational databases, query languages. Query processing and optimization. Parallel and distributed databases. Information integration. Data warehouse systems. Data mining and OLAP. Web databases and XML Active and logical databases, spatial and multimedia data management.

Component(s): Lecture; Laboratory two hours per week

Description: Web markup languages, World Wide Web Consortium (W3C) standards, Extensible Markup Language (XML) Resource Description Framework (RDF), schema for markup languages, Semantic Web, ontology development, markup languages for ontologies, Web Ontology Language (OWL), logical foundations of ontologies, description logics, reasoning with ontologies. A project is required.

Description: Review of first-order logic, relational algebra, and relational calculus. Fundamentals of logic programming. Logic for knowledge representation. Architecture of a knowledge-base system. Fundamentals of deductive databases. Top-down and bottom-up query processing. Some important query processing strategies and their comparison. Project or term paper on current research topics.

Component(s): Lecture; Reading

Description: Introduction to the methods and proof techniques of Paul Erdös that are particularly applicable to Computer Science. Proof of Bertrand’s postulate. The Erdös-Szekeres and the de Bruijn-Erdös theorems. Ramsey’s theorem and Ramsey numbers. Van der Waerden’s theorem and Van der Waerden numbers. Delta-systems and a proof of the Erdös-Lovász conjecture. The Erdös-Ko-Rado theorem. Extremal graph theory. Random graphs and graph colouring. The probabilistic method and its applications in theoretical Computer Science. A project is required.

Component(s): Lecture

Description: Mathematical modelling of large-scale optimization models. Design and implementation of large-scale optimization techniques: decomposition methods (Benders, Dantzig-Wolfe, Lagrangian Relaxation, Column Generation), branch-and-price techniques. Large-scale linear and non-linear programming techniques for network optimization and integer/discrete programming. Techniques for nonlinear non-convex continuous optimization: branch-and-bound methods, DC (difference of convex functions) programming, bilinear and biconvex optimization. Heuristics and meta-heuristics. A project is required.

Component(s): Reading

Notes:
  • Students who have received credit for this topic under a COMP 691 number may not take this course for credit.

Description: General properties of algorithmic computations. Turing machines, universal Turing machines. Turing computable functions as a standard family of algorithms. Primitive recursive functions. Church’s thesis, recursive sets. Recursively enumerable sets and their properties. Rice’s theorem. Time and space complexity measures. Hierarchy of complexity measures. Advanced topics in complexity theory. A project is required.

Component(s): Reading

Description: Mathematical preliminaries; Empirical and theoretical measures of algorithm efficiencies; Optimization and combinatorial techniques and algorithms including greedy algorithms, dynamic programming, branch-and-bound techniques and graph network algorithms; Amortized complexity analysis; String matching algorithms; NP-complete problems and approximate solutions; Probabilistic algorithms. A project is required.

Component(s): Lecture

Description: Representation and generation of combinatorial objects; search techniques; counting and estimation. Projects on selected applications from combinatorics and graph theory.

Component(s): Lecture

Description: Efficient algorithms and data structures to solve geometric problems. Problems discussed include convex hulls, line intersections, polygon triangulation, point location, range searching, Voronoi diagrams, Delaunay triangulations, interval trees and segment trees, arrangements, robot motion planning, binary space partitions, quadtrees, and visitility. Algorithmic methods include plane sweep, incremental insertion, randomization, divide and conquer. Emphasis will be given to computation and complexity, with applications in computer graphics, computer aided design, geographic information systems, networks, mesh generation, databases, and robot motion planning. A project is required.

Component(s): Lecture

Description: The course covers heuristic and adversarial searches for concrete applications. It then discusses automated reasoning, advanced knowledge representation and dealing with uncertainly for Artificial Intelligence applications. Finally, it introduces autoencoders, recurrent neural networks and sequence to sequence models. A project is required.

Component(s): Lecture; Laboratory two hours per week.

Notes:
  • Students who have completed COMP 472 may not take this course for credit.

Description: Pre-processing. Feature extraction and selection. Similarity between patterns and distance measurements. Syntactic and statistical approaches. Clustering analysis. Bayesian decision theory and discriminant functions. Clustering and classification techniques. Applications. A project is required.

Component(s): Lecture; Laboratory two hours per week.

Notes:
  • Students who have completed COMP 473 may not take this course for credit.

Description: Knowledge representation and reasoning. Uncertainty and conflict resolution. Design of intelligent systems. Grammar-based, rule-based, and blackboard architectures. A project is required.

Component(s): Lecture; Laboratory two hours per week

Notes:
  • Students who have completed COMP 474 may not take this course for credit.

Description: Introduction to natural language processing. Structure of English. Grammars and parsing. Lexical and compositional semantics. Pragmatic issues. Applications in text mining and information extraction. A project is required.

Component(s): Lecture

Notes:
  • Students who have received credit for COMP 7741 before September 2011 may not take this course for credit.

Description: Fundamental algorithms, techniques, and software engineering principles for 3D graphics. Introduction to real-time graphics application architecture; review of basic 3D concepts of modelling, viewing, and rendering. 3D graphics functions, pipeline, and performance. Hierarchical 3D graphics. Algorithms for occlusion culling, collision detection, photorealism, shadows, and textures. Current trends and state-of-the-art graphics and physics algorithms.

Component(s): Lecture; Laboratory two hours per week

Description: Digital image fundamentals; image enhancement: histogram processing, filtering in the spatial domain, filtering in the frequency domain; image restoration and reconstruction; image segmentation: line detection, Hough transform, edge detection and linking, thresholding, region splitting and merging; image compression; introduction to wavelet transform and multi-resolution processing. A project is required.

Component(s): Lecture; Laboratory two hours per week.

Notes:
  • Students who have completed COMP 478 may not take this course for credit.

Description: The course covers robust methods to natural language processing (NLP) and their applications to manipulate large text collections. Topics covered in this course include: Zipf’s law, information retrieval, statistical machine translation, N-gram language models and smoothing techniques, word sense disambiguation, part-of-speech tagging and probabilistic grammars and parsing. A project is required.

Component(s): Lecture

Description: Basics of information retrieval (IR): Boolean, vector space and probabilistic models. Tokenization and creation of inverted files. Weighting schemes. Evaluation of IR systems: precision, recall, E-measure. Relevance feedback and query expansion. Application of IR to Web search engines: XML, link analysis, PageRank algorithm. Text categorization and clustering techniques as used in spam filtering. A project is required.

Component(s): Lecture; Laboratory two hours per week

Notes:
  • Students who have completed COMP 479 may not take this course for credit.

Description: The principal objectives of the course are to cover the major algorithms used in bioinformatics; sequence alignment, multiple sequence alignment, phylogeny; classifying patterns in sequences; secondary structure prediction; 3D structure prediction; analysis of gene expression data. This includes dynamic programming, machine learning, simulated annealing, and clustering algorithms. Algorithmic principles will be emphasized. A project is required.

Component(s): Lecture; Reading

Description: The principal objectives of the course are to survey the needs of bioinformatics for data management, knowledge management, and computational support; to provide in-depth description of an example of each kind of database and system; and to introduce advanced database technology and software technology relevant to the needs of bioinformatics. A project is required.

Component(s): Reading

Description: Students may re-register for this course, providing that the course content has changed. Changes in content will be indicated by changes to the course title in the graduate class schedule.

Component(s): Lecture; Laboratory; Reading

Description: Students will have to attend a selected set of departmental seminars and submit a comprehensive report on the topics presented in one of the seminars. This course is graded on a pass/fail basis.

Component(s): Seminar

Prerequisite/Corequisite: Students must have completed 16 credits in the Master's in Applied Computer Science (MApCompSc) program prior to enrolling. A CGPA of 3.40 or greater and permission of the Department is required. Before registration for a project course, students must obtain written consent of a faculty member who acts as advisor for the report. A form for this consent is available in the Department of Computer Science and Software Engineering.

Description: The purpose of the project report is to provide students in the Master's in Applied Computer Science (MApCompSc) program with an opportunity to carry out independent project work and to present it in an acceptable form. A four-credit report is due on the last day of classes of the term (fall, winter, summer) in which students are registered. Students are expected to have a preliminary version of their report approved by their advisor before its final submission. On or before the submission deadline, students must submit three copies of the report to their advisor, who grades the report. One copy of the report is returned to the student, one retained by the advisor, and one by the Department. The report, including an abstract, must be suitably documented and illustrated, should be at least 5000 words in length, must be typewritten on one side of 21.5 cm by 28 cm white paper of quality, and must be enclosed in binding. Students are referred to the latest edition of Form and Style: Thesis, Report, Term Papers by Campbell, Ballou and Slade, published by Houghton Mifflin (Academic).

Component(s): Lecture

Notes:

Prerequisite/Corequisite: The following course must be completed previously: COMP 6971.

Description: The purpose of the project report is to provide students in the Master's in Applied Computer Science (MApCompSc) program with an opportunity to carry out a second independent project and to present it in an acceptable form. Project 8 hours per week.

Component(s): Lecture

Notes:

Prerequisite/Corequisite: The following course must be completed previously: COMP 6281. If prerequisites are not satisfied, permission of the instructor is required.

Description: Parallel architectures; memory organization, interconnection structures, data routing techniques. Parallel algorithms; paradigms and design techniques, complexity analysis, algorithms for various computation models. A project is required.

Component(s): Lecture

Prerequisite/Corequisite: The following course must be completed previously: COMP 6461.

Description: Introduction to mobile computing and wireless networks: local (LAN), personal (PAN) and metropolitan (MAN). Mobile ad hoc networks and sensor networks. Algorithms and protocols for medium access, routing, topology control, and reliable transport. A project is required.

Component(s): Lecture

Prerequisite/Corequisite: The following course must be completed previously: COMP 6411.

Description: The need for semantic descriptions of programming languages. Classification of semantics: operational, axiomatic, model-theoretic, algebraic, denotational. Classification of languages: procedural, functional, logic, equational. Applications: verification, construction, language design, temporal logic for distributed systems, semantics for advanced languages.

Component(s): Lecture

Prerequisite/Corequisite: The following course must be completed previously: COMP 6651.

Description: Traditional cryptography. Information theory. Private-key (symmetric-key) and public-key (asymmetric-key) cryptographic algorithms. Advanced Encryption Standard (Rijndael). Cryptographic hash functions. Digital signatures. Data-origin authentication and data integrity. Entity authentication. Key distribution, management, recovery, and exhaustion. Authentication protocols. Security services (confidentiality, authentication, integrity, access control, non-repudiation, and availability) and mechanisms (encryption, data-integrity mechanisms, digital signatures, keyed hashes, access-control mechanisms, challenge-response authentication, traffic padding, and routing control). Projects will be offered in selected topics in cryptography.

Component(s): Lecture

Prerequisite/Corequisite: The following course must be completed previously: COMP 6521.

Description: Database models. Algebraic, logical, and deductive database languages. Query equivalence and optimization. Query rewriting, information integration and data exchange. Incomplete information and complex values. Introduction to current research topics. A project is required.

Component(s): Lecture; Reading

Prerequisite/Corequisite: The following course must be completed previously: COMP 6651.

Description: Amortized analysis of algorithms, NP-hardness and approximation algorithms, online algorithms, randomized algorithms. Selected topics of current interest. Project or term paper.

Component(s): Reading

Prerequisite/Corequisite: The following course must be completed previously: COMP 6761.

Description: Advanced concepts in rendering and animation with emphasis on computational techniques for synthesizing complex realistic images, both static and dynamic. Topics include: overview of computer graphics techniques in games, cinema, and engineering; realistic rendering methods in real time; animation techniques including physics-based animation. A project is required.

Component(s): Lecture

Prerequisite/Corequisite: The following course must be completed previously: COMP 6731.

Description: Pattern recognition principles; modern methods in digitization and data acquisition; advanced topics in feature extraction and selection; principal component analysis and clustering techniques; multiple classifiers and expert systems; advanced topics in neural networks in pattern recognition, performance evaluation and error reduction. Applications. A project is required.

Component(s): Lecture

Prerequisite/Corequisite: The following course must be completed previously: COMP 6771. If prerequisites are not satisfied, permission of instructor is required.

Description: Digital image processing; segmentation morphological processing; wavelet transforms and multi-resolution analysis; partial differential equation approach; variational methods; diffusion and shock filters; Markov random field and Bayesian inference; energy minimization framework: snakes, active contours, Mumford-Shah model, level set method; numerical implementation; applications; image inpainting; registration; and document processing. A project is required.

Component(s): Lecture

Component(s): Lecture

Notes:
  • Students may re-register for this course, providing that the course content has changed. Changes in content will be indicated b changes to the course title in the graduate class schedule.

Description: Students who are admitted before June 1, 2001 may take this course to satisfy the requirements for the Master’s Research Thesis.

Component(s): Thesis Research

Description: The thesis represents the results of the student’s independent work after admission to the program. The student submits a thesis based upon this work and defend it in an oral examination. The thesis is evaluated by an Examining Committee which consists of the student’s supervisor(s), and two (2) examiners, one of whom may be external to the student’s department. The Committee is approved by the Graduate Program Director of the student's department.

Component(s): Thesis Research

Description: Students are required to plan and carry out a suitable research, development, or design project, which leads to an advance in knowledge. The thesis involves a literature review of the field of research, and reports on the planning and execution of innovative and original research conducted under supervision of a faculty member. The thesis is the object of an oral defense, under the guidelines of the School of Graduate Studies. Theses will be examined by a committee consisting of the student’s supervisory committee, an external examiner, and other examiners as approved by the GCS Dean of Graduate Studies.

Component(s): Thesis Research

Description: Introduction to software engineering concepts, modern management processes and software lifecycles. Tracking of software requirements and development through issue trackers. Version control practices include integration of feature branching. Validation practices including testing frameworks and code review. Continuous integration and build environments. A practical component on setting up a development environment similar to those used in professional environments. Case studies of successful management processes from open source projects and industry. A project is required.

Component(s): Lecture; Reading

Prerequisite/Corequisite: The following course must be completed previously: SOEN 6461. If prerequisites are not satisfied, permission of instructor is required.

Description: This course introduces software re-engineering, software architecture recovery and reconstruction, and reflexion models. Students use development history to support reengineering, and are exposed to the latest empirical studies on software reengineering and software metrics applied to software re-engineering. Also, students learn how to apply various software re-engineering patterns and software migration strategies. A project is required.

Notes:
  • Students who have received credit for SOEN 691 (Software Re-engineering) may not take this course for credit.

Description: This course focuses on the fundamentals of big data terminology, concepts and technologies. For the technical aspects of big data management systems, the course focuses on big data engines, programming models and file systems. Specific techniques covered include supervised classification, recommender systems, data clustering, frequent itemsets mining, similarity search, data streams and graph analysis. A project is required.

Component(s): Laboratory two hours per week

Notes:
  • Students who have completed SOEN 471 may not take this course for credit.

Description: System analysis, architecture, and engineering for semantic software products. Text Mining systems and their architectures. Tagging and Tag Analysis. Recommender Systems and Collaborative Filtering. Crawling the Blogosphere and Opinion Mining. Applying Clustering, Machine Learning, Classification, and Regression. The Web of Data and Semantic Web Technologies: RDF, RDFS, SPARQL. Linked Open Data (LOD). Design and Re-Use of Semantic Web Vocabularies and Ontologies. Semantic Desktops and Semantic Web Information Systems. Semantic Application Development. Application case studies in biomedical research, software development, business intelligence, online gaming, e-commerce and e-science. Research paper seminar. Empirical evaluation methodologies for semantic systems. A project is required.

Component(s): Lecture

Notes:
  • Students who have received credit for this topic under a SOEN 691 number may not take this course for credit.

Description: Components of formal systems: formal methods; levels of formalism. Integrating formal methods into the existing software life-cycle process model for a given project. Attributes of a formal specification language. Formal notations based on extended finite-state machines; case studies involving the design of user interfaces, reactive systems, and concurrent systems. Software development using formal methods, including tools for: type checking; debugging; verifying checkable properties; validation of refinements; and code generation from refinements. A project is required.

Component(s): Lecture

Description: The course addresses both technical and managerial views of software comprehension and software maintenance issues. Topics covered in this course include: cognitive models, software visualization, CASE tools, reverse engineering, static and dynamic source code analysis, software configuration management, and introduction to current research topics in software maintenance and program comprehension. A project is required.

Component(s): Lecture

Notes:
  • Students who have received credit for COMP 6431 may not take this course for credit.

Description: Problems of writing and managing code. Managing code complexity and quality through a programming process. Self-documenting code, and documentation generation. Software configuration management. Best practices for writing unit tests to control code quality. Advanced practices such as multi-threading concurrency, code reuse, and fault tolerance. A project is required.

Component(s): Lecture; Laboratory two hours per week.

Description: Introduction to software design processes and their models. Representations of design/architecture. Software architectures and design plans. Design methods, object-oriented application frameworks, design patterns, design quality and assurance, coupling and cohesion measurements, design verification and documentation. A design project.

Component(s): Lecture

Notes:
  • Students who have received credit for COMP 6471 before September 2011 may not take this course for credit.

Description: Study of architectural view models, architectural styles and frameworks; Architectural case studies and extraction of concrete architecture; Architectural design patterns; Model Driven Architecture (MDA), Service Oriented Architecture (SOA). Domain specific architectures such as mobile and cloud computing. A project is required.

Component(s): Lecture

Description: The requirements engineering (RE) process. Requirements engineering in different software lifecycle models. Problem analysis. Requirements elicitation. Requirements evaluation. Inconsistency management. Risk analysis. Requirements prioritization and negotiation. Requirements specification: natural language documentation, IEEE and ISO standards. Use cases. Agile processes and user stories. Introduction to formal specification: logics, formal languages. Requirements quality assurance. RE tools. Requirements evolution. Traceability. Domain modelling: UML, ontologies, domain-specific languages. Modelling behaviour. Acceptance criteria. Test cases. Cost models. A project is required.

Component(s): Lecture

Notes:
  • Students who have received credit for COMP 6481 may not take this course for credit.

Prerequisite/Corequisite: The following course must be completed previously: SOEN 6461.

Description: Topics include an introduction to preventive maintenance, design problems, and refactorings; techniques for the detection of design problems and refactoring opportunities; management of preventive maintenance: visualization, prioritization, ranking, and evolution tracking of design problems; empirical studies on refactoring activities and practices; implementation of source code analysis techniques and refactorings. A project is required.

Component(s): Lecture

Notes:
  • Students who have received credit for SOEN 691 (Software Refactoring) may not take this course for credit.

Description: See Requirements for the Master's in Applied Computer Science (MApCompSc) or MEng (Software Engineering) sections.

Component(s): Online

Prerequisite/Corequisite: The following course must be completed previously: SOEN 6431. If prerequisites are not satisfied, permission of the instructor is required.

Description: Role of measurement in Software Engineering, theoretical, technical and managerial views on software measurement. Representational theory of measurement. Theoretical validation of software measurement. Goal-driven measurement. Collecting and analyzing software engineering data. Software quality modelling and measuring. Testing and measurement. Reliability models. Functional size measurement methods. Effort estimation models and their usage in project management. Software measurement standards. Tool support. Case studies. A project is required.

Component(s): Lecture

Description: Introduction to human computer interaction. User-centered design process. User modelling. Task analysis. User interface design knowledge (principles, guidelines and patterns). User interface prototyping. User interface evaluation. A project is required.

Component(s): Lecture; Laboratory two hours per week.

Notes:
  • Students who have received credit for COMP 6751 before September 2011 may not take this course for credit.

Description: This course covers the state-of-the-art technology for multimedia computing. The course topics will cover current media types, images, video, audio, graphics and 3D models in terms of algorithms and data structures for their capture, representation, creation, storage, archival, transmission, assembling, presentation and retrieval. This course will cover fundamental ideas in multimedia technology applicable to computer science and software engineering. A project is required.

Component(s): Lecture

Description: Fundamental concepts of management activities, demonstrating how it can relate to software engineering and how the two can be mutually supportive throughout software development and maintenance. Overview of object-oriented development; software development processes; quality considerations; activity planning; risk management; monitoring and control; maintenance and evolution; issues of professional ethics and practice, and legal issues. A project is required.

Component(s): Lecture

Description: System design with Service Oriented Architecture. Open standards for Web services. Development of SOAP (Service-Oriented Architecture and Programming) and RESTful (REpresentational State Transfer) services. Business process modelling and management. Service composition. Formal models for services. A project is required.

Component(s): Reading

Notes:
  • Students who have received credit for SOEN 691 (Services Computing: Foundations, Design and Implementations) may not take this course for credit.

Component(s): Lecture; Laboratory; Reading

Notes:
  • Subject matter will vary from term to term and from year to year. Students may re-register for this course, providing that the course content has changed. Changes in content will be indicated by the course title following the course number.

Description: Students will complete a case study of a software project. Whenever possible, the project should be conducted in an industrial environment with the cooperation of the student’s employer.

Component(s): Lecture; Reading

Notes:
  • Students who have received credit for SOEN 6971 or COMP 6971 may not take this course for credit.

Prerequisite/Corequisite: Students must have completed 16 credits prior to enrolling; A CGPA of 3.40 or greater; and permission of the Department is required.

Description: The purpose of the project report is to provide students in the MEng (Software Engineering) program with an opportunity to carry out independent project work and to present it in an acceptable form. The project may consist of the following: Before registration for a project course, students must obtain written consent of a faculty member who acts as advisor for the report. A form for this consent is available in the Department of Computer Science and Software Engineering. A four-credit report is due on the last day of classes of the term (fall, winter, summer) in which students are registered. Students are expected to have a preliminary version of their report approved by their advisor before its final submission. On or before the submission deadline, students must submit three copies of the report to their advisor, who grades the report. One copy of the report is returned to the student, one retained by the advisor, and one by the Department. The report, including an abstract, must be suitably documented and illustrated, should be at least 5000 words in length, must be typewritten on one side of 21.5 cm by 28 cm white paper of quality, and must be enclosed in binding. Students are referred to the latest edition of Form and Style: Thesis, Report, Term Papers by Campbell, Ballou and Slade, published by Houghton Mifflin (Academic). Project: 8 hours per week.

Notes:
  • Students who have received credit for COMP 6971 or SOEN 6951 may not take this course for credit.

Prerequisite/Corequisite: The following course must be completed previously: SOEN 6971.

Description: Same course description as SOEN 6971.

Notes:
  • Students who have received credit for ENCS 6931 may not take this course for credit.

Prerequisite/Corequisite: The following courses must be completed previously: SOEN 6461; SOEN 6481.

Description: Overview of current software engineering testing methods, techniques and standards for testing system implementations. Classical white-box testing; dataflow testing; classical black-box testing; integration testing; system testing. Testing measures; test plan. IEEE standard. Object-oriented testing. Test-driven development. Testing quality measures. Test reduction techniques. Techniques for test automation. Tools and techniques for formal verification of software system designs: model checking and theorem proving. A project is required.

Component(s): Lecture

Notes:
  • Students who have received credit for COMP 7481 may not take this course for credit.

Prerequisite/Corequisite: The following course must be completed previously: SOEN 6751.

Description: Intelligent systems and intelligent interfaces. A brief introduction to knowledge representation and reasoning. Creation and adaptation of user models. Software agents at the user interface. Applications of these concepts in the development of intelligent user interfaces. Adaptive user interfaces. Selected advanced topics, such as natural language interfaces, speech based user interfaces, and mobile user interfaces. Laboratory: two hours per week. A project is required.

Component(s): Lecture; Laboratory

Notes:
  • Students who have received credit for COMP 7761 before September 2011 may not take this course for credit.

Component(s): Lecture

Notes:
  • Subject matter will vary from term to term and from year to year. Students may re-register for this course, providing that the course content has changed. Changes in content will be indicated by the course title following the course number.

Description: The thesis represents the results of the student’s independent work after admission to the program. The student submits a thesis based upon this work and defend it in an oral examination. The thesis is evaluated by an Examining Committee which consists of the student’s supervisor(s), and two (2) examiners, one of whom may be external to the student’s department. The Committee is approved by the Graduate Program Director of the student's department.

Component(s): Thesis Research

Description: Students are required to plan and carry out a suitable research, development, or design project, which leads to an advance in knowledge. The thesis involves a literature review of the field of research, and reports on the planning and execution of innovative and original research conducted under supervision of a faculty member. The thesis is the object of an oral defense, under the guidelines of the School of Graduate Studies. Theses will be examined by a committee consisting of the student’s supervisory committee, an external examiner, and other examiners as approved by the GCS Dean of Graduate Studies.

Component(s): Thesis Research

© Concordia University