Academic Calendar 2024-2025

Computing in Engineering (CMPE)

CMPE 204  Logic For Computing Science  Units: 3.00  
Elements of mathematical logic with computing applications. Formal proof systems for propositional and predicate logic. Interpretations, validity, and satisfiability. Introduction to soundness, completeness and decidability.
K3(Lec: Yes, Lab: No, Tut: No)
Requirements: Prerequisites: ELEC 270 or CISC 203 Corequisites: Exclusions:   
Offering Term: FW  
CEAB Units:    
Mathematics 36  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 0  
Engineering Design 0  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Construct a syntactic proof as a series of rigorous inference steps in a logical deduction.
  2. Represent logical statements and descriptions declaratively in a logical language.
  3. Analyze the semantics of a set of logical statements in a logical framework.
  4. Synthesize a rigorous human-understandable English description of a set of logical statements.
  
CMPE 212  Introduction to Computing Science II  Units: 4.00  
Introduction to object-oriented design, architecture, and programming. Use of packages, class libraries, and interfaces. Encapsulation and representational abstraction. Inheritance. Polymorphic programming. Exception handling. Iterators. Introduction to a class design notation. Applications in various areas.
(Lec: 3, Lab: 1, Tut: 0)
Requirements: Prerequisites: APSC 142 or APSC 143 or MNTC 313, ELEC 278 or MREN 178 Corequisites: Exclusions: CISC 124  
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 26  
Engineering Design 22  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. CLOs coming soon; please refer to your course syllabus in the meantime.
  
CMPE 223  Software Specifications  Units: 3.00  
Introduction to techniques for specifying the behaviour of software, with applications of these techniques to design, verification and construction of software. Logic-based techniques such as loop invariants and class invariants. Automata and grammar-based techniques, with applications to scanners, parsers, user-interface dialogs and embedded systems. Computability issues in software specifications.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: ELEC 278 or MREN 178 and ELEC 270 Corequisites: Exclusions:  
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 12  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Design specifications for the functional behaviour of algorithmic code fragments.
  2. Formally verify the correctness of simple code fragments involving conditional statements and loops using logic based techniques.
  3. Design regular expressions, state transition diagrams and context-free grammars for formal languages.
  4. Appraise the limitations of regular expressions and context-free grammars and to demonstrate that a language is nonregular.
  5. Appraise the limitations of algorithmic computation and prove that the halting problem is unsolvable.
  
CMPE 251  Data Analytics  Units: 3.00  
Introduction to data analytics; data preparation; assessing performance; prediction methods such as decision trees, random forests, support vector machines, neural networks and rules; ensemble methods such as bagging and boosting; clustering techniques such as expectation-maximization, matrix decompositions, and biclustering; attribute selection.
K3(Lec: Yes, Lab: No, Tut: No)
Requirements: Prerequisites: APSC 142 or APSC 143 or MNTC 313, or programming experience recommended Corequisites: Exclusions: CISC 251, CMPE 333, CISC 333  
Offering Term: F  
CEAB Units:    
Mathematics 10  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 14  
Engineering Design 12  
Offering Faculty: Smith Engineering  

Course Learning Outcomes:

  1. CLOs coming soon; please refer to your course syllabus in the meantime.
  
CMPE 271  Scientific Computing  Units: 3.00  
Introduction to scientific computing: floating point arithmetic, algorithm design, error analysis, ill-conditioning. Zero-finding. Linear equations. Interpolation. Integration. Least-squares fitting. Effective use of library programs, with discussion of their limitations and some aspects of their design and implementation.
COURSE DELETED 2019-2020
(Lec: 3, Lab: 0, Tut: 0)
Requirements: PREREQ: APSC 143 and APSC 172 and APSC 174 and registered in BSCE or BASC. EXCLUSION: ENPH 213  
Offering Term: W  
CEAB Units:    
Mathematics 21  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 15  
Engineering Design 0  
Offering Faculty: Faculty of Arts and Science  
  
CMPE 320  Fndmnts Software Development  Units: 4.00  
Introduction to management of small and medium-scale software projects. Advanced programming methodology using the programming language C++. Includes a significant programming project.
(Lec: 3, Lab: 0, Tut: 1)
Requirements: Prerequisites: ELEC 278 or MREN 178 Corequisites: Exclusions:  
Offering Term: F  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 26  
Engineering Design 22  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Design and construct medium-sized console and GUI programs in both procedural and object-oriented paradigms.
  2. Design and construct 500 to 1000 line console and GUI C++ programs using both Object Oriented and procedural C++ code.
  3. Contribute to the design and construction of a larger software project as a member of an agile programming team.
  4. Use software engineering techniques and tools to aid in the development of larger scale software projects.
  
CMPE 322  Software Architecture  Units: 4.00  
Abstractions and patterns of interactions and relationships among modules. Design recovery; relationship of architecture to requirements and testing.
K4(Lec: Yes, Lab: 0, Tut: No)
Requirements: Prerequisites: ELEC 270, CMPE 223 (CISC 223), ELEC 278 or MREN 178 Corequisites: Exclusions:  
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 22  
Engineering Design 26  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Recognize and describe the various architecture styles and design patterns.
  2. Analyze the tradeoffs between competing software architecture styles and design patterns.
  3. Recover, document, present, and discuss the architecture of a pre-existing software system using high level diagrams (such as UML and basic box and arrow diagrams).
  4. Specify, design and possibly implement a feature in a pre-existing code base.
  5. Work effectively in a group setting.
  
CMPE 324  Operating Systems  Units: 3.00  
Layered operating systems for conventional shared memory computers: Concurrent processes, Synchronization and communication, Concurrent algorithms, Scheduling Deadlock, Memory management, Protection. File systems. Device management. Typical layers.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: ELEC 274, ELEC 278 or MREN 178 Corequisites: Exclusions: ELEC 377  
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 36  
Engineering Design 0  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Learn some foundations about operating systems: process management, interrupts handling, context-switching, and threads.
  2. Learn the concept of synchronization and how to enforce synchronization using different synchronization tools. e.g., semaphores.
  3. Learn how operating systems manage resource allocation in a time-sharing system, and how to deal with deadlocks.
  4. Learn different memory management schemes and how operating systems manage the memory.
  5. Learn how to design and develop safe multithreaded applications.
  6. Learn basic concepts in operating system security.
  
CMPE 325  Human-Computer Interaction  Units: 3.00  
Developing usable software requires that human factors be considered throughout the design and development process. This course introduces a series of techniques for development and evaluating usable software, and shows how these techniques can be integrated into a process for software development. Alternately offered as CISC 325.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: ELEC 278 or MREN 178 Corequisites: Exclusions:  
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 12  
Offering Faculty: Smith Engineering  

Course Learning Outcomes:

  1. Critique the usability of an interactive system.
  2. Design for people with diverse abilities.
  3. Apply a user-centered design process.
  4. Design and prototype Graphical User Interfaces.
  5. Perform user evaluation of user interfaces.
  
CMPE 327  Software Quality Assurance  Units: 3.00  
Validation of software throughout the life cycle. Comparative effectiveness in defect removal of formal methods (proofs of correctness), inspection (walkthroughs and reviews), and testing (unit, integration, and system testing; white box versus black box).
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: ELEC 279 or CMPE 212 Corequisites: Exclusions:   
Offering Term: F  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 12  
Offering Faculty: Smith Engineering  

Course Learning Outcomes:

  1. Choose appropriate software process models.
  2. Describe the inspection process, and the advantages of inspection.
  3. Compare and contrast different testing methods, including black and white box approaches.
  4. Explain different metrics used to evaluate software complexity.
  5. Outline and implement quality requirements at different phases of the software life-cycle.
  6. Build a foundation for further learning by exposure to multiple computer languages, development tools, and methodologies.
  
CMPE 330  Computer-Integrated Surgery  Units: 3.00  
Concepts of computer-integrated surgery systems and underlying techniques such as medical-image computing, robotics, and virtual reality, learned through real-life applications and problems. Techniques learned in class will be applied in a hands-on surgery session where students perform minimally invasive surgery with virtual-reality navigation tools. Enrolment is limited.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: ELEC 279 or CMPE 212, MTHE 272 or ELEC 372 or ENPH 213 Corequisites: Exclusions:  
Offering Term: F  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 36  
Engineering Design 0  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Design and partly implement computer-integrated surgery systems.
  2. Analyze the mechanism of computer-integrated surgery systems.
  3. Produce high level design of computer-aided surgery systems.
  4. Implement key components in software.
  
CMPE 332  Database Management Systems  Units: 3.00  
Data models: relational, entity-relationship. Relational query languages: relational algebra and SQL. Relational database design. Application interfaces and embedded SQL. Storage and indexing.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: ELEC 278 or MREN 178, ELEC 270 or MTHE 217 (MATH 217) Corequisites: Exclusions:  
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 12  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Apply database design techniques and tools to create a database schema and database instance for an application.
  2. Apply an application design method and development tools to create a web application to support users in querying and manipulating the database for an application.
  3. Compose queries on a database in both SQL and the relational algebra.
  4. Assess the quality of database schemas and queries.
  5. Apply methods to improve the performance and security of a database application.
  
CMPE 351  Advanced Data Analytics  Units: 3.00  
Design and implementation of complex analytics techniques; predictive algorithms at scale; deep learning; clustering at scale; advanced matrix decompositions, analytics in the Web, collaborative filtering; social network analysis; applications in specialized domains.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: CMPE 251, ELEC 326 or MTHE 351 Corequisites: Exclusions: CISC 351, CISC 372  
Offering Term: W  
CEAB Units:    
Mathematics 10  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 14  
Engineering Design 12  
Offering Faculty: Smith Engineering  

Course Learning Outcomes:

  1. To provide an in-depth knowledge on the design of advanced data analytics techniques.
  2. To discuss how to design data pipelines for real-world applications and what are the key factors to consider.
  3. To understand implementation of data solutions involving advanced analytics techniques and diagnose problems.
  4. To critically analysis of existing data solutions and design new data analysis pipelines in context.
  
CMPE 365  Algorithms I  Units: 4.00  
Principles of design, analysis and implementation of efficient algorithms. Case studies from a variety of areas illustrate divide and conquer methods, the greedy approach, branch and bound algorithms and dynamic programming.
(Lec: 3, Lab: 1, Tut: 0)
Requirements: Prerequisites: ELEC 278 or MREN 178, ELEC 270 or any discrete mathematics course Corequisites: Exclusions:  
Offering Term: F  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 24  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Possess a strong understanding of computational complexity, up to and including: Polynomial time Reducibility; classes P and NP; NP-Completeness; Proofs of NP-Completeness.
  2. Be able to recognize classical NP-Complete problems.
  3. Be able to prove that new problems are NP-Complete using polynomial time reductions from known NP-Complete problems.
  4. Apply key algorithm paradigms, both in the abstract and through concrete examples: Divide and Conquer; Greedy Algorithms; Dynamic Programming; Branch and Bound.
  5. Have some understanding of an advanced topic, which varies from year to yearRecent choices have included: Linear Programming; Computational Geometry; String Matching.
  
CMPE 422  Formal Methods In Software Eng  Units: 3.00  
Mathematical methods for describing software behaviour and structure. Topics include (but are not limited to) the following: requirements specification; Module specification: axiomatic, algebraic, and trace specification; program specification: abstract models; verification; specification-based validation.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: CMPE 204 (CISC 204), CMPE 223 (CISC 223) Corequisites: Exclusions:   
Offering Term: F  
CEAB Units:    
Mathematics 14  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 12  
Engineering Design 10  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Use and explain formal specification languages based on, e.g., propositional logic, predicate logic, relational calculus, and finite state machines.
  2. Use and explain notations and techniques to define the semantics of a language precisely.
  3. Use and explain analysis techniques for formal specification languages such as theorem proving, satisfiability checking, automatic test input generation, and exhaustive state space exploration together with their capabilities and limitations.
  4. Use and explain tools supporting formal specification languages together with their capabilities and limitations.
  5. Design, construct, and analyze small formal specifications.
  6. Explain the advantages and disadvantages of formal specification languages and tools.
  7. Explain the role and potential uses of formal methods for different software development activities.
  
CMPE 425  Advanced User Interface Design  Units: 3.00  
Advanced user interface styles such as multimedia, support for collaboration over the Internet, virtual reality and wearable computers. Processes supporting the design of advanced user interfaces. Implementation techniques.
NOT OFFERED 2024-2025
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: CMPE 325 or permission of the instructor Corequisites: Exclusions:   
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 12  
Offering Faculty: Smith Engineering  

Course Learning Outcomes:

  1. CLOs coming soon; please refer to your course syllabus in the meantime.
  
CMPE 432  Advanced Database Systems  Units: 3.00  
Topics include the presentation and storage of data, implementation concerns, and the integration of databases with other areas of computer science.
NOT OFFERED 2024-2025
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: CMPE 332 (CISC 332), ELEC 278 or MREN 178 Corequisites: Exclusions:  
Offering Term: F  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 12  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Create distributed storage structures for complex datasets.
  2. Organize, integrate and process data from distributed storage systems.
  3. Create metadata for complex datasets.
  4. Articulate issues in data provenance and curation.
  5. Build workflows and query the results.
  
CMPE 434  Distributed Systems  Units: 3.00  
Operating systems for distributed architectures: distributed system characteristics, process synchronization and communication. Basic distributed algorithms. Principles of fault tolerance. Reliable broadcast. Naming. File systems. Load balancing. Layering, Security.
NOT OFFERED 2024-2025
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: ELEC 377 Corequisites: Exclusions:   
Offering Term: F  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 12  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. CLOs coming soon; please refer to your course syllabus in the meantime.
  
CMPE 452  Neural Networks and Genetic Algorithms  Units: 3.00  
Artificial Neural Networks (ANN) and Genetic Algorithms (GA) for problem solving and prediction tasks such as classification, clustering, optimization and data reduction and modeling human cognition, with application to real world problems. Ongoing research in this area in various application domains.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: ELEC 278 or MREN 178 or permission of the instructor Corequisites: Exclusions: ELEC 425  
Offering Term: F  
CEAB Units:    
Mathematics 9  
Natural Sciences 15  
Complementary Studies 0  
Engineering Science 12  
Engineering Design 0  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Explain the concepts behind the operation of biological neurons and the evolution of artifical neural network (ANN) to model connections as a representation of information.
  2. Design and implement different types of ANNs using a variety of design techniques and learning algorithms for prediction, clustering, classification, storage, and function approximation
  3. Apply optimization techniques such as simulated annealing and genetic algorithms with ANN training algorithms
  4. Describe with reference to recent research work how ANNs are used to simulate human cognition, vison, and memory, and are applied to intelligent systmes for language and image processing, decision support systems, and predictive systems.
  5. Explain the power and limitations of neural network systems.
  
CMPE 454  Computer Graphics  Units: 3.00  
An introduction to computer graphics, including a review of current hardware; modelling and transformations in two and three dimensions; visual realism; perspective, hidden surface elimination, and shading; colour models; applications in several fields.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: ELEC 278 or MREN 178 Corequisites: Exclusions:  
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 12  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. CLOs coming soon; please refer to your course syllabus in the meantime.
  
CMPE 457  Image Processing & Computer  Units: 3.00  
Fundamental concepts and applications in image processing and computer vision. Topics include image acquisition, convolution. Discrete Fourier Transform, image enhancement edge detection, segmentation, image registration, human contrast perception, colour perception and reproduction, and stereo vision.
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: Any first-year algebra course, any first-year calculus course, ELEC 278 or MREN 178 Corequisites: Exclusions: ELEC 474  
Offering Term: F  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 24  
Engineering Design 12  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. CLOs coming soon; please refer to your course syllabus in the meantime.
  
CMPE 458  Programming Language Processor  Units: 4.00  
Introduction to the systematic construction of a compiler: grammars and languages, scanners, top-down and bottom-up parsing, runtime organization, symbol tables, internal representations; Polish notation, syntax trees, semantic routines, storage allocation, code generation, interpreters.
(Lec: 3, Lab: 0, Tut: 1)
Requirements: Prerequisites: ELEC 279 or CISC 121 or CMPE 212 and ELEC 274 Corequisites: Exclusions:   
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 0  
Complementary Studies 0  
Engineering Science 30  
Engineering Design 18  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Use real software engineering tools to maintain and enhance existing software systems.
  2. Apply component-based software engineering and table-driven programming to multi-phase software systems.
  3. Follow standard practices for software quality assurance and testing in a small-team project.
  4. Employ domain-specific languages and model-driven engineering to develop software.
  
CMPE 471  Computational Biology  Units: 3.00  
Introduction to computational approaches to the problems in molecular biology. This will include the study of areas such as techniques and algorithms for sequence analysis and alignment; molecular databases; protein structure prediction and molecular data mining.
NOT OFFERED 2024-2025
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: CMPE 365 (CISC 365) or ELEC 278 or MREN 178 and MBIO 218 Corequisites: BCHM 315 Exclusions:  
Offering Term: F  
CEAB Units:    
Mathematics 0  
Natural Sciences 18  
Complementary Studies 0  
Engineering Science 9  
Engineering Design 9  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Describe state-of-the-art algorithms in Bioinformatics with emphasis on the strengths and limitations of these techniques.
  2. Distill information provided by a biologist and discern appropriate and effective algorithmic solutions.
  3. Critically assess an algorithm for its correctness and efficiency, and argue about the algorithms correctness, performance bounds, and approximation ratio as appropriate.
  4. Make sensible pragmatic algorithmic choices of standard packages or implementations for specific applications.
  
CMPE 472  Medical Informatics  Units: 3.00  
Current topics in the application of information technology to medicine, including computed tomography and x-ray imaging: 2D and 3D ultrasound; computer-assisted planning of interventional procedures; image registration; computer-assisted surgery; bioelectric signals; picture archiving and communication systems (PACS).
(Lec: 3, Lab: 0, Tut: 0)
Requirements: Prerequisites: CMPE 330 Corequisites: Exclusions:   
Offering Term: W  
CEAB Units:    
Mathematics 0  
Natural Sciences 18  
Complementary Studies 0  
Engineering Science 18  
Engineering Design 0  
Offering Faculty: Faculty of Arts and Science  

Course Learning Outcomes:

  1. Analyze the inner workings of medical image manipulation and registration methods for use in image-guided computer-assisted intervention systems.
  2. Design solutions in which modern information technology is used to solve applied problems in the medical field.
  3. Analyze the specifics and limitations of dataflow in a medical environment, especially in the area of medical image analysis.
  4. Design and develop basic medical image analysis and image registration methods for use in typical computer-assisted surgery and intervention applications.