Undergraduate Courses | Computer Engineering
CPE
200
CPE
Description
Course Number:
0612200
Algorithmic problem solving in the context of a modern programming language Terminology-Arithmetic computations--Simple & formatted I/O-if structures, while loop, do loop, for loop, nesting, data files, arrays (1D & 2D), functions, strings and pointers, structures.
(3-2-3)
Prerequisites:
0410111
CPE
201
CPE
Description
Course Number:
0612201
is course covers topics including data and procedural abstraction, software design principles and use of Object-oriented to develop solutions to simple problems. Ethical issues involved in computer use, Basic object- oriented design techniques (encapsulation and information-hiding, separation of behavior and implementation, classes and subclasses, inheritance, polymorphism, class hierarchies), Iterators as abstraction mechanisms, Linked structures, Event-driven programming, API programming. The course includes weekly laboratory sessions and a significant programming project include the use of Object- oriented design concepts with detailed documentation.
(3-2-3)
Prerequisites:
0600200
CPE
203
CPE
Description
Course Number:
0612203
This course covers basic logic (propositional logic, predicate logic, limitations, applications in computing). Sets, relations, and functions. Proof techniques (formal proofs, direct, contraposition and contradiction, induction). Basics of counting (permutations and combinations, counting arguments, pigeonhole principle and generating functions). Graphs and trees (spanning trees, shortest path, Euler and Hamiltonian cycles, and traversal strategies). Recursion (definitions, developing and solving recursive equations). The focus of materials is on the applications side of computer engineering.
(3-0-3)
Prerequisites:
0410101,0410111
CPE
207
CPE
Description
Course Number:
0612207
This course introduces fundamental data structures (stacks; queues; linked lists; hash tables; trees; graphs), Basic algorithmic analysis (asymptotic analysis; identifying differences among best, average, and worst case, empirical measurements of performance; time and space tradeoffs in algorithms), Fundamental computing algorithms, sorting algorithms; hash tables and hashing, heaps, priority queues, binary search trees, balanced binary search trees, AVL trees; representations of graphs and graph traversals, Recursion. The course includes weekly laboratory sessions providing hands-on experience in designing and implementing application of data structures and algorithms to engineering.
(3-2-3)
Prerequisites:
0612201,0612203
CPE
262
CPE
Description
Course Number:
0612262
Logic gates and Boolean algebra. Design and analysis of combinational circuits. Logic function minimization. Modular design of combinational circuits. Number Systems. Arithmetic circuits. Programmable logic devices (PLDs). Memory elements: latches and flip-flops. Design and analysis of synchronous sequential circuits. Simulation and synthesis of digital circuits from HDL models.
(3-0-3)
Prerequisites:
0600200 or 0600221,0430102, 0430107
Corequisites:
0612264
CPE
264
CPE
Description
Course Number:
0612264
Hands-on design and implementation of digital logic circuits. Use of CAD tools for schematic capture and Verilog HDL based simulation and synthesis. Implementations of digital circuits using sophisticated logic devices such as CPLDs and FPGAs.
(0-3-1)
Corequisites:
0612262
CPE
300
CPE
Description
Course Number:
0612300
This course introduces models of computation and classes of techniques for designing efficient algorithms including recursion, divide-and-conquer, randomization, greedy algorithms, and dynamic programming. It covers fundamental computing algorithms: sorting, searching, and graph algorithms. The classes of P, NP, and NP-complete problems are covered.
(3-0-3)
Prerequisites:
0612207
CPE
303
CPE
Description
Course Number:
0612303
This course introduces the essential programming concepts and practice in web development: this course primarily covers the following topics, introduction to web programming, data models and ORM, and API and library usage. The course includes several projects assigned to students that together constitute a useful web application.
(3-0-3)
Prerequisites:
0612207
CPE
325
CPE
Description
Course Number:
0612325
This course introduces fundamental principles for designing and analyzing interactive systems. Topics include user-centered design, human cognitive and physical abilities, prototyping and evaluation techniques, and graphical design fundamentals. The course also reviews emerging areas of HCI research including mobile interaction, augmented-reality, multi-touch interaction, tangible interaction, and ubiquitous computing.
(3-0-3)
Prerequisites:
0612201
CPE
333
CPE
Description
Course Number:
0612333
Topics include history and overview of intelligent systems, exploration of relevant technologies. Fundamental challenges in intelligent systems, methodologies for intelligent system design, search techniques and constraint satisfaction. Knowledge representation and reasoning, and the study of agents.
(3-0-3)
Prerequisites:
0612300
CPE
336
CPE
Description
Course Number:
0612336
This course provides an introduction to machine learning with special focus on engineering applications. The course starts with a mathematical background required for machine learning and covers approaches for supervised learning (linear models, kernel methods, decision trees, natural networks), unsupervised learning (clustering, dimensionality reduction) and reinforcement learning as well as theoretical foundations of machine learning (learning theory, optimization).
(3-0-3)
Prerequisites:
0600304, 0612207
CPE
341
CPE
Description
Course Number:
0612341
Principles of database systems: History and motivation, DBMS functions, database architectures, use of a database query language. Data modeling: conceptual models, object-oriented model, and relational data model. Relational databases: conceptual schema and relational schema, and integrity constraint. Relational algebra and relational calculus. Functional dependencies and normal forms. Database query languages. Relational database design. The course stresses basic concepts and presents many examples from existing database systems. A database design and implementation project of a real world application is required, using modern database management tools.
(3-0-3)
Prerequisites:
0612207
Corequisites:
0612342
CPE
342
CPE
Description
Course Number:
0612342
This lab introduces uses a DBMS product to design and implement tables and perform queries. Focusing on normalization, data integrity, data modeling, and creation of simple tables, queries, reports, and forms. Once completed, students should be able to design and implement database structures by creating database tables, queries, reports, and forms.
(0-3-1)
Corequisites:
0612341
CPE
356
CPE
Description
Course Number:
0612356
This is an introductory course in computer networks. It gives an overview of current computer networks and its history. It introduces the OSI and TCP/IP network architecture models and protocols. It then studies the implementation principles and design issues at each layer of these models. Lecture topics include: the structure and components of computer networks, application layer protocols, packet switching, layered architectures, TCP/IP, physical layer, error control, local area networks (wire and wired), network layer, congestion control, and multiple access. Laboratory work focuses on experimenting with packet tracing tools and the implementation of protocols covered in lectures, e.g., stop-and-wait protocol, socket programming, Dijkstra routing algorithm and others.
(3-0-3)
Prerequisites:
0600104,0600304,0612207
Corequisites:
0612357
CPE
357
CPE
Description
Course Number:
0612357
This laboratory course provides students with hands-on training and experience regarding the design, implementation, and packet inspection of computer networks. Students experiment with network simulation and packet tracing tools. Topics covered in experiments include: network addressing, address resolution protocol (ARP), Dynamic Host Configuration Protocol (DHCP), troubleshooting tools (e.g., ipconfig, traceroute, ping), basic networks simulation, server configuration at application layer, basic switch set-up and configuration, trunking in virtual local area networks (LAN), router setup and configuration in LAN and wide area networks (WAN), static and dynamic routing.
(0-3-1)
Corequisites:
0612356
CPE
363
CPE
Description
Course Number:
0612363
Embedded system building blocks. Embedded microcontroller's architecture. Embedded programs: instruction set, interrupts, timers and programming in assembly language. Memory technologies. Basic I/O devices (such as keypad and LCD). Embedded microcontroller interfacing to memory and I/O devices.
(3-0-3)
Prerequisites:
0612262,0612264,Corequisites: 0612364
Corequisites:
0600205,0612364
CPE
364
CPE
Description
Course Number:
0612364
This lab component provides sufficient detailed knowledge and hands-on experience of a microcontroller so that students can breadboard and program a microcontroller and demonstrate its function in a real-time application. It is accomplished by a sequence of assigned labs, followed by a final project of the student\'s choice, emphasizing creativity and uniqueness.
(0-3-1)
Corequisites:
0612363
CPE
368
CPE
Description
Course Number:
0612368
Digital systems design principles and techniques including modeling and simulation with HDLs. Performance metrics and Amdahl\'s Law. CPU organization of computers. Instructing set architecture. Register transfer logic. Computer arithmetic: fast adders, multipliers, dividers and floating-point arithmetic. Processor data path and control unit design. Introduction to pipelining and caches. An emphasis on hardware design methods, combined with increased discussion of performance and relevant software issues.
(3-0-3)
Prerequisites:
0612363,0612364
CPE
371
CPE
Description
Course Number:
0612371
The course introduces the basic concepts of software engineering, methodologies, and process models. The course covers the followings: Software life cycle, models and methods for software specification, analysis and design, object oriented analysis and design using UML, patterns, frameworks and APIs, architectural design, distributed system architectures. The course also introduces the use of state-of-the-art tools for computer-aided software engineering. The course increase students' knowledge of classic and modern software engineering techniques, and develop concrete experience in turning ill-formed concepts into products working with a team. This course includes a project.
(3-2-3)
Prerequisites:
0600209,0600310
Corequisites:
0612341
CPE
399
CPE
Description
Course Number:
0612399
Students should attend a training program at one of the approved companies/institutions engaged in computer engineering practices. The objective is to gain practical experience in real engineering problems. The student should submit a formal report at the end of the training period. A minimum of 180 hours of supervised training is required.
(3-0-3)
Prerequisites:
90 Credits
CPE
402
CPE
Description
Course Number:
0612402
This course will cover advanced concepts and techniques in distributed systems with applications to cloud computing and big data analytics. The underlying principle of Net-Centric Computing (NCC) is a distributed environment where applications and data are downloaded from servers and exchanged with peers across a network on as-needed basis. In many ways, NCC is the enabling technology for a significant percentage of modern enterprise applications. Course material will focus mainly on scalable performance and fault tolerance. The course will combine concepts from distributed computing, cloud computing, database systems, programming languages, and theory by exploring both the foundations and practical applications of distributed storage, cluster computing frameworks, and distributed transaction processing.
(3-0-3)
Prerequisites:
0612356
CPE
404
CPE
Description
Course Number:
0612404
This course is a senior elective that introduces students to compiler construction and issues related to software compilation. Topics includes Lexical analysis, Syntax analysis: LL parsing and LR parsing, Semantic analysis: Type checking and attributed grammars, Memory management, Error handling, Code generation, Code optimization, and Bootstrapping. Students will be exposed to real compiler implementations. Students become familiar with make, lex, and yacc as a part of the course and are required to implement one compiler project in their favorite computer programming language.
(3-0-3)
Prerequisites:
0612207,0612363
CPE
410
CPE
Description
Course Number:
0612410
This course aims to introduce students to theoretical models of computation while providing an in-depth understanding of the subject. It offers a comprehensive exploration of the hierarchies of formal languages and non-deterministic automata, highlighting their interconnections. Key concepts such as computability and decidability are also introduced. Additional topics include: the role of formal languages and automata in the study of computability and complexity, finite state automata and regular expressions, pushdown automata and context-free grammars, as well as Turing machines and computable functions, decidable and undecidable languages.
(3-0-3)
Prerequisites:
0612300
CPE
413
CPE
Description
Course Number:
0612413
History and overview of distributed systems. Fundamentals of distributed systems and algorithms. Problems, methodologies, paradigms and models necessary for understanding and designing distributed applications. Topics may include: system models, process communication, distributed shared memory, web services, fault tolerance, real/logical/virtual time, distributed algorithms, authentication and security, naming, object-oriented structuring of distributed systems, distributed file systems, communication support for distributed systems. Theoretical concepts will be complemented with practical examples.
(3-0-3)
Prerequisites:
0612300
CPE
414
CPE
Description
Course Number:
0612414
The course will offer a concise introduction to quantum computation, developing the basic elements of this new branch of computational theory without assuming any background in physics. It begins with a novel introduction to the quantum theory from a computer-science perspective. It illustrates the quantum-computational approach with several elementary examples of quantum speed-up, before moving to the major applications: Shor's factoring algorithm, Grover's search algorithm, and quantum error correction.
(3-0-3)
Prerequisites:
0612300
CPE
420
CPE
Description
Course Number:
0612420
This course will introduce data mining techniques, including frequent pattern and association rule mining, some basic background on classification and clustering, and applications of data mining techniques in specific domains. The emphasis will be on applications in specific domains rather than fundamental methodologies. The course will begin with an introduction to the data mining field, covering essential topics such as the significance of data mining, its definition, the types of data that can be mined, and the various patterns that can be extracted., Additionally, it will provide an overview of relevant technologies, discuss major challenges in data mining, and offer a brief history of the data mining community.
(3-0-3)
Prerequisites:
0600304,0612207
CPE
421
CPE
Description
Course Number:
0612421
This is an undergraduate-level introductory course for information retrieval. It will cover algorithms, design, and implementation of modern information retrieval systems. Topics include: retrieval system design and implementation, text analysis techniques, retrieval models (e.g., Boolean, vector space, probabilistic, and learning-based methods), search evaluation, retrieval feedback, search log mining, and applications in web information management.
(3-0-3)
Prerequisites:
0600304,0612207
CPE
432
CPE
Description
Course Number:
0612432
This course introduces fundamental component and algorithms of natural language processing (NLP) through computational methods with a focus on machine learning techniques. Topics include NLP tasks and semantics, N-gram language models, which form the basis for understanding linguistic patterns and structures, part-of-speech tagging and sequence labeling, and synaptic parsing and semantic analysis. Design and implantation of NLP models using neural networks and transforms. Practical applications will include information extraction, chatbots and dialogue systems, text-to-speech, and machine translation.
(3-0-3)
Prerequisites:
0612336
CPE
433
CPE
Description
Course Number:
0612433
This course is concerned with the computer acquisition and analysis of image data. Computer vision is the construction of explicit meaningful descriptions of physical objects or other observable phenomena from images. The emphasis is on physical, mathematical, and information-processing aspects of the vision. Topics to be covered include image formation, edge detection and segmentation, convolution, image enhancement techniques, extraction of features such as color, texture, and shape, object detection, 3-D vision, and computer vision system architectures and applications.
(3-0-3)
Prerequisites:
0610213,0612207
CPE
434
CPE
Description
Course Number:
0612434
The nature of robotics and the role of intelligence in the context of robotics. Overview of robotic systems: state-of-the-art robot systems, planning vs. reactive control, uncertainty in control, sensing, and world models. Configuration space. The role of planning in robotics and relevant techniques. Robot programming, the range of software that supports robotic activity. Navigation and control, strategies for particular environments. Ethical issues associated with robotics and intelligent behavior.
(3-0-3)
Prerequisites:
0612363
CPE
435
CPE
Description
Course Number:
0612435
Topics include the development of decision support and expert systems, knowledge representation and processing, and the design of knowledge base to transfer human knowledge into expert systems. The course will also explore tools for building expert systems logic programming, expert system shells (Clips, Jess, VISIRULE etc.). Emphasis will be placed on leveraging domain-specific knowledge to obtain expert performance in programs.
(3-0-3)
Prerequisites:
0600304,0612300
CPE
436
CPE
Description
Course Number:
0612436
This course is designed for senior in Computer Engineering major to introduce them to the fundamentals and theories of machine learning algorithms. Students will be taught the theory, design and implementation of different machine learning algorithms such as Bayes classifiers, decision trees, neural networks, DNN, evolutionary algorithms, inductive learning. Students will implement and compare different algorithms for learning problems. The project is an integral component of this course.
(3-0-3)
Prerequisites:
0600304,0612207
CPE
438
CPE
Description
Course Number:
0612438
This course explores the cutting-edge techniques in interactive computer graphics, photorealistic rendering, VR/AR, and GPU programming. Covers advanced 3D transformations, shading models, global illumination, real-time ray tracing, physically based rendering, neural rendering, and immersive graphics for virtual and augmented reality. Hands-on projects using modern graphics APIs and engines.
(3-0-3)
Prerequisites:
0612207
CPE
439
CPE
Description
Course Number:
0612439
This course introduces fundamental components of deep learning system, including Linear Classifiers, Stochastic Gradient Descent, Fully Connected Networks, Convolutional Networks, and Recurrent Networks. Additionally, it introduces applications of deep learning, emphasizing the core concepts behind these applications, such as Object Detection, Image Segmentation, Video Classification, Generative Models, and Reinforcement Learning.
(3-0-3)
Prerequisites:
0612336
CPE
441
CPE
Description
Course Number:
0612441
Advanced topics in commercial and research oriented databases systems including catalogs, physical storage techniques, query processing, optimization, transaction management, concurrency control, disaster recovery, security, integrity, extended data types, triggers and rules, distributed databases, warehouses and parallelism.
(3-0-3)
Prerequisites:
0612341
CPE
443
CPE
Description
Course Number:
0612443
In this course, students will be introduced to principles and current technologies of computer-based multimedia systems. They will study current media types (images, video, audio, graphics etc) and how they are used to create multimedia content. Issues in effectively representing, processing, and compressing multimedia data will be addressed. The students will be familiarized with the range of tools used in creating computer-based multimedia.
(3-0-3)
Prerequisites:
0600304,0610385
CPE
445
CPE
Description
Course Number:
0612445
This course will cover the basic design and principles of operating system design and implementation. Concurrent processes, inter-process communication, job and process scheduling; deadlock and race conditions. Issues in memory management (virtual memory, segmentation, and paging) and auxiliary storage management (file systems, directory structuring, and protection mechanisms). Students complete several small projects that exercise their understanding of the material presented in class.
(3-0-3)
Prerequisites:
0612207,0612363
CPE
447
CPE
Description
Course Number:
0612447
This course introduces the basic concepts of the internet of things (IoT). Student will study the basic building blocks of IoT and learn about the technologies behind the IoT paradigm. As a project base course. students will design and implement a complete IoT system. The course elaborates on smart devices, sensors and connectivity to the internet. It also provides a simple introduction to single-board mini computers, wireless protocols, web services, Python programming, and cloud computing.
(3-0-3)
Prerequisites:
0612356, 0612363
CPE
450
CPE
Description
Course Number:
0612450
his course covers the basic of digital investigation and the handling of digital evidence. Beginning with an overview of digital investigation processes, the course dive into the practical aspects of data acquisition from physical storage devices, emphasizing the importance of preserving the integrity of evidence. Student will learn advanced techniques in file system analysis, file recovery, and file carving, along with document analysis to uncover hidden or lost data. The course also covers specialized areas such as information hiding and steganography, providing skills to detect and decipher concealed information. Key forensic practices like time, registry, and password recovery are explored, along with methods for email and database forensics, essential for solving complex cybercrimes. Additionally, the course delves into memory acquisition techniques and network investigation, equipping students with necessary tools to tackle diverse challenges in the field of digital forensics. This course is designed to provide a thorough understanding of both the theoretical aspects of digital forensics, preparing student for real-world applications in this dynamic and evolving field.
(3-0-3)
Prerequisites:
0612356, 0612445
CPE
451
CPE
Description
Course Number:
0612451
Introduction to concepts, principles and practice of wireless and mobile communications and networking. Multiples access protocols for wireless networks. Mobile Internet protocol. Mobile aware adaptation. Extending the client-server model to accommodate mobility. The role of middleware and support tools. Performance issues. Security and legal implications of wireless communications. Emerging technologies.
(3-0-3)
Prerequisites:
0612356
CPE
452
CPE
Description
Course Number:
0612452
This course provides a comprehensive introduction to system security, with a special focus on operating system security. Students will start with an overview of computer security, including an introduction to basic principles and concepts, and an understanding of common security threats and attacks. Students will learn about the structure and components of operation systems (OS), types of threats specific to OS, access control and authentication mechanisms, and security policies and models relevant to OS. Furthermore, they will delve into the protection mechanisms at the OS level, such as memory and file protection, secure boot, and sandboxing, and understand how to detect and prevent intrusion at the system level (intrusion detection and prevention). The course also covers other important areas of systems security, such as secure program development, database and data security, and privacy and anonymity considerations in computer systems.
(3-0-3)
Prerequisites:
0612445
CPE
453
CPE
Description
Course Number:
0612453
Introduction to the theory and practice of computer and network security. Fundamentals of secure networks and systems. Symmetric cryptography primitives, block ciphers and modes of operation. Introduction to number theory and its applications to public key cryptography algorithms. Authentication and integrity concepts, Hash functions, Message Authentication Codes and Digital Signatures. Key distribution and management. Real-life Networking protocols (IPSec, SSL, wireless networks). TCP-IP with a threat focus and attacks. Packet filtering, Firewall, and Intrusion Detection systems. Ethical issues.
(3-0-3)
Prerequisites:
0612300,0612356,0612357
CPE
454
CPE
Description
Course Number:
0612454
Theory and application of analytic methods for evaluating the performance and for capacity planning of computer networks. Review of the basic probability theory. Advanced methods in probabilistic analysis. Random processes. Markovian queuing models. Network protocols. Traffic modelling. Event driven simulation.
(3-0-3)
Prerequisites:
0612356
CPE
455
CPE
Description
Course Number:
0612455
The objective of this course is to gain an understanding of various issues in designing an optical network. Topics include SONET/SDH, wavelength division multiplexing, framing techniques, traffic grooming, multiple access protocols, virtual topology design, routing and wavelength assignment, protection and restoration, and optical packet switching.
(3-0-3)
Prerequisites:
0612356
CPE
456
CPE
Description
Course Number:
0612456
This course explores essential key concepts, systems, and algorithms for ensuring reliable data communication. The lecture topics are organized into three distinct modules: bits, signals and packets. The first module covers information, entropy, data compression algorithms, and error correction with block and convolutional codes. The second module covers modeling of physical channels and noise, signal design, filtering and detection, modulation, and multiplexing. The third module includes switching and queuing principles, multimedia networking, network management and advanced state of the art network architectures.
(3-0-3)
Prerequisites:
0612356,0610385
CPE
457
CPE
Description
Course Number:
0612457
This course will build on the fundamentals of basic cryptographic knowledge and cover more advanced tools, real applications, and best practices. Topics include formal definition of indistinguishability security for pseudo-randomness, encryption, and authentication. Techniques for constructing concrete hash functions including sponge, Feistel-base, and Merkle-Damgrad extensions. Application to message authentication, including key concepts and various schemes. Password-less authentication mechanisms. Asymmetric primitives. Modern applications include practical authenticated encryption standards, elliptic curve cryptography, blockchains, zero knowledge protocols, cryptocurrencies, secret sharing and more
(3-0-3)
Prerequisites:
0612453
CPE
458
CPE
Description
Course Number:
0612458
Introduction to the design, architecture and implementation of client and server programs in the client-server model of computing. Overview of the TCP/IP suite of protocols and some application specific protocols. Sockets programming, client/server, peer-to-peer, Internet addressing, TCP sockets, UDP sockets. Multithreading and exception handling. Interprocess communication and network programming interfaces. Server architectures. Use of scripting languages in providing client-side and server-side processing in web based applications. Security issues.
(3-0-3)
Prerequisites:
0612356
CPE
459
CPE
Description
Course Number:
0612459
The goal of this course is to provide students with the necessary background needed in order to understand the different aspects of information security today. The course will give a broad overview of the essential ideas as well as the methods needed for providing and evaluating security in information processing systems (operating systems and applications, networks, protocols, etc.). The syllabus will cover foundational technical concepts (basic cryptology, access control principles, operating systems and database security, network security, etc.) as well as managerial (incident and risk management, business continuity, etc.) and policy ones.
(3-0-3)
Prerequisites:
0612453
CPE
462
CPE
Description
Course Number:
0612462
Computer arithmetic deals with the hardware realization of arithmetic functions to support various computer architectures as well as with arithmetic algorithms for firmware/software implementation. A major thrust of digital computer arithmetic is the design of hardware algorithms and circuits to enhance the speed of various numeric operations. Standard and unconventional number representations. Design of fast two-operand and multi-operand adders. High-speed multiplication and division algorithms. Floating-point numbers, algorithms, and errors. Hardware algorithms for function evaluation.
(3-0-3)
Prerequisites:
0612368
CPE
464
CPE
Description
Course Number:
0612464
The course encompasses the theoretical and practical aspects of digital systems testing and the design of easily testable circuits. Major topics include defect, fault modeling, test generation for combinational and sequential circuits, test measures and costs, functional and parametric test methods, single stuck-at model, design for testability, scan-path design, built-in self-tests, and concurrent testing. In addition, the course introduces students to ATPG tools and their usage in fault simulation, test, and diagnosis of combinational circuits.
(3-0-3)
Prerequisites:
0612368
CPE
465
CPE
Description
Course Number:
0612465
This course will provide an introduction to the tools used to design and analyze digital circuits, including the design of exact and heuristic algorithms that form the basis for VLSI Computer-Aided-Design. Topics covered include partitioning problems, floor planning problem, placement problems, and interconnection of elements -Net selection -Minimal spanning trees -Steiner trees. Layering ordering, pin assignment, and routing algorithms.
(3-0-3)
Prerequisites:
0612207,0612262
CPE
468
CPE
Description
Course Number:
0612468
This course provides students with a solid understanding of fundamental architectural techniques used in today\'s high-performance processors and systems. Course topics include memory hierarchies (caches and virtual memory), cache coherence, instruction level parallelism, parallel architectures classification, vector processing, introduction to shared memory multiprocessors, multithreading, multicore, GPU. Parallel programming models and multiprocessors network topologies. An emphasis will be both on hardware and software issues specially related to parallel programming.
(3-0-3)
Prerequisites:
0612368
Corequisites:
0612469
CPE
469
CPE
Description
Course Number:
0612469
Hands-on design and implementation of computer system design. Use of CAD tools for schematic capture and Verilog HDL based simulation and synthesis. Design and implementation of data path functional units and I/O subsystem of traditional computer systems using sophisticated logic devices such as CPLDs and FPGAs.
(0-3-1)
Corequisites:
0612468
CPE
471
CPE
Description
Course Number:
0612471
This course addresses design, modeling, analysis, and integration of hardware and software to achieve dependable computing systems employing on-line fault-tolerance. It covers the concepts and terminologies of Fault-Tolerant System Design including: reliability, dependability, maintainability, redundancy, damage confinement, error recovery, fault treatment, redundancy management, voting, information redundancy, combinatorial and sequential network testing, error detecting and correcting codes, self-checking circuits, and diagnostic theory.
(3-0-3)
Prerequisites:
0600304,0612368
CPE
472
CPE
Description
Course Number:
0612472
Propositional and predicate logics: syntax and semantics, validity and inference, etc. Deductive tableaux notation and its rules: resolution, equality, equivalence, and rewriting. Axiomatic theories and theories with induction. Verification of implementation and specification using deductive tableaux.
(3-0-3)
Prerequisites:
0600304,0612363
CPE
474
CPE
Description
Course Number:
0612474
Principles and practices involved in the design, implementation, testing, and evaluation of standard-cell ASIC chips using automated state-of-the-art CAD tools. Topics include hardware description languages, CMOS logic, Finite state machine theory and implementation, and interconnect fundamentals, chip design methodologies, automated cell-based design, CAD algorithms, details of accurately modeling ASIC delay, energy, and area, robustness issues, testing, verification, and debugging, power distribution and clocking, packaging and I/O.
(3-0-3)
Prerequisites:
0610233,0612368
CPE
477
CPE
Description
Course Number:
0612477
This course is a study of techniques and processes for the design of digital systems. The focus is on the design of system modules derived from functional and interface specifications. A progression of designs, culminating in the design of a digital central processing unit and its peripheral units, will be used to illustrate both design and test techniques and procedures. This course will use a modern high level Hardware Design Language (HDL) as the main design tool. While implementation at the logic component (gate) level will be considered, the focus will be on system-level design and higher level behavioral modeling.
(3-0-3)
Prerequisites:
0612207,0612368
CPE
481
CPE
Description
Course Number:
0612481
This course introduces software testing and quality assurance engineering concepts, processes, models, criteria, and methods. The course covers topics including software unit testing, integration, function validation, system performance and reliability evaluation; software security testing methods and tools; software quality management, control systems, standards, and evaluation metrics. Students are asked to demonstrate proficiency in managing a software project to customer requirements and proficiency in quality assurance and testing through class exercises and a project
(3-0-3)
Prerequisites:
0612371
CPE
482
CPE
Description
Course Number:
0612482
This course covers the following topics in depth: requirements engineering; eliciting and coping with changing and evolving requirements; Students are introduce to in-depth study of current research and practice in requirements elicitation, requirements analysis, requirements specifications, requirements verification and validation, and requirements management.
(3-0-3)
Prerequisites:
0612371
CPE
483
CPE
Description
Course Number:
0612483
This course describes the key aspects of a software project management including software project planning, software validation, verification and testing techniques and strategies, software quality assurance, process improvement, software evolution, estimating software cost and schedule, change and configuration management, risk engineering, and continuous process improvement. This course includes a project developed in a team.
(3-0-3)
Prerequisites:
0612371
CPE
493
CPE
Description
Course Number:
0612493
This course is designed for senior level students in computer engineering. It gives them exposure to special topics in computer engineering. Topics may vary each time the course is offered. Details of the course including: prerequisites, textbook, objectives, and topics to be covered, course specific outcomes etc. should be posted on the course page of the department at the time of offering.
(3-0-3)
Prerequisites:
0612300
CPE
494
CPE
Description
Course Number:
0612494
Approaches to the development of systems in computer engineering, the special problems and the issues, primarily through hands-on design experiences and development of professional skills. The course provides information about the principles, methods and skills that are essential to engineering design. Concept of a life-cycle, nature of life cycle models, and phases of typical life cycles. Ethics and legal issues. Quality issues, process and process improvement. Issue of teams, team selection, roles in teams, and elements of teamwork. Selection of design and design alternatives for experiments, selection of test cases, support tools, standards and emerging technologies. Techniques and approaches associated with the different phases, special problems of design and the issues associated with tradeoffs, special problems of hardware/software tradeoffs, specifications and requirements engineering, design and architecture, testing, integration, maintenance, oral and written technical communication.
(3-0-3)
Prerequisites:
0612363,0612356,0612371
CPE
495
CPE
Description
Course Number:
0612495
This course contributes a capstone design experience in computer engineering. Typically it would require the student to build on the aggregated knowledge gained in previous years, designing their own experiments, and developing their own test cases. Students will have design experience involving hardware and/or software systems to meet the desired needs within realistic constraints such as economic, environment, social, political, ethical, health and safety, manufacturability, and sustainability. Use of skills in design tools and practices, integration, test plans, implementation, experimental validation, maintenance, functional teaming, oral and written technical communication.
(3-0-3)
Prerequisites:
0612494
Corequisites:
0600308
CPE
502
CPE
Description
Course Number:
0612502
Introduction to Digital Image Processing covering digital techniques for image representation, enhancement, compression and restoration. Students will learn the fundamentals behind image processing methods and algorithms. We assume students have an understanding of linear systems and calculus. In addition, it is also helpful to have a familiarity with elementary probability theory and linear algebra.
(3-0-3)
Prerequisites:
0612-300 and 0600-304 or Consent of Instructor
CPE
503
CPE
Description
Course Number:
0612503
Machine learning, statistical pattern classification, feature extraction and selection, various learning algorithms, cluster analysis, image processing, syntactic approach and practical applications on analysis of various biomedical data, character recognition, and speech recognition.
(3-0-3)
Prerequisites:
0600-304 or Consent of Instructor
CPE
505
CPE
Description
Course Number:
0612505
Selected advanced Operating Systems topics; control of disks and other input/output devices; file-system structure and implementation; network structures; distributed system structures and file systems; introduction to distributed and real-time systems; distributed algorithms; logical clocks; reliability and security; case studies.
(3-0-3)
Prerequisites:
Consent of instructor
CPE
508
CPE
Description
Course Number:
0612508
Selected topics in the area of software engineering such as emerging areas of research in software engineering; Object-oriented design and analysis; Configuration management; Software testing; Reverse engineering; Software reusability; Distributed and web-based software development; Fault-tolerant software development; Case tools for design and analysis, configuration management, and testing.
(3-0-3)
Prerequisites:
0612-308 or 221
CPE
509
CPE
Description
Course Number:
0612509
Three-dimensional transformations and perspective systems and techniques for displaying and shading solid areas, hidden-element removal, display device characteristics, device independent systems, and user interface design.
(3-0-3)
Prerequisites:
0612-438 or Consent of Instructor
CPE
511
CPE
Description
Course Number:
0612511
Introduction to the issues of privacy and data protection, information collection, cookies, profiling, traffic monitoring analysis, data mining, data matching, surveillance technology, censorship, encryption, identification, anonymity, codes and policies, law, privacy in workplace, and ethical issues.
(3-0-3)
Prerequisites:
0612-356 or Consent of Instructor
CPE
514
CPE
Description
Course Number:
0612514
This course concentrates on recent research in computing that affects future directions in science, engineering and technology, hence upon modern society. For example, studying standers (e.g., E- Commerce technologies, and software life cycle processes such as ISO/IEC 12207) have immense effect on industry and society. Students explore such topics through conducting research. The course introduces skills necessary for research including surveying, scrutinizing methods and outcomes, designing tools, and preparing technical manuscripts.
(3-0-3)
Prerequisites:
Consent of Instructor
CPE
515
CPE
Description
Course Number:
0612515
Introduction to Machine Learning
(3-0-3)
CPE
523
CPE
Description
Course Number:
0612523
Introduction to AI. History of AI. Knowledge representation: First order logic, Predicate logic, and Semantic net. Blind search. Heuristic search. Machine planning. Machine learning. Agents. Natural language processing.
(3-0-3)
Prerequisites:
Consent of Instructor
CPE
527
CPE
Description
Course Number:
0612527
Advanced AI topics will be discussed in-depth. Student will survey recent research in topics such as, but not limited to, natural language processing, cognitive modeling techniques, machine learning techniques, evolutionary algorithms, fuzzy logic, expert systems, robotics, knowledge system engineering (knowledge-based software engineering), and neural network computing.
(3-0-3)
Prerequisites:
0612-403, 0612-523 or Consent of Instructor
CPE
541
CPE
Description
Course Number:
0612541
Database management systems architecture; conceptual database models; relational, semantic, object-oriented, and object-relational databases; implementation techniques for database systems; file organization and data placement techniques; query processing; concurrency control; rollback and recovery techniques; integrity and consistency; transaction processing.
(3-0-3)
Prerequisites:
0612-341, or Consent of Instructor
CPE
543
CPE
Description
Course Number:
0612543
Design and implementation of database management systems in support of advanced technologies and applications, such as: geographical information systems (GIS) temporal and spatial databases, multimedia databases data mining data warehousing, distributed database systems, or other advanced topics in the area of database and information systems. We will focus on current issues in database and information system design.
(3-0-3)
Prerequisites:
0612-541, or Consent of Instructor
CPE
545
CPE
Description
Course Number:
0612545
Fundamental and emerging technologies such as networking infrastructures, data management tools, application servers, design tools, security systems, personalization tools, and electronic payment systems; case studies dealing with the existing business models and business processes; design and implementation of a major E-Commerce project using the state of the art tools. Proficiency in an object-Oriented programming language (such as Java) is expected from all students.
(3-0-3)
Prerequisites:
0612-541, or Consent of Instructor
CPE
547
CPE
Description
Course Number:
0612547
Overview of data representation, hexadecimal representation and different file type representations. Review on assembly language and code reverse engineering. Digital Forensics lab requirements. Digital Forensic process: technical and legal aspects. Types of Digital evidences. Extracting evidences from different OS platforms. Overview of network, Email, database and mobile Forensics. Students will be exposed to reverse engineering and code analysis. Students will do exercises on several Forensics tools.
(3-0-3)
Prerequisites:
0612-505, 0612-508 or Consent of Instructor
CPE
548
CPE
Description
Course Number:
0612548
This course will study approaches, mechanisms, and tools used to make software systems more secure. We will motivate the study by discussing common software security vulnerabilities such as buffer overflows, cross-site scripting and injection attacks. Then we will look at architectural approaches to building secure software (e.g., confinement, virtual machines, trusted computing), secure design principles and patterns, software analysis, secure programming techniques, run-time enforcement of security policies, code reviews and security testing. The course will also cover topics such as the importance of usability to building secure software systems.
(3-0-3)
Prerequisites:
0612-454 or Consent of Instructor
CPE
549
CPE
Description
Course Number:
0612549
Overview of security management: assets, vulnerabilities, threats, attacks, security tools, models and procedures. Role of policy making in the context of information security. Common practices to risk management and analysis. Fundamentals of cryptology, secure networking and access control. Problems and potential solutions associated with designing and implementing operating system and application security. Frameworks commonly used for governance and compliance control. Incident and disaster response.
(3-0-3)
Prerequisites:
0612-453 or Consent of Instructor
CPE
551
CPE
Description
Course Number:
0612551
Reviews regular expressions and finite automata. studies turning machines and equivalent models of computation, the Chomsky hierarchy, context-free grammars, push-down automata, and computability. Machine models of effective computability; sub-recursive hierarchies; P and NP problems; effective and efficient reducibility; time, space, and abstract complexity.
(3-0-3)
Prerequisites:
0612-300, or Consent of the Instructor
CPE
553
CPE
Description
Course Number:
0612553
Distributed system examples, implementation issues, parallel vs. distributed systems, review of communication and networking, distributed system models, message-passing vs. shared memory models, synchronous vs, asynchronous systems, guarded actions non-determinism, atomic operations, scheduling and fairness issues, program correctness, safety and liveness properties, distributed mutual exclusion, distributed snapshot, distributed reset, wave algorithms, termination detetction, distributed deadlock, randomized algorithms, synchronous message passing, Hoare's CSP, clients and servers, faults in distributed systems, classification of faults, fault masking vs. fault recovery, self-stabilizing and adaptive distributed systems, gracefully degradable systems, waitfree systems, distributed consensus, leader election, clock synchronization.
(3-0-3)
Prerequisites:
0612-300 and 0612-445, or Consent of the Instructor
CPE
555
CPE
Description
Course Number:
0612555
Computer Security
(3-0-3)
CPE
557
CPE
Description
Course Number:
0612557
Selections from design, analysis, optimization, and implementation of algorithms; Computational complexity, complexity classes, randomized algorithms, probabilistic algorithms, distributed algorithms, parallel algorithms; algorithm correctness and general theory of algorithms; algorithms for particular application areas including: Graphs and Networks; Cryptography.
(3-0-3)
Prerequisites:
0612-300
CPE
561
CPE
Description
Course Number:
0612561
Introduction to theoretical issues in parallel computation. Topics: Parallel machine models. Design and analysis of algorithms for systolic arrays: arithmetic operations, simple graph algorithms. Algorithms for hypercube-related networks: sorting, routing. PRAM model of computation. Basic PRAM algorithms: prefix computation, sorting, shortest paths, minimum- weight spanning tree. Reducing the processor-time product. simulation of stronger PRAM models by weaker ones. Complexity issues: definition of NC and P-completeness; some simple lower bounds.
(3-0-3)
Prerequisites:
0612-468 or Consent of Instructor
CPE
562
CPE
Description
Course Number:
0612562
Structure of sequential machines, partition theory and decomposition of machines, modular realization of sequential machines, regular expressions, information lossless machines and linear sequential machines.
(3-0-3)
Prerequisites:
0612-461 or Consent of Instructor
CPE
565
CPE
Description
Course Number:
0612565
Topics include: High level synthesis, scheduling and allocation techniques, architecture style selection, two level logic minimization algorithms, multiple-value minimization and multi-level circuit synthesis. The course usually involves a project.
(3-0-3)
Prerequisites:
0612-461
CPE
566
CPE
Description
Course Number:
0612566
Overview of the fundamental concepts in networks, wireless technology, and mobile computing. Energy-aware adaptation for mobile applications. Understanding the current routing protocols for studies of medium access control techniques for wireless communications. Design principles that are crucial for building the foundation for the design, and construction of future generations of wireless computing networks (wireless ad hoc, sensor, and buipuitous networks).
(3-0-3)
Prerequisites:
0612-356 or Consent of Instructor
CPE
567
CPE
Description
Course Number:
0612567
Review of some important probability distributions and their properties; Markovian processes; Markovian queues; renewal theory; semi Markovian processes and the M/G/1 queue; priority queues; case studies: random access systems; polling systems; multiplexers and switching systems.
(3-0-3)
Prerequisites:
0612-454 or Consent of Instructor
CPE
568
CPE
Description
Course Number:
0612568
Classification of parallel processing system - SIMD and MIMD machines - Multiprocessor systems and interconnection networks - Case studies of parallel processing systems - Parallel processing design issues: Programming languages, operating systems, user interfaces - VLSI computing systems: systolic arrays, wavefront arrays.
(3-0-3)
Prerequisites:
612-468
CPE
569
CPE
Description
Course Number:
0612569
Alternative network architectures; study of the network functions and protocols in high performance networks; routing and switching; transport protocols in high-performance networks; integrated and differentiated service models and protocols; congestion and flow control protocols; broadbank ISDN and ATM; high-speed local and metropolitan area networks; advanced topics in high-performance networking.
(3-0-3)
Prerequisites:
0612-356
CPE
570
CPE
Description
Course Number:
0612570
Fundamentals of graph theory, partition, floor planning, placement, and routing. Programming techniques and algorithms; shortest/longest path, all-pairs shortest path, dynamic programming, linear programming, non-linear programming, evolutionary approaches, simulated annealing, and hyper-algorithms.
(3-0-3)
Prerequisites:
0612-300 or Consent of Instructor
CPE
571
CPE
Description
Course Number:
0612571
Fault modeling, redundancy techniques and reliability evaluation, error detecting and correcting codes, self-checking circuits, fault diagnosis, software fault tolerance, error mitigation methods, partial concurrent error detection, online test, reconfiguration and voting, software reliability and redundancy, hardware fault tolerance, fault detection in cryptographic systems.
(3-0-3)
Prerequisites:
0612-471 or Consent of Instructor
CPE
572
CPE
Description
Course Number:
0612572
The course will cover basic theory and techniques of digital VLSI design in CMOS technology. We use full-custom techniques to design basic cells and regular structures such as data-path and memory. There is an emphasis on modern design issues in interconnect and clocking. Students will design small test circuits using various CAD tools. Circuits will be verified and analyzed for performance with various simulators.
(3-0-3)
Prerequisites:
0612-368 or Consent of Instructor
CPE
573
CPE
Description
Course Number:
0612573
Wireless Communication Fundamentals
(3-0-3)
CPE
574
CPE
Description
Course Number:
0612574
Introduction and fundementals. Medium Access Control Protocols. Cellular Networks. Wireless Internet. 4-G Systems and Pervasive Networking. Security in Mobile Networks.
(3-0-3)
Prerequisites:
0612-356 or Consent of Instructor
CPE
575
CPE
Description
Course Number:
0612575
The students will review the fundamental design and analysis issues in computer networks, especially at the physical layer to the transport layer, including networking overview, multi-protocol network, intelligent network, ad-hoc and sensor network, mobile networking and current trends in the high-speed networks.
(3-0-3)
Prerequisites:
0612-356 and 0612-445
CPE
576
CPE
Description
Course Number:
0612576
Information theoretic security. Fundamentals of secure networks and cryptography. Number theory for cryptography. One-way hash functions. Message authentication codes. Encryption and privacy: public key and symmetric key. Digital signatures schemes. Authentication and integrity methods and protocols. Elliptic curves cryptography. Firewalls. Virtual private networks. Transport layer security.
(3-0-3)
Prerequisites:
0612-453 or Consent of Instructor
CPE
580
CPE
Description
Course Number:
0612580
An upper division of graduate technical elective treating topics in engineering mostly not covered in other courses, chosen at the discretion of the Graduate Program Committee.
(3-0-3)
Prerequisites:
Consent of the Instructor
CPE
581
CPE
Description
Course Number:
0612581
An upper division of graduate technical elective treating topics in engineering mostly not covered in other courses, chosen at the discretion of the Graduate Program Committee.
(3-0-3)
Prerequisites:
Consent of the Instructor
CPE
592
CPE
Description
Course Number:
0612592
Seminar
(3-0-3)
CPE
593
CPE
Description
Course Number:
0612593
Project course for non-thesis students.
(3-0-3)
CPE
597
CPE
Description
Course Number:
0612597
Thesis
(3-0-3)
CPE
598
CPE
Description
Course Number:
0612598
Thesis
(3-0-3)
CPE
599
CPE
Description
Course Number:
0612599
Thesis
(3-0-3)