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
A continuation of computing fundamentals given in CpE-200. Topics include data and procedural abstraction, software design principles and use of O-O design 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 laboratory projects include use of object-oriented design concepts with detailed documentation.
(3-2-3)
Prerequisites:
0600200
CPE
203
CPE
Description
Course Number:
0612203
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
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 and a significant programming project with detailed documentation and implementation.
(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,0600205,0600207
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 teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting, divide-and-conquer, dynamic programming, graph algorithms, shortest paths, network flow, polynomial and matrix calculations, parallel computing.
(3-0-3)
Prerequisites:
0612207
CPE
301
CPE
Description
Course Number:
0612301
Topics include data and procedural abstraction, software design principles and use of O-O design to develop solutions to simple problems. 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.
(3-0-3)
Prerequisites:
0612207
CPE
325
CPE
Description
Course Number:
0612325
Psychological principles of human-computer interaction, Building a simple graphical user interface (principles of GUIs, GUI toolkits), Human-centered software evaluation and development, Graphical user-interface design and programming (HCI aspects of common widgets, interaction techniques, screen design, GUI builders and GUI programming environments), integrate ethical perspectives in HCI solutions, Intelligent systems (artificial intelligence concepts), HCI aspects of multimedia systems (categorization and architectures of information, HCI design of multimedia information systems, speech recognition and natural language processing).
(3-0-3)
Prerequisites:
0612201
CPE
333
CPE
Description
Course Number:
0612333
Topics include: history and overview of intelligent systems. Overview of technologies. Fundamental issues in intelligent systems. Intelligent system design methodologies. Search and constraint satisfaction. Knowledge representation and reasoning, and agents.
(3-0-3)
Prerequisites:
0612300
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:
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.
(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
To introduce the student of computer science to, and to provide some depth in theoretical models for computation. This course provides unified coverage of the hierarchies of formal languages and non-deterministic automata, emphasizing the correspondence between them. The theory of computability and decidability is introduced. Topics covered include: 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. Turing machines and computable functions.
(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
The course will begin with an introduction of data mining field, including why data mining, what is data mining, what kinds of data can be mined, what kinds of patterns can be mined, an overview of technologies, the major issues in data mining, and a brief history of data mining community.
(3-0-3)
Prerequisites:
0600304,0612207
CPE
421
CPE
Description
Course Number:
0612421
Introductory course for seniors and graduate students covering the practices, issues, and theoretical foundations of organizing and analyzing information and information content for the purpose of providing access to textual and non-textual information resources. Introduces students to the principles of unstructured information storage and retrieval systems.
(3-0-3)
Prerequisites:
0600304,0612207
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:
0610385,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 building decision support and expert systems, knowledge representation and knowledge processing, design a knowledge base to transfer human knowledge into expert system, tools for building expert systems logic programming, expert system shells (Clips, Jess, VISIRULE etc). Emphasis on the use of 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
In this course, students will be introduced to the basic principles and problems of computer graphics. They will study mathematical background to understand and implement these basic principles of computer graphics and rendering systems. Students will learn how to use a standard graphics API (Application Programming Interface) to create, render, and manipulate interactively structured two-and three-dimensional models.
(3-0-3)
Prerequisites:
0612207
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
Embedded operating systems (EOS) are known as real-time operating systems (RTOS) and also getting more pervasive in our daily lives. Topics of interest include basic OS functions, a relevant hardware review, interrupt sand interrupt handling, semaphores and peripheral I/O operations, real-time scheduling principles and implementation, latency, task management, shared data and synchronization, timers, message passing and memory management, timeline design and performance analysis using metrics and tests, understand RTOS and the resource management, quality of service issues, concurrency, firmware and ROM-resident system code, and debugging live systems. These concepts will be reinforced through C programming and assembly language assignments and project using the Linux operating system. Practical hands-on experience in building real-time applications running under an EOS.
(3-0-3)
Prerequisites:
0612207,0612363
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
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
Studies key concepts, systems, and algorithms to reliably communicate data. Lecture topics cover three modules: bits, signals and packets. The bits module covers information, entropy, data compression algorithms, and error correction with block and convolutional codes. The signals module covers modeling of physical channels and noise, signal design, filtering and detection, modulation, and multiplexing. The packets 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
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
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 is designed for freshmen in Software Engineering major to introduce them to the fundamentals of the software engineering testing process, the quality assurance process and its role in software development, and the impact of ISO 9000 and the capability maturity model on software quality and testing. 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 homework assignments.
(3-0-3)
Prerequisites:
0612371
CPE
482
CPE
Description
Course Number:
0612482
This course is designed for freshmen in Software Engineering majors to introduce them with an 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:
0600310,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
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
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
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
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
593
CPE
Description
Course Number:
0612593
Project course for non-thesis students.
(3-0-3)