Computer Engineering ENCM

Instruction offered by members of the Department of Electrical and Computer Engineering in the Faculty of Engineering.

Acting Department Head - A. Sesay

Associate Heads - S.A. Norman (Undergraduate), D. Westwick (Graduate)

Director of Undergraduate Program for Electrical Engineering - W. Rosehart

Director of Undergraduate Program for Computer Engineering - S.A. Norman

Director of Undergraduate Program for Software Engineering - M. Moussavi

Computer Engineering 007 Q(16 hours)

Computer Engineering Fourth-Year Block Course

This block course is intended to provide the necessary background material to prepare students for the fourth year Team Design Project. Topics covered include: personal responsibilities and interpersonal relationships involved in a team project; team projects from a current industrial perspective; tools to automate project management, e.g. PERT charts, critical path analysis, resource management, report generation and project tracking.

Prerequisites: Fourth year standing in the Department of Electrical and Computer Engineering.

NOT INCLUDED IN GPA

(Return to Top)

Senior Courses

Computer Engineering 339 H(3-1T-1.5)

Programming Fundamentals

Pointers and references, memory models and memory management. Manipulation of text files and binary files. Abstract data types (ADTs): implementation of ADTs as classes. Introduction to recursion.

Prerequisites: Engineering 233.

(Return to Top)

Computer Engineering 369 H(3-1T-1.5)

Computer Organization

Organization of a simple stored-program computer: CPU, busses and memory. Instruction sets, machine code, and assembly language. Conventions for assembly language generated by compilers. Floating-point number representation. Hardware organization of simple processors. Address translation and virtual memory. Very introductory examples of input/output devices, interrupt handling and multi-tasking systems.

Prerequisites: Computer Engineering 339 and Electrical Engineering 353.

(Return to Top)

Computer Engineering 415 H(3-1T-3/2)

Assembly Language Programming and Interfacing

Review of computer architecture; comparison of RISC and CISC microprocessors, microcontrollers and their instruction sets; interfacing using common input/output devices, debugging and other software engineering practices, strategies for interrupt handling and bus arbitration; Interfacing using a high level language; software and hardware optimizations to achieve real time operations; number representations; real time operating systems concepts; DSP co-processors and microcontrollers.

Prerequisites: Computer Engineering 369.

(Return to Top)

Computer Engineering 417 H(3-1T-3/2)

Computer Interfacing and Embedded Systems

Review of computer organization. Overview of input/output devices. Modes of interaction between processors and input/output devices. Interrupt handling. Introduction to microcontrollers and embedded systems design. Connections to multitasking applications and operating systems.

Prerequisites: Computer Engineering 369.

(Return to Top)

Computer Engineering 467 H(3-1T-3/2)

Digital Electronics for Computer Engineers

MOS transistor fundamentals (D.C. characteristics, large signal model, transient behaviour). Transistor level implementation of standard MOS logic gates. Other MOS logic blocks. MOS memory (static and dynamic). Interfacing various logic families. Introduction to integrated circuit design.

Prerequisites: Electrical Engineering 343 and 353.

(Return to Top)

Computer Engineering 491 H(3-2/2)

Real-Time Systems Design

Requirements for real-time systems. Design of embedded systems. Development of applications to run on real-time operating systems.

Prerequisites: Computer Science 457 and one of Computer Engineering 415 or 417. Prerequisites for Computer Science students: Computer Science 455 and 457.

(Return to Top)

Computer Engineering 493 H(3-1T-1.5)

Software Development for Computer Engineers

Introduction to tools, components and processes used in analysis, design, development and testing of software applications. Features of object-oriented languages. Introduction to object-oriented design.

Prerequisites: Computer Engineering 339.

(Return to Top)

Computer Engineering 501 H(3-1T-3/2)

Principles of Computer Architecture

Input/output, processors, intra-system communication, busses, caches. Addressing and memory hierarchies. Microprogramming, parallelism, and pipelining. Classification and taxonomy of computer architectures. Reduced instruction set computers, pipelining, vector processing, dataflow computers, architecture description languages, firmware engineering.

Prerequisites: Computer Engineering 369 and one of 415 or 417.

(Return to Top)

Computer Engineering 503 H(3-2)

Digital Video Processing

Introduction to the fundamentals of digital video representation, filtering and compression. Topics include: popular algorithms for 2-D and 3-D motion estimation, object tracking, frame rate conversion, deinterlacing, image enhancement, emerging international standards for image and video compression, applications as digital TV, web-based multimedia, videoconferencing, videophone and mobile image communications

Prerequisites: Electrical Engineering 327 and one of Electrical Engineering 409, Computer Engineering 493 or Software Engineering 411.

Note: Credit for both Computer Engineering 503 and any of Computer Engineering 519.33, Electrical Engineering 519.33 or Software Engineering for Engineers 519.33 will not be allowed.

(Return to Top)

Computer Engineering 505 H(3-2)

Parallel Computer Architectures

An examination of Design and Performance trade-offs in modern parallel computer architectures. Includes an introduction to the basic concepts of parallel computing including message passing and shared memory programming models. An examination of a number of parallel architectures, including pipeline architectures, shared memory multiprocessor systems including both bus based and CC NUMA distributed memory systems, message passing systems, focusing on interconnect issues will also be examined. Also covers cache architectures and strategies to ensure cache coherency in shared memory systems.

Prerequisites: Computer Engineering 369 and one of Computer Engineering 493 or Software Engineering 443.

Note: Credit for both Computer Engineering 505 and either Computer Engineering 519.27 or Software Engineering for Engineers 519.27 will not be allowed.

(Return to Top)

Computer Engineering 515 H(3-1T-3/2)

Digital Signal Processors

Review of microprocessor fundamentals. Comparison of basic system architectures for RISC, CISC and DSP processors, recent architectural innovations. Processor characteristics needed to match the requirements for typical DSP applications. Hardware and software optimization techniques including multiple busses, register windows, super-scalar and other highly parallel instruction sets, critical timing paths, optimizing compilers and multi-processor operation. Fundamental comparison of custom and current commercial single chip DSP processor architectures. Elements of Hardware-Software co-design and development processes. Practical applications and laboratories.

Prerequisites: Computer Engineering 415 or 417.

(Return to Top)

Computer Engineering 519 H(3-2)

Special Topics in Computer Engineering

Current topics in computer engineering.

Prerequisites: Consent of the Department.

Note: Consult Department for announcement of topics.

MAY BE REPEATED FOR CREDIT

(Return to Top)

Computer Engineering 583 H(2-4)

Fourth Year Computer Engineering Team Design Project, Part A

Introduction to the theory, experience and practice of project management. Theory includes generally accepted project management principles, the structure of both project and team, together with ancillary topics that commonly affect project outcome. The experience is gained from a series of guest lectures by industrial practitioners with engineering background. The practice is obtained through the performance of a "customer suggested" team project through the stages of project requirement and specification analysis, high level and detailed low level designs. The project is executed, and progress measured against a plan developed by the team participants.

Prerequisites: Computer Engineering 007.

(Return to Top)

Computer Engineering 589 H(2-4)

Fourth Year Computer Engineering Team Design Project, Part B

Continues upon the foundations of theory, experience and practice of project management established in Part A. The detailed low-level project design developed by the team in Part A will be implemented, unit tested, integrated and system tested before undergoing customer trials. The project is executed and progress is measured against a plan developed by the participants.

Prerequisites: Computer Engineering 583.

Note: Computer Engineering 007, 583 and 589 are a required three-course sequence that shall be completed in the same academic year.

(Return to Top)

Computer Engineering 591 H(2-4)

Individual Computer Engineering Project, Part II

This individual project is intended for students who have completed a suitable Computer Engineering 599 Individual Project and wish to continue the assigned research project by completing a more extensive investigation. A comprehensive written report is required which is defended and presented orally in a department seminar.

Prerequisites: Computer Engineering 599 and formal approval from the project supervisor and course coordinator(s).

(Return to Top)

Computer Engineering 598 F(2-4)

Individual Computer Engineering Research Project

The project involves individual work on an assigned Computer Engineering research topic under the supervision of a Departmental faculty member. Submission and defense of a mid-year written report is required. A final comprehensive written report is required which is defended and presented orally in a departmental seminar format.

Prerequisites: Fourth year standing and formal approval from the project supervisor and course coordinator(s).

Note: Credit for both Computer Engineering 598 and either 591 or 599 will not be allowed.

(Return to Top)

Computer Engineering 599 H(2-4)

Individual Computer Engineering Project

This project involves individual work on an assigned Computer Engineering topic under the supervision of a faculty member. The topic would normally involve a literature review, theoretical and experimental or computer work. Submission and defence of a written formal report is required.

Prerequisites: Formal approvals from the project supervisor and course coordinator(s).

(Return to Top)