You are now in the main content area

Computer Engineering

  • COE 318 - Software Systems
    Course DescriptionThe course introduces the software development cycle including requirements analysis and specifications, implementation, and testing, inspection and debugging techniques. An object-oriented programming language is used. Decomposition in to classes and modules is examined. The integration of independent modules is explored.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
  • COE 328 - Digital Systems
    Course DescriptionThis course covers the basics digital logic circuits and emphasizes on good understanding of basic concepts in modern digital system design. The course introduces computer aided design (CAD) tools including the use of hardware description language (HDL) for design entry. It also discusses the use of the latest available implementation technologies including CPLDs and FPGAs for mapping the design to modern technology. This course covers basic logic circuits, Boolean algebra, and implementation technology (from transistor to CPLDs and FPGAs). It also introduces logic functions optimization and implementation, number representation and arithmetic circuits, combinational circuits, synchronous and asynchronous sequential circuits as well as introduction to control unit data path and CPU operations. The Laboratory work requires the uses of CAD tools to design and simulate basic digital circuits. Implementation and testing of simple digital systems in LSI and CPLD will also be considered. (Formerly ELE 328.)
    Weekly Contact:Lecture 4 hrs. Lab 3 hrs.
    GPA Weight:1.00
    Billing Units:2
    Count:1.00
    Prerequisites:CPS 125, and ELE 202 and MTH 240
    Antirequisites:BME 328
  • COE 428 - Engineering Algorithms and Data Structures
    Course DescriptionThe main topics covered in this course include basic data structures (arrays, pointers), abstract data structures (trees, lists, heaps), searching, sorting, hashing, recursive algorithms, parsing, space-time complexity, NP-complete problems, software engineering and project management, object-oriented data structures. Case studies and lab exercises will be implemented using a high level programming language. (Formerly ELE 428.)
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 318
    Corequisites:MTH 314
  • COE 501 - Electromagnetism: Theory and Effects
    Course DescriptionCoulomb's law and electric field intensity. Gauss's law and electric flux density, the electric potential and potential gradient, electric fields in material space, capacitance, magnetic field intensity, Ampere's circuital law and magnetic flux density, Magnetic forces, Faraday's Law, Self and mutual inductance, time-varying fields, Maxwell's equations, electromagnetic effects on circuits, grounding, shielding and electrical termination.
    Weekly Contact:Lecture 3 hrs. Tutorial 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:MTH 312
    Antirequisites:ELE 401
  • COE 528 - Object Oriented Eng Analysis and Design
    Course DescriptionThis course deals with the analysis and design of complex engineering systems. In particular, students will be asked to create requirement specifications prior to the design and implementation of such engineering systems. Case studies from software development projects will be used to illustrate the design process. Development of expertise in analyzing, designing, implementing, and testing industrial-quality, reusable software systems. Project work include practice with an object-oriented programming language. (Formerly COE 618)
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 318 and CEN 199
    Corequisites:COE 428
  • COE 538 - Microprocessor Systems
    Course DescriptionThis course introduces students to small microprocessor-based systems, with an emphasis on embedded system hardware and software design. Topics will include microprocessor architecture and structure, with an overview of 8- 16- and 32-bit systems, assembly language programming and the use of high-level languages. Basic input/output including parallel communications with and without handshaking and serial protocols. Hardware and software timing. Using interrupts and exceptions. Overview of single-chip microprocessors and controllers with an emphasis on the Freescale HCS12. The internal structure and design of peripheral devices. Memory system design and analysis. The use and structure of development tools such as (cross) assemblers or compilers, monitor programs, simulators, emulators, etc.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 328 and ELE 404 and MTH 314 and CEN 199
  • COE 608 - Computer Organization and Architecture
    Course DescriptionThe main topics of the course include basic architecture of modern computers, interaction between computer hardware and software at various levels, and performance evaluation and metrics. Instruction set design, computer arithmetic is also discussed. Data path and control unit design for RISC Processors are covered in detail. The laboratory work includes the design and implementation of a 16-bit RISC CPU using an FPGA development system and VHDL.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 328 and COE 538 and CEN 199
  • COE 628 - Operating Systems
    Course DescriptionTopics include: Operating systems basic concepts. Hardware and software features required for operating systems. Process management; scheduling, inter-process communication and synchronization, process starvation, deadlocks. Memory management, virtual memory, and file systems. The major lab project will involve developing operating system modules. (Formerly COE 518).
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 318 and COE 428 and CEN 199
    Custom Requisites:This course previously coded as COE 518.
  • COE 691 - Software Requirements Analysis and SPEC
    Course DescriptionIntroduces students to the requirement definition phase of the software development cycle with an emphasis on the design and implementation of system-level software, large architectural models for System-On-Chip systems, electronic-Design-Automation tool flows, and embedded systems. Methodologies for the analysis of system specification, the creation of appropriate descriptions of desired system behaviour and qualities along with relevant constraints and assumptions will be discussed.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:CPS 510, COE 428, COE 528
  • COE 692 - Software Design and Architecture
    Course DescriptionIntroduces students to issues, techniques, strategies, representations, and patterns used to implement software systems with an emphasis on the design and implementation of system-level software, large architectural models for System-On-Chip systems, Electronic-Design-Automation tool flows, and embedded systems.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:CPS 510, COE 428, COE 528
  • COE 70A/B - Computer Engineering Capstone Design
    Course Description

    This two-term course provides a training platform for systematic open-ended design process and project management. Student groups apply their acquired knowledge and engineering skills to develop and build a design project from concept to working prototype. The lecture component provides advice and information on the design process, project management, reliability, system components, documentation, safety, and program specific aspects. In the laboratory component, once a project topic is assigned, student groups plan, design, source components, build, test/debug, and analyze, under the supervision of a faculty lab coordinator and submit a final design project report.

    Weekly Contact:Lecture 1 hr. Lab 1 hr./5hrs.
    GPA Weight:2.00
    Billing Units:1/1
    Count:2.00
  • COE 718 - Embedded Systems Design
    Course DescriptionThis course will cover the basics of embedded system organization, system on programmable-chip technologies and real-time systems. It provides the advance knowledge required for embedded computer design and development as well as real-time operating systems. Students are introduced to software development concepts applicable to real-time and embedded systems. Particularly ARM Cortex M3 will be studied as a representative embedded processor and embedded software development is carried out for ARM Cortex CPUs. The students will be able to grasp the main principles of embedded system design and understand the concept of hardware-software codesign, system on programmable chip (SoPC), real-time operating systems and scheduling techniques. Embedded system co-specification and partitioning is also introduced in the course. SystemC or other languages (e.g. UML, C, etc.) can be employed to present a unified view of the embedded systems. SystemC is introduced as a representative Co-specification language. Embedded hardware-software design and development tools (such as Altera Quartus II and SOPC builder) will be introduced.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 538
  • COE 758 - Digital Systems Engineering
    Course DescriptionThe emphasis of this course is an understanding of the system architecture around the processor. Course covers all types of modern semiconductor memory, cache and virtual memory organization, hard disk drives and video-output subsystem. Course gives classification of buses and description of concepts of bus organization, bus protocols, arbitration mechanisms and the concept of Direct Memory Access (DMA). The laboratory projects include design of Cache Controller and VGA-signal generator using VHDL in Xilinx CAD environment.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:(COE 538 or ELE 538) and COE 608
  • COE 768 - Computer Networks
    Course DescriptionThis is an introductory course in computer networks. In particular, it concentrates on the Internet technology. It first introduces the OSI and TCP/IP network architecture models. It then studies the implementation principles and design issues at each layer of these models. Lecture topics include: OSI and TCP/IP models, data transmission basics, data-link protocols, local area networks, wide-area networks, Internet structures, TCP/IP protocol suite, and application Layer protocols. Laboratory work focuses on the implementation of stop-and-wait protocol based on the BSD socket. In addition, students will gain practical experience by building and studying a physical network using network devices such as switches and routers.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:(COE 538 or ELE 538) and ELE 635
  • COE 817 - Network Security
    Course DescriptionThis course provides an introduction to the theory and application of security in computer network environments. Students will develop the skills necessary to formulate and address the security needs of wired and wireless network environments. The course will begin by an overview of network security and cryptography. Latter topics will cover transport level security, IP security, e-mail security, WiFi security, malicious code, firewall, and intrusion detection systems.
    Weekly Contact:Lecture 3 hrs. Lab 1 hr.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 768
  • COE 818 - Advanced Computer Architecture
    Course DescriptionThe main topics include: instruction set architecture for advanced processor, advanced pipelining, including branch predication, instruction level parallelism. It also covers advanced architecture including superscalar VLIW, speculative, vector processors, multithreading and multi-processors. It discusses the performance limitations and scalability issues and introduces real-world examples including MMX technology, and Pentium architectures. The laboratory work includes performance evaluation of advanced architectures.
    Weekly Contact:Lecture 3 hrs. Lab 1 hr.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 758
  • COE 838 - Systems-on-Chip Design
    Course DescriptionThis course will cover the basics of system-on-chip (SoC) design, hardware-software co- specification, co-synthesis and network-on-chip (NoC) systems. It provides the advance knowledge required for system-on-chip design, multi-core architectures and embedded systems on a chip. Students will also be introduced to the main principles of SoC modeling and design using SystemC. Various soft processor cores such as Nios-II and other IPs will be explored. Interconnection structures such as AMBA, Avalon and IBM Core-connect for SoC design will be covered in detail. Various SoC development tools will be utilized in the labs and projects.
    Weekly Contact:Lecture 3 hrs. Lab 1 hr.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 718 or ELE 734
  • COE 848 - Fundamentals of Data Engineering
    Course DescriptionData engineering is core to the effective development of scalable software applications. Rich data management schemes are needed to handle the sizeable Big Data that is available for processing. This course will cover related topics such as entity-relation diagrams, relational databases, data definition and manipulation languages, structured data representations formats, development of novel vocabularies and semi-structured data and also novel concepts in NoSQL databases.
    Weekly Contact:Lecture 3 hrs. Lab 1 hr.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 528
  • COE 865 - Advanced Computer Networks
    Course DescriptionThis is an advanced level undergraduate course in computer networking. The course is designed to include materials relevant to the industry, for example IP routing and traffic engineering. The course deals with the principles, architectures, algorithms, and protocols related to the Internet, with emphasis on routing, transport protocol design, flow control and congestion control, quality of service, traffic engineering and MPLS. It also introduces network virtualization and software-defined networking (SDN). (Formerly ELE 865.)
    Weekly Contact:Lecture 3 hrs. Lab 1 hr.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 768
  • COE 891 - Software Testing and Quality Assurance
    Course DescriptionIntroduces students to various techniques to verify and validate software and software-hardware co-design systems with an emphasis on the design and implementation of system-level software, System-On-Chip systems, Electronic-Design-Automation tool flows, and embedded systems.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 692
  • COE 892 - Distributed and Cloud Computing
    Course DescriptionThis course will introduce students to concepts in the design and implementation of large-scale distributed/cloud computing systems. The topics will range from cloud technology to cluster and multi-core systems. The course will specifically cover the topics of cloud infrastructures, virtualization, software defined networks and storage, distributed storage systems, and programming models.
    Weekly Contact:Lecture 3 hrs. Lab 2 hrs.
    GPA Weight:1.00
    Billing Units:1
    Count:1.00
    Prerequisites:COE 768