Concordia University

https://www.concordia.ca/content/concordia/en/academics/graduate/calendar/current/encs/computer-science-courses.html

Computer Science Courses

List of Courses by Topic Areas

C01 - DEVELOPMENTS IN COMPUTER SCIENCE

COMP 691 Topics in Computer Science I
COMP 791 Topics in Computer Science II

C02 - PARALLEL AND DISTRIBUTED SYSTEMS

COMP 6231 Distributed System Design
COMP 6281 Parallel Programming (*)
COMP 7241 Parallel Algorithms and Architectures
COMP 7251 Mobile Computing and Wireless Networks

C03 - IMAGE PROCESSING/PATTERN RECOGNITION AND GRAPHICS

COMP 6311 Animation for Computer Games (*)
COMP 6321 Machine Learning
COMP 6711 Computational Geometry
COMP 6731 Pattern Recognition (*)
COMP 6761 Advanced 3D Graphics for Game Programming
COMP 6771 Image Processing (*)
COMP 7661 Advanced Rendering and Animation
COMP 7751 Advanced Pattern Recognition
COMP 7781 Advanced Image Processing

C04 - SOFTWARE SYSTEMS AND LANGUAGES

COMP 6411 Comparative Study of Programming Languages
COMP 6421 Compiler Design (*)
COMP 6461 Computer Networks and Protocols
COMP 7451 Semantics of Programming Languages

C05 - INFORMATION PROCESSING AND MANAGEMENT

COMP 6521 Advanced Database Technology and Applications
COMP 6591 Introduction to Knowledge-Base Systems
COMP 6811 Bioinformatics Algorithms
COMP 6821 Bioinformatics Databases and Systems
COMP 7531 Database Systems Principles

C06 - SCIENTIFIC COMPUTATION AND ALGORITHMS

COMP 6351 Topics in Scientific Computation
COMP 6361 Numerical Analysis of Nonlinear Equations
COMP 6621 Discrete Mathematics of Paul Erdös
COMP 6641 Theory of Computation
COMP 6651 Algorithm Design Techniques
COMP 6661 Combinatorial Algorithms
COMP 7521 Cryptography and Data Security
COMP 7651 Advanced Analysis of Algorithms

C07 - ARTIFICIAL INTELLIGENCE AND HUMAN-MACHINE COMMUNICATION

COMP 6531 Foundations of the Semantic Web
COMP 6721 Artificial Intelligence (*)
COMP 6741 Intelligent Systems (*)
COMP 6751 Natural Language Analysis
COMP 6781 Statistical Natural Language Processing
COMP 6791 Information Retrieval and Web Search (*)

C08 - DEVELOPMENTS IN SOFTWARE ENGINEERING

SOEN 691 Topics in Software Engineering I
SOEN 791 Topics in Software Engineering II

C09 - SOFTWARE DEVELOPMENT

SOEN 6441 Advanced Programming Practices 
SOEN 6751 Human Computer Interface Design
SOEN 7761 Intelligent User Interfaces

C10 - SOFTWARE ARCHITECTURE AND DESIGN

SOEN 6311 Formal Methods
SOEN 6461 Software Design Methodologies
SOEN 6471 Advanced Software Architectures
SOEN 6481 Software Systems Requirements Specification
SOEN 6861 Services Computing: Foundations, Design and Implementations

C11 - SOFTWARE MAINTENANCE AND QUALITY

SOEN 6431 Software Comprehension and Maintenance
SOEN 6491 Software Refactoring
SOEN 6611 Software Measurement
SOEN 7481 Software Verification and Testing

C12 - SOFTWARE DEVELOPMENT PROCESSES AND MANAGEMENT 

SOEN 6011 Software Engineering Processes
SOEN 6841 Software Project Management

C13 - SOFTWARE ENGINEERING

SOEN 6761 Multimedia Computing
SOEN 6951 Software Engineering Case Study
SOEN 6211 Semantic Computing
SOEN 6941 Software Engineering Research Project

C14 - INDUSTRIAL EXPERIENCE, SEMINAR, PROJECT, REPORT AND THESIS

COMP 6961 Graduate Seminar in Computer Science (1 credit)
COMP 6971 Project and Report (4 credits)
SOEN 6971 Project and Report (4 credits)
COMP 7941 Master’s Research and Thesis (29 credits)
ENCS 6931 Industrial Stage and Training (9 credits)
SOEN 7941 Master’s Research and Thesis (29 credits)
SOEN 6501 Programming Competency Test
M.Ap.Comp.Sc and M.Eng (SOEN) students must complete SOEN 6501 in their first term after the first registration as full-time (part-time) students in their program. This course is graded on a pass/fail basis and has no credit value. For purposes of registration, this work is designated as SOEN 6501.

C15 - DOCTORAL SEMINAR, RESEARCH, AND THESIS

ENCS 8011 PhD Seminar (2 credits)
ENCS 8511 Doctoral Research Proposal (6 credits)
COMP 8901 Doctoral Research and Thesis (70 credits)
SOEN 8901 Doctoral Research and Thesis (70 credits)
ENCS 8501 Comprehensive Examination
Doctoral students must begin work on ENCS 8501 within 12 (24) months after the first registration as full-time (part-time) students in a PhD program. This course is graded on a pass/fail basis and has no credit value. For purposes of registration, this work will be designated as ENCS 8501.

C16 - COGNATE DISCIPLINES

Students in a master’s program may take courses from Engineering Topic Areas E10, E42, E66, E68 and E70 for credit and also from the course list below, provided that prerequisite requirements are met:
COEN 7311 Protocol Design and Validation
ENCS 6021 Engineering Analysis
ENCS 6161 Probability and Stochastic Processes
ENCS 6181 Optimization Techniques I (*)

Course Descriptions

The following are one-term courses (four credits each) unless otherwise indicated. For additional information concerning course descriptions, prerequisites, and schedules contact the Office of the Associate Dean, Engineering and Computer Science.

Note: Some graduate courses are content equivalent with specific undergraduate courses. These graduate courses, indicated with (*) below, are not available for credit to students who have completed the undergraduate equivalent.

COMP 6231 Distributed System Design (4 credits)
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.

COMP 6281 Parallel Programming (*) (4 credits)
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.

COMP 6311 Animation for Computer Games (*) (4 credits)
Prerequisite: COMP 6761 or equivalent, previously or concurrently.
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. Laboratory: two hours per week.

COMP 6321 Machine Learning (4 credits)
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. Laboratory: two hours per week.

COMP 6331 Advanced Game Development (*) (4 credits)
Prerequisite: Permission of instructor.
Introduction to advanced aspects of computer games. Game engine design. Artificial Intelligence (AI): non‑player character movement, coordinated movement, pathfinding, world representations; decision making; tactical AI, strategic AI, learning in games. Physics‑based techniques: collision detection and response. Networked gaming: multi‑player games, networking and distributed game design, mobile gaming. Improving realism: cut scenes, 3D sound. A project is required. Laboratory: two hours per week.

COMP 6351 Topics in Scientific Computation (4 credits)
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.

COMP 6361 Numerical Analysis of Nonlinear Equations (4 credits)
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.

COMP 6411 Comparative Study of Programming Languages (4 credits) 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.

COMP 6421 Compiler Design (*) (4 credits)
Compiler organization and implementation: lexical analysis and parsing, syntax-directed translation, code optimization. Run-time systems. A project is required.

COMP 6461 Computer Networks and Protocols (4 credits)
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. Laboratory: two hours per week.

COMP 6521 Advanced Database Technology and Applications (4 credits)
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. Laboratory: Two hours per week.

COMP 6531 Foundations of the Semantic Web (4 credits)
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.

COMP 6591 Introduction to Knowledge-Base Systems (4 credits)
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.

COMP 6621 Discrete Mathematics of Paul Erdös (4 credits)
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.

COMP 6631 Large-Scale Optimization (4 credits)
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.
Note: Students who have received credit for this topic under a COMP 691Y number may not take this course for credit.

COMP 6641 Theory of Computation (4 credits)
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.

COMP 6651 Algorithm Design Techniques (4 credits)
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.

COMP 6661 Combinatorial Algorithms (4 credits)
Representation and generation of combinatorial objects; search techniques; counting and estimation. Projects on selected applications from combinatorics and graph theory.

COMP 6711 Computational Geometry (4 credits)
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.

COMP 6721 Artificial Intelligence (*) (4 credits)
Scope of AI. First order logic. Automated reasoning. Search and heuristic search. Game-playing. Planning. Knowledge representation. Probabilistic reasoning. Introduction to machine learning. Introduction to natural language processing. A project is required.

COMP 6731 Pattern Recognition (*) (4 credits)
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. Laboratory: two hours per week.

COMP 6741 Intelligent Systems (*) (4 credits)
Knowledge representation and reasoning. Uncertainty and conflict resolution. Design of intelligent systems. Grammar-based, rule-based, and blackboard architectures. A project is required. Laboratory: two hours per week.

COMP 6751 Natural Language Analysis (4 credits)
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.
Note: Students who have received credit for COMP 7741 before September 2011 may not take this course for credit.

COMP 6761 Advanced 3D Graphics for Game Programming (4 credits)
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. Laboratory: Two hours per week.

COMP 6771 Image Processing (*) (4 credits)
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. Laboratory: two hours per week.

COMP 6781 Statistical Natural Language Processing (4 credits)
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.

COMP 6791 Information Retrieval and Web Search (*) (4 credits)
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. Laboratory: two hours per week.

COMP 6811 Bioinformatics Algorithms (4 credits)
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.

COMP 6821 Bioinformatics Databases and Systems (4 credits)
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.

COMP 691 Topics in Computer Science I (4 credits)
Subject matter will vary from term to term and from year to year. Students may re-register for this course, providing that course content has changed. Changes in content will be indicated by the letter following the course number, e.g., COMP 691A, COMP 691B, etc.

COMP 6961 Graduate Seminar in Computer Science (1 credit)
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.

COMP 6971 Project and Report (4 credits)
Prerequisite: Completion of 16 credits; a CGPA of 3.40 or greater; permission of the Department.
See Requirements for the Master of/Magisteriate in Applied Computer Science (MApCompSc) section. Project: 8 hours per week.
Note: Students who have received credit for SOEN 6951 or SOEN 6971 may not take this course for credit.

COMP 7241 Parallel Algorithms and Architectures (4 credits)
Prerequisite: COMP 6281 or permission of instructor.
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.

COMP 7251 Mobile Computing and Wireless Networks (4 credits)
Prerequisite: COMP 6461.
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.

COMP 7451 Semantics of Programming Languages (4 credits)
Prerequisite: COMP 6411.
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.

COMP 7521 Cryptography and Data Security (4 credits)
Prerequisite: COMP 6651.
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.

COMP 7531 Database Systems Principles (4 credits)
Prerequisite: COMP 6521.
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.

COMP 7651 Advanced Analysis of Algorithms (4 credits)
Prerequisite: COMP 6651.
Amortized analysis of algorithms, NP-hardness and approximation algorithms, online algorithms, randomized algorithms. Selected topics of current interest. Project or term paper.

COMP 7661 Advanced Rendering and Animation (4 credits)
Prerequisite: COMP 6761.
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.

COMP 7751 Advanced Pattern Recognition (4 credits)
Prerequisite: COMP 6731.
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.

COMP 7781 Advanced Image Processing (4 credits)
Prerequisite: COMP 6771 or permission of instructor.
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.

COMP 791 Topics in Computer Science II (4 credits)
Subject matter will vary from term to term and from year to year. Students may re-register for this course, providing that course content has changed. Changes in content will be indicated by the letter following the course number, e.g. COMP 791A, COMP 791B, etc.

COMP 7941 Master’s Research and Thesis (29 credits)
Students are required to submit a thesis prepared under the guidance of a faculty member appointed by the Faculty Graduate Studies Committee. The thesis must represent the result of the student’s independent work undertaken after admission to the program. The thesis will be evaluated by a committee appointed by the Faculty Graduate Studies Committee.

COMP 8901 Doctoral Research and Thesis (70 credits)

SOEN 6011 Software Engineering Processes (4 credits)
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.

SOEN 6211 Semantic Computing (4 credits)
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.
Note: Students who have received credit for this topic under a SOEN 691B number may not take this course for credit.

SOEN 6311 Formal Methods (4 credits)
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.

SOEN 6431 Software Comprehension and Maintenance (4 credits)
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.
Note: Students who have received credit for COMP 6431 may not take this course for credit.

SOEN 6441 Advanced Programming Practices (4 credits)
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. Laboratory: two hours per week.

SOEN 6461 Software Design Methodologies (4 credits)
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.
Note: Students who have received credit for COMP 6471 before September 2011 may not take this course for credit.

SOEN 6471 Advanced Software Architectures (4 credits)
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.

SOEN 6481 Software Systems Requirements Specification (4 credits)
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.
Note: Students who have received credit for COMP 6481 may not take this course for credit.

SOEN 6491 Software Refactoring (4 credits)
Prerequisite: SOEN 6461.
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.
Note: Students who have received credit for SOEN 691C (Software Refactoring) may not take this course for credit.

SOEN 6501 Programming Competency Test (No credit value)
See Requirements for the Master of/Magisteriate in Applied Computer Science (MApCompSc) or Master of/Magisteriate in Engineering (Software Engineering) sections.

SOEN 6611 Software Measurement (4 credits)
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.

SOEN 6751 Human Computer Interface Design (4 credits)
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. Laboratory: two hours per week.
Note: Note: Students who have received credit for COMP 6751 before September 2011 may not take this course for credit.

SOEN 6761 Multimedia Computing (4 credits)
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.

SOEN 6841 Software Project Management (4 credits)
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.

SOEN 6861 Services Computing: Foundations, Design and Implementations (4 credits)
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.
Note: Students who have received credit for SOEN 691A (Services Computing: Foundations, Design and Implementations) may not take this course for credit.

SOEN 691 Topics in Software Engineering (4 credits)
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 letter following the course number, e.g. SOEN 691A, SOEN 691B, etc.

SOEN 6951 Software Engineering Case Study (4 credits)
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.
Note: Students who have received credit for SOEN 6971 or COMP 6971 may not take this course for credit.

SOEN 6971 Project and Report (4 credits)
Prerequisite: Completion of 16 credits; a CGPA of 3.40 or greater; permission of the Department.
See Requirements for the Degree of Master of/Magisteriate in Applied Computer Science (MApCompSc) section. Project: 8 hours per week.
Note: Students who have received credit for COMP 6971 or SOEN 6951 may not take this course for credit.

SOEN 7481 Software Verification and Testing (4 credits)
Prerequisites: SOEN 6461, SOEN 6481.
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.
Note: Students who have received credit for COMP 7481 may not take this course for credit.

SOEN 7761 Intelligent User Interfaces (4 credits)
Prerequisite: SOEN 6751.
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.
Note: Students who have received credit for COMP 7761 before September 2011 may not take this course for credit.

SOEN 791 Topics in Software Engineering II (4 credits)
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 letter following the course number, e.g. SOEN 791A, SOEN 791B, etc.

SOEN 7941 Master’s Research and Thesis (29 credits)
Students are required to submit a thesis prepared under the guidance of a faculty member appointed by the Faculty Graduate Studies Committee. The thesis must represent the result of the student’s independent work undertaken after admission to the program. The thesis will be evaluated by a committee appointed by the Faculty Graduate Studies Committee.

SOEN 8901 Doctoral Research and Thesis (70 credits)

Back to top

© Concordia University