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)
K3(Lec: Yes, Lab: No, Tut: No)
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:
- Construct a syntactic proof as a series of rigorous inference steps in a logical deduction.
- Represent logical statements and descriptions declaratively in a logical language.
- Analyze the semantics of a set of logical statements in a logical framework.
- 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)
(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:
- 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)
(Lec: 3, Lab: 0, Tut: 0)
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:
- Design specifications for the functional behaviour of algorithmic code fragments.
- Formally verify the correctness of simple code fragments involving conditional statements and loops using logic based techniques.
- Design regular expressions, state transition diagrams and context-free grammars for formal languages.
- Appraise the limitations of regular expressions and context-free grammars and to demonstrate that a language is nonregular.
- 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)
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:
- 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)
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)
(Lec: 3, Lab: 0, Tut: 1)
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:
- Design and construct medium-sized console and GUI programs in both procedural and object-oriented paradigms.
- Design and construct 500 to 1000 line console and GUI C++ programs using both Object Oriented and procedural C++ code.
- Contribute to the design and construction of a larger software project as a member of an agile programming team.
- 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)
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:
- Recognize and describe the various architecture styles and design patterns.
- Analyze the tradeoffs between competing software architecture styles and design patterns.
- 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).
- Specify, design and possibly implement a feature in a pre-existing code base.
- 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)
(Lec: 3, Lab: 0, Tut: 0)
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:
- Learn some foundations about operating systems: process management, interrupts handling, context-switching, and threads.
- Learn the concept of synchronization and how to enforce synchronization using different synchronization tools. e.g., semaphores.
- Learn how operating systems manage resource allocation in a time-sharing system, and how to deal with deadlocks.
- Learn different memory management schemes and how operating systems manage the memory.
- Learn how to design and develop safe multithreaded applications.
- 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)
(Lec: 3, Lab: 0, Tut: 0)
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:
- Critique the usability of an interactive system.
- Design for people with diverse abilities.
- Apply a user-centered design process.
- Design and prototype Graphical User Interfaces.
- 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)
(Lec: 3, Lab: 0, Tut: 0)
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:
- Choose appropriate software process models.
- Describe the inspection process, and the advantages of inspection.
- Compare and contrast different testing methods, including black and white box approaches.
- Explain different metrics used to evaluate software complexity.
- Outline and implement quality requirements at different phases of the software life-cycle.
- 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)
(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:
- Design and partly implement computer-integrated surgery systems.
- Analyze the mechanism of computer-integrated surgery systems.
- Produce high level design of computer-aided surgery systems.
- 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)
(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:
- Apply database design techniques and tools to create a database schema and database instance for an application.
- 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.
- Compose queries on a database in both SQL and the relational algebra.
- Assess the quality of database schemas and queries.
- 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)
(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:
- To provide an in-depth knowledge on the design of advanced data analytics techniques.
- To discuss how to design data pipelines for real-world applications and what are the key factors to consider.
- To understand implementation of data solutions involving advanced analytics techniques and diagnose problems.
- 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)
(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:
- Possess a strong understanding of computational complexity, up to and including: Polynomial time Reducibility; classes P and NP; NP-Completeness; Proofs of NP-Completeness.
- Be able to recognize classical NP-Complete problems.
- Be able to prove that new problems are NP-Complete using polynomial time reductions from known NP-Complete problems.
- Apply key algorithm paradigms, both in the abstract and through concrete examples: Divide and Conquer; Greedy Algorithms; Dynamic Programming; Branch and Bound.
- 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)
(Lec: 3, Lab: 0, Tut: 0)
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:
- Use and explain formal specification languages based on, e.g., propositional logic, predicate logic, relational calculus, and finite state machines.
- Use and explain notations and techniques to define the semantics of a language precisely.
- 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.
- Use and explain tools supporting formal specification languages together with their capabilities and limitations.
- Design, construct, and analyze small formal specifications.
- Explain the advantages and disadvantages of formal specification languages and tools.
- 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)
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:
- 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)
NOT OFFERED 2024-2025
(Lec: 3, Lab: 0, Tut: 0)
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:
- Create distributed storage structures for complex datasets.
- Organize, integrate and process data from distributed storage systems.
- Create metadata for complex datasets.
- Articulate issues in data provenance and curation.
- 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)
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:
- 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)
(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:
- 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.
- Design and implement different types of ANNs using a variety of design techniques and learning algorithms for prediction, clustering, classification, storage, and function approximation
- Apply optimization techniques such as simulated annealing and genetic algorithms with ANN training algorithms
- 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.
- 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)
(Lec: 3, Lab: 0, Tut: 0)
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:
- 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)
(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:
- 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)
(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:
- Use real software engineering tools to maintain and enhance existing software systems.
- Apply component-based software engineering and table-driven programming to multi-phase software systems.
- Follow standard practices for software quality assurance and testing in a small-team project.
- 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)
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:
- Describe state-of-the-art algorithms in Bioinformatics with emphasis on the strengths and limitations of these techniques.
- Distill information provided by a biologist and discern appropriate and effective algorithmic solutions.
- Critically assess an algorithm for its correctness and efficiency, and argue about the algorithms correctness, performance bounds, and approximation ratio as appropriate.
- 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)
(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:
- Analyze the inner workings of medical image manipulation and registration methods for use in image-guided computer-assisted intervention systems.
- Design solutions in which modern information technology is used to solve applied problems in the medical field.
- Analyze the specifics and limitations of dataflow in a medical environment, especially in the area of medical image analysis.
- Design and develop basic medical image analysis and image registration methods for use in typical computer-assisted surgery and intervention applications.