Courses
Computer Engineering Courses
COE201 Computer Proficiency
[0–2, 1 cr.]
This course covers word processing, spreadsheet, presentation software, internet, e-mail, database, and web design.
COE211 Computer Programming
[3–2, 4 cr.]
This course covers a high-level programming language syntax, structured programming, basic constructs, arrays, object programming, case studies, and projects tailored towards solving engineering and mathematically-oriented problems.
COE212 Engineering Programming
[3–0, 3 cr.]
This course covers a high-level programming language syntax, structured programming, basic constructs, arrays, object programming, case studies, and projects tailored towards solving engineering and mathematically-oriented problems.
COE212H Engineering Programming
[3–0, 3 cr.]
This course covers a high-level programming language syntax, structured programming, basic constructs, arrays, object programming, case studies, and projects tailored towards solving engineering and mathematically-oriented problems.
COE312 Data Structures
[3–0, 3 cr.]
This course covers the programming principles, stacks and recursion, queues, lists, searching, and sorting algorithms, binary trees, and the introduction to object-oriented programming concepts.
Prerequisite: COE211 Computer Programming.
COE313 Data Structures Lab
[0–2, 1 cr.]
This Lab provides hands-on experience in designing, implementing, and using the most-commonly used data structures including arrays, stacks, queues, linked lists, trees, hash tables, and graphs. Other topics may include sorting algorithms, polymorphism, and recursion.
Prerequisite: COE 312 Data Structures.
COE321 Logic Design
[3–0, 3 cr.]
This course provides an introduction to digital logic circuits and covers binary number representations, combinational logic design, Boolean algebra, arithmetic circuits, regular logic, programmable logic devices, flip flops, registers, counters, sequential state machines, and asynchronous and synchronous logic.
Prerequisites: COE201 Computer Proficiency, COE211 Computer Programming, MTH207 Discrete Structures I.
COE322 Logic Design Lab
[0–3, 1 cr.]
This laboratory course provides hands-on experience implementing digital logic design systems using modern computer-aided design tools, discrete components, breadboards, and digital probes.
Concurrent with COE321 Logic Design.
COE323 Microprocessors
[3–0, 3 cr.]
This course covers the internals of the microprocessor and assembly language, storing, manipulating, moving data, basics of control flow, interfacing to other devices, basics of writing good assembly code using the stacks and position independent codes.
Prerequisite: COE321 Logic Design.
COE324 Microprocessors Lab
[0–3, 1 cr.]
This is a lab course with experiments in microprocessors.
Concurrent with COE323 Microprocessors.
COE414 Operating Systems
[3–0, 3 cr.]
This course provides an overview of operating systems and provide the basic structure and architecture of some operating systems in the market. This course covers the process creation, management, synchronization, communications, and scheduling. Memory management and protection.
Prerequisites: COE312 Data Structures, COE323 Microprocessors.
COE415 Computer Programming II
[3–0, 3 cr.]
This course covers advanced object-oriented programming techniques, including composition, inheritance, and polymorphism. Students will learn to design and implement efficient programs using design patterns. The course also covers algorithmic analysis, testing, exception handling, recursion, and advanced sorting algorithms. By the end of the course, students will have gained practical skills in algorithm design and program development.
Pre-requisites: COE211 Computer Programming
COE415B Computer Programming II Lab
[0–2, 1 cr.]
This Lab provides hands-on experience in designing, implementing and developing advanced programs using C++.Pre-requisites: COE415 Computer Programming II
COE416 Software Engineering
[3–0, 3 cr.]
This course covers the analysis, development, design and documentation of software.
Prerequisites: COE418 Database Systems, COE312 Data Structures and Third year standing required.
COE418 Database Systems
[3–0, 3 cr.]
This course covers the data modeling, relational database, SQL, query languages, object oriented databases, and client-server databases.
Prerequisite: COE211 Computer Programming.
COE423 Computer Architecture
[3–0, 3 cr.]
This course introduces computer components and systems. Topics include evolution of computer systems, bus interconnections, I/O mechanisms, memory management and hierarchy, instruction set design, and basic pipelined techniques.
Prerequisite: COE323 Microprocessors.
COE424 Digital Systems
[3–0, 3 cr.]
This course is an introduction to digital systems design and covers timing concepts, area-delay tradeoffs, pipelining, and synthesis. Register transfer notation and VHDL are introduced to model, simulate, and verify designs. Topics include field-programmable gate arrays, technology mapping, layout synthesis, and routing.
Prerequisite: COE321 Logic Design & 3rd year standing.
COE425 Digital Systems Lab
[0–3, 1 cr.]
This laboratory course provides hands-on experience implementing complex digital systems using modern computer-aided design tools, FPGA-based boards, and various I/O devices.
Concurrent with COE424 Digital Systems.
COE431 Computer Networks
[3–0, 3 cr.]
This course covers the topologies, installation and configuration, testing, modeling and simulation of networks. In addition to: protocols, standards, TCP/IP, and socket programming.
Prerequisite: Fourth year standing required.
COE493 Professionalism in Engineering
[3–0, 3 cr.]
Overview of the nature and scope of engineering profession. Working on a multidisciplinary team environment; professional and ethical responsibility; the impact of engineering solutions in a global and societal context; contemporary issues; and life-long learning.
Third year standing required.
COE498 Professional Experience
[0–6, 6 cr.]
This course entails professional experience through training in the execution of real-life engineering projects.
Prerequisite: Fifth year standing, and the consent of the instructor.
COE521 Embedded Systems
[3–0, 3 cr.]
This course provides an introduction to the design of embedded systems including both their hardware and software. Topics ranging from simple circuit design to computer architecture will be discussed. Different types of processors will be presented along with interfacing to memories, I/O devices, and other processors. The 68HC12 or PIC microcontrollers will be used as an example processor for assignments and the course project.
Prerequisite: COE323 Microprocessors.
COE522 High Performance Computer Architecture
[3–0, 3 cr.]
This course covers topics in advanced pipelined techniques and scheduling, instruction level parallelism, and dynamic scheduling. Advanced processor design techniques are introduced such as superscalar, super-pipelined, VLIW, multiprocessing, multithreading, and supercomputing architectures. In addition, relationships between high-performance computing and interconnection networks, embedded systems, advanced storage systems, and cloud computing examples are established.
Prerequisite: COE423 Computer Architecture.
COE526 VLSI Design Automation (Last Offered: Fall 2012)
[3–0, 3 cr.]
This course covers the algorithms and methodologies for the synthesis, analysis, and verification of digital systems, silicon compilation, high-level synthesis, logic synthesis, and layout synthesis, hardware description languages and their use in the synthesis process, fault simulation and coverage analysis, and the extensive use of electronic design automation Tools.
Prerequisite: COE321 Logic Design.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE527 VLSI Design (Last Offered: Spring 2019)
[3–0, 3 cr.]
This course covers the VLSI design, circuits’ layout, timing, delay, power estimation, use of layout editors and circuit simulation tools, synthesis, and an introduction to electronic design automation.
Prerequisite: COE424 Digital Systems.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE529 Testing for Digital Integrated Circuits (previously offered as COE599F)
[3–0, 3 cr.]
[3-0, 3 cr.]
This course covers the essentials of electronic testing for digital ULSI circuits, design methods, and design for testability. Topics include introduction to the testing process, fault modeling and detection, logic and fault simulation, testability measures, test generation for combinational circuits, test generation for sequential circuits, design for testability, built-in self-testing, ATPG-based logic synthesis, Boundary Scan, and system test and core-based design.
Prerequisites: COE321 Logic Design and 3rd-year standing.
COE535 Optical Networks (Last Offered: Fall 2011)
[3–0, 3 cr.]
This course covers the fundamentals of optical networking. In particular, it touches on the following topics: the building blocks of optical wavelength division multiplexed networks, wavelength division multiplexing (WDM) and its enabling technologies, WDM-based access and metro optical network architectures, wavelength-routed optical wavelength division multiplexed networks used for wide area coverage, optical burst switched networks, and optical packet switched networks.
Prerequisite: COE 312 Data Structures.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE543 Intelligent Data Processing and Applications
[3–0, 3 cr.]
This course provides an overview on state of the art algorithms and techniques allowing semi-structured and semantic-aware data processing, forming the main building blocks of the Semantic (Intelligent) Web vision. It covers semantic data descriptions and knowledge bases (taxonomies and ontologies), XML-based data representation and manipulation technologies (e.g., SVG, MPEG-7, RDF, OWL, etc.), structure and semantic similarity, Web information retrieval and related applications.
Prerequisite: COE 312 Data Structures and COE 418 Database Systems.
COE544 Intelligent Engineering Algorithms
[3–0, 3 cr.]
This course allows students to acquire basic knowledge of algorithms and methods of Artificial Intelligence, geared toward developing intelligent engineering solutions. The course covers concepts ranging over intelligent agents, fuzzy logic, neural networks, and genetic algorithms. A series of exercises, a set of simulations/ projects on computers, and a set of academic presentations (prepared in part by students) will allow students to better cover course materials, while concurrently developing applied projects. By the end of the course, students should be able to create software agents with intelligent features (intelligently perceiving surrounding environment, noise resistance, approximate (fuzzy) data processing, and simulating human behavior).
Prerequisite: COE 312 Data Structures.
COE545 Information Security
[3–0, 3 cr.]
This course provides an introduction to the topic of information security in the context of network communication. It is intended for students who have some understanding of networks, but not necessarily any background in security. The goal of the course is to provide students with a foundation that will help them to identify, analyze and make appropriate security decisions during the design and deployment of information and network systems.
Prerequisite: Fourth year standing required.
COE546 Machine Learning
[3–0, 3 cr.]
This course provides a comprehensive introduction to the field of machine learning, covering fundamental concepts, techniques, and applications. Students will gain a foundation in both theoretical principles and hands-on coding. The course is organized to progressively guide students through various aspects of machine learning, from the basics to more advanced topics in machine learning.
Prerequisites GNE331 Probability and Statistics, and fourth-year standing.
COE547 Deep Learning
[3–0, 3 cr.]
This course provides a comprehensive introduction to the field of deep learning, covering fundamental concepts, techniques, and applications. Students will gain a foundation in both theoretical principles and hands-on coding. The course is organized to progressively guide students through various aspects of deep learning, from the basics to more advanced topics.
Prerequisites GNE331 Probability and Statistics, and fourth-year standing.
COE548 Large Language Models
[3–0, 3 cr.]
Foundations of natural language processing (NLP); deep learning and neural networks basics; transformer models and attention mechanisms; advancements in LLMs; application-specific tuning; practical exercises with off-the-shelf and open-source LLMs; addressing scalability and ethical considerations in AI. This course combines theoretical knowledge with practical applications, providing a comprehensive overview of current LLM technologies and their impact.
Prerequisites COE211 Computer Programming and fourth-year standing.
COE554 Computer Vision and Deep Learning (last offered: Fall 2022)
[3–0, 3 cr.]
This course is concerned with understanding the fundamentals of computer vision and deep learning with applications in visual classification and processing.
Prerequisite: COE 211 Computer Programming, GNE 331 Probability and Statistics, ELE 430 Signals and Systems.
COE555 Queuing Theory (Last Offered: Spring 2020)
[3–0, 3 cr.]
This course introduces two modeling techniques, namely simulation and queuing modeling techniques. The following topics are discussed in this regard: single queue Markovian systems, semi-Markovian queuing systems, open queueing networks, closed queueing networks, pseudo-random number generation, estimation techniques for analyzing endogenously created data, and validation of a simulation design.
Prerequisite: GNE 331 Probability & Statistics.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE593 Computer Engineering Applications
[3–0, 3 cr.]
This course allows COE graduates to acquire the technical skills that are required to match a specific industry-related need. In particular, it exposes students to the techniques, which can improve their chances of gaining employment in jobs aligned with the considered need. This exposure is reinforced by an extensive hands-on experience that is brought into classroom through small-scale projects pertaining to problems inspired from the identified need.
Prerequisite: Fourth Year standing.
COE594 Undergraduate Research Project (Last Offered: Spring 2023)
[3–0, 3 cr.]
Engagement in a research project under the direction of a faculty member with emphasis on problem identification, formulation and solution. Requires a formal research report in the form of a paper.
This course is considered as a technical elective (ECE elective).
COE594H Undergraduate Research Project (Last Offered: Spring 2023)
[3–0, 3 cr.]
Engagement in a research project under the direction of a faculty member with emphasis on problem identification, formulation and solution. Requires a formal research report in the form of a paper.
This course is considered as a technical elective (ECE elective).
COE595 Capstone Design Project I
[3–0, 3 cr.]
The course is devoted to the solution of open-ended engineering design projects with functional specifications and realistic constraints. This project provides a study of multiple solutions for a major design experience while accounting for multiple realistic constraints and relevant standards. The study is concluded by a written report and an oral presentation providing a course of action for the fulfilment of the project. This course is the first part of a two course sequence (COE595 and COE596).
Restrictions: Fifth year standing
COE596 Capstone Design Project II
[3–0, 3 cr.]
The course is devoted to the solution of open-ended engineering design projects with functional specifications and realistic constraints. This project provides a culminating major design experience that is concluded by a written report and an oral presentation. This course is the final part of a two course sequence (COE595 and COE596).
Prerequisite: COE595 Capstone Design Project I
COE598H Research Methods
[3–0, 3 cr.]
Introduction to methods for improving and developing research skills; including: principles of scientific research, ethics, writing skills, methods for compiling scientific literature, identification of research questions and specific hypotheses, presentation of research results, writing research papers, proposal preparation, preparation of grant proposals, thesis and dissertation.
COE599 Topics in Computer Engineering
[3–0, 3 cr.]
This course covers the treatment of new developments in various areas of computer engineering.
Prerequisite: Fifth-year standing.
COE599E Topics: Programming for Data Science
[3–0, 3 cr.]
This course introduces the essential elements of data science: importing, cleaning, manipulating, and visualizing data. Students also work on different datasets to learn the statistical and machine learning techniques needed to perform hypothesis testing and build predictive models. Students will gain experience using the Python programming language and Jupyter notebooks. This is a computing course focused on programming and algorithms.
Prerequisites: COE211 or COE212
COE723 High Performance Computer Architecture (Offered with COE522)
[3–0, 3 cr.]
This course covers topics in advanced pipelined techniques and scheduling, instruction level parallelism, and dynamic scheduling. Advanced processor design techniques are introduced such as superscalar, super-pipelined, VLIW, multiprocessing, multithreading, and supercomputing architectures. In addition, relationships between high-performance computing and interconnection networks, embedded systems, advanced storage systems, and cloud computing examples are established.
COE725 VLSI Design (Offered with COE527)
[3–0, 3 cr.]
This course covers the VLSI design, circuits’ layout, timing, delay, power estimation, use of layout editors and circuit simulation tools, synthesis, and an introduction to electronic design automation.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE726 VLSI Design Automation (Last Offered: Fall 2012)
[3–0, 3 cr.]
This course covers the algorithms and methodologies for the synthesis, analysis, and verification of digital systems, silicon compilation, high-level synthesis, logic synthesis, and layout synthesis, hardware description languages and their use in the synthesis process, fault simulation and coverage analysis, and the extensive use of electronic design automation Tools.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE728 ULSI Testing (Last Offered: Fall 2013)
[3–0, 3 cr.]
This course covers the problems of testing of Ultra Large Scale Integrated Circuits (ULSI), the design of circuits for testability, the design of built-in self-testing circuits, and the use of the IEEE Boundary Scan Standards. Topics include introduction to the testing process, fault modeling and detection, logic and fault simulation, testability measures, test generation for combinational circuits, test generation for sequential circuits, design for testability, built-in self-test, delay testing, current testing, ATPG-based logic synthesis, system test, and core-based design, and testing a system-on-a-chip (SOC).
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE729 Testing for Digital Integrated Circuits (Offered with COE529)
[3–0, 3 cr.]
This course covers the essentials of electronic testing for digital ULSI circuits, design methods, and design for testability. Topics include introduction to the testing process, fault modeling and detection, logic and fault simulation, testability measures, test generation for combinational circuits, test generation for sequential circuits, design for testability, built-in self-testing, ATPG-based logic synthesis, Boundary Scan, and system test and core-based design.
Prerequisites: COE321 Logic Design and 3rd-year standing.
COE732 Networks Security (Last Offered: 2010)
[3–0, 3 cr.]
This course is an introduction to network security, including developing an understanding of security engineering, cryptography, mechanisms to protect private communication over public network, and techniques to protect networked computer systems. This course considers the technical, operational, and managerial issues of computer systems, and network security in an operational environment. The course will address the threats to computer security, including schemes for breaking security, and techniques for detecting and preventing security violations. Emphasis will be on instituting safeguards, examining the different types of security systems, and applying the appropriate level of security for the perceived risk.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE733 Optical Networks (Offered with COE535)
[3–0, 3 cr.]
This course covers the fundamentals of optical networking. In particular, it touches on the following topics: the building blocks of optical wavelength division multiplexed networks, wavelength division multiplexing (WDM) and its enabling technologies, WDM-based access and metro optical network architectures, wavelength-routed optical wavelength division multiplexed networks used for wide area coverage, optical burst switched networks, and optical packet switched networks.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE741 Artificial Intelligence
[3–0, 3 cr.]
This course is an introduction to artificial intelligence concepts, heuristic search, clause form logic, knowledge representation, reasoning and inference, an overview of the computer vision, planning, natural language, Lisp, and Prolog. Subjects covered may include unification and resolution in first order logic, graph search algorithms, planning, game playing, heuristic classifiers, knowledge engineering, and uncertainty management.
Prerequisite: COE312 Data Structures.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE743 Intelligent Data Processing and Applications (Offered with COE543)
[3–0, 3 cr.]
This course provides an overview on state of the art algorithms and techniques allowing semi-structured and semantic-aware data processing, forming the main building blocks of the Semantic (Intelligent) Web vision. It covers semantic data descriptions and knowledge bases (taxonomies and ontologies), XML-based data representation and manipulation technologies (e.g., SVG, MPEG-7, RDF, OWL, etc.), structure and semantic similarity, Web information retrieval and related applications.
COE744 Intelligent Engineering Algorithms (Offered with COE544)
[3–0, 3 cr.]
This course allows students to acquire basic knowledge of algorithms and methods of Artificial Intelligence, geared toward developing intelligent engineering solutions. The course covers concepts ranging over intelligent agents, fuzzy logic, neural networks, and genetic algorithms. A series of exercises, a set of simulations/ projects on computers, and a set of academic presentations (prepared in part by students) will allow students to better cover course materials, while concurrently developing applied projects. By the end of the course, students should be able to create software agents with intelligent features (intelligently perceiving surrounding environment, noise resistance, approximate (fuzzy) data processing, and simulating human behavior).
COE745 Information Security (Offered with COE545)
[3–0, 3 cr.]
This course provides an introduction to the topic of information security in the context of network communication. It is intended for students who have some understanding of networks, but not necessarily any background in security. The goal of the course is to provide students with a foundation that will help them to identify, analyze and make appropriate security decisions during the design and deployment of information and network systems.
COE746 Machine Learning
[3–0, 3 cr.]
This course provides a comprehensive introduction to the field of machine learning, covering fundamental concepts, techniques, and applications. Students will gain a foundation in both theoretical principles and hands-on coding. The course is organized to progressively guide students through various aspects of machine learning, from the basics to more advanced topics in machine learning.
COE746 Machine Learning (Offered with COE546)
[3–0, 3 cr.]
This course provides a comprehensive introduction to the field of machine learning, covering fundamental concepts, techniques, and applications. Students will gain a foundation in both theoretical principles and hands-on coding. The course is organized to progressively guide students through various aspects of machine learning, from the basics to more advanced topics in machine learning.
Prerequisites GNE331 Probability and Statistics, and fourth-year standing.
COE747 Deep Learning (Offered with COE547)
[3–0, 3 cr.]
This course provides a comprehensive introduction to the field of deep learning, covering fundamental concepts, techniques, and applications. Students will gain a foundation in both theoretical principles and hands-on coding. The course is organized to progressively guide students through various aspects of deep learning, from the basics to more advanced topics.
Prerequisites GNE331 Probability and Statistics, and fourth-year standing.
COE748 Large Language Models (LLMs) (Offered with COE548)
[3–0, 3 cr.]
Foundations of natural language processing (NLP); deep learning and neural networks basics; transformer models and attention mechanisms; advancements in LLMs; application-specific tuning; practical exercises with off-the-shelf and open-source LLMs; addressing scalability and ethical considerations in AI. This course combines theoretical knowledge with practical applications, providing a comprehensive overview of current LLM technologies and their impact.
Prerequisites COE211 Computer Programming and fourth-year standing.
COE752 Design and Analysis of Algorithms (Last offered: Fall 2011)
[3–0, 3 cr.]
This course covers the time and space complexity of algorithms. It looks at the models of computation, the techniques for efficient algorithm design, and the effect of data structure choice on the efficiency of an algorithm, as well as the divide and conquer techniques, greedy methods, dynamic programming, amortized analysis, graph and network algorithms, NP-completeness, and selected advanced algorithms.
Prerequisite: The consent of the Instructor.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE753 Heuristic Optimization
[3–0, 3 cr.]
This course covers the basic heuristic optimization techniques in computing. This course describes a variety of heuristic search methods including serial simulated annealing, Tabu search, genetic algorithms, ant algorithms, derandomized evolution strategy, and random walk. Algorithms will be described in serial as well as in parallel fashion. Students can select application projects from a range of application areas. The advantages and disadvantages of heuristic search methods, for both serial and parallel computation, are discussed in comparison to other optimization algorithms.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE754 Deep Learning and Computer Vision (Offered with COE554)
[3–0, 3 cr.]
This course is concerned with understanding the fundamentals of computer vision and deep learning with applications in visual classification and processing.
COE755 Queuing Theory (Offered with COE555)
[3–0, 3 cr.]
This course introduces two modeling techniques, namely simulation and queueing modeling techniques. The following topics are discussed in this regard: single queue Markovian systems, semi-Markovian queueing systems, open queueing networks, closed queueing networks, pseudo-random number generation, estimation techniques for analyzing endogenously created data, and validation of a simulation design.
Prerequisite: Consent of instructor.
Note: This course has not been taught since Fall 2022 and will not be taught in the academic year 2024–2025.
COE774 Deep Learning and Computer Vision (Offered with COE554)
[3–0, 3 cr.]
This course is concerned with understanding the fundamentals of computer vision and deep learning with applications in visual classification and processing.
Prerequisite: COE 211 Computer Programming, GNE 331 Probability and Statistics, and ELE 430 Signals and Systems.
COE899 Thesis
[6–0, 6 cr.]
This is a Master’s thesis research course under the direction of a faculty member.