Computer Engineering
CE 5325 (EEDG 5325) Hardware Modeling Using HDL (3 semester credit hours) This course introduces students to hardware description languages (HDL) beginning with simple examples and describing tools and methodologies. It covers the language, dwelling on fundamental simulation concepts. Students are also exposed to the subset of HDL that may be used for synthesis of custom logic. HDL simulation and synthesis labs and projects are performed using commercial and/or academic VLSI CAD tools. Prerequisite: EE 3320 or equivalent. (3-0) T
CE 5354 (CS 5354 and SE 5354) Software Engineering (3 semester credit hours) Formal specification and program verification. Software life-cycle models and their stages. System and software requirements engineering; user-interface design. Software architecture, design, and analysis. Software testing, validation, and quality assurance. Prerequisite or Corequisite: CS 5343. (3-0) S
CE 5381 Curriculum Practical Training in Computer Engineering (3 semester credit hours) This course is required of students who need additional training in engineering practice. May not be used to fulfill degree requirements in MS Computer Engineering. May be repeated for credit (9 semester credit hours maximum). Department consent required. (3-0) S
CE 6301 (EEDG 6301) Advanced Digital Logic (3 semester credit hours) Modern design techniques for digital logic. Logic synthesis and design methodology. Link between front-end and back-end design flows. Field programmable gate arrays and reconfigurable digital systems. Introduction to testing, simulation, fault diagnosis and design for testability. Prerequisites: EE 3320 or equivalent and background in VHDL/Verilog. (3-0) T
CE 6302 (EEDG 6302) Microprocessor Systems (3 semester credit hours) Design of microprocessor based systems including I/O and interface devices. Microprocessor architectures. Use of emulators and other sophisticated test equipment. Extensive laboratory work. Prerequisites: EE 4304 or equivalent and background in VHDL/Verilog. (2-3) Y
CE 6303 (EEDG 6303) Testing and Testable Design (3 semester credit hours) Techniques for detection of failures in digital circuits and systems. Fault modeling and detection. Functional testing and algorithms for automatic test pattern generation (ATPG). Design of easily testable digital systems. Techniques for introducing built-in self test (BIST) capability. Test of various digital modules, such as PLA's, memory circuits, datapath, etc. Prerequisites: EE 3320 or equivalent and background in VHDL/Verilog. (3-0) Y
CE 6304 (CS 6304 and EEDG 6304) Computer Architecture (3 semester credit hours) Trends in processor, memory, I/O and system design. Techniques for quantitative analysis and evaluation of computer systems to understand and compare alternative design choices in system design. Components in high performance processors and computers: pipelining, instruction level parallelism, memory hierarchies, and input/output. Students will undertake a major computing system analysis and design project. Must have an understanding of C/C++. Prerequisite: CS 3340 or EE 4304. (3-0) Y
CE 6305 (EEDG 6305) Computer Arithmetic (3 semester credit hours) Carry look ahead systems and carry save adders. Multipliers, multi-bit recoding schemes, array multipliers, redundant binary schemes, residue numbers, slash numbers. High-speed division and square root circuits. Multi-precision algorithms. The IEEE floating point standard, rounding processes, guard bits, error accumulation in arithmetic processes. Cordic algorithms. Prerequisites: EE 3320 and C/C++. (3-0) Y
CE 6306 (EEDG 6306) Application Specific Integrated Circuits Design (3 semester credit hours) This course discusses the design of application specific integrated circuits (ASIC). Specific topics include: VLSI system design specification, ASIC circuit structures, synthesis, and implementation of an ASIC digital signal processing (DSP) chip. Prerequisite: EE 3320. (3-0) Y
CE 6307 (EEDG 6307) Fault-Tolerant Digital Systems (3 semester credit hours) Advanced concepts in hardware and software fault tolerance. Topics include fault models, coding in computer systems, fault detection mechanisms, fault-tolerant routing, reconfiguration techniques, and software fault tolerance techniques such as recovery blocks, N-version programming, checkpointing, and application-level error resilience, etc. Survey of practical fault-tolerant systems. Prerequisites: EEDG 6301 and ENGR 3341 or equivalent. (3-0) R
CE 6308 (CS 6396 and EEDG 6308) Real-Time Systems (3 semester credit hours) Introduction to real-time applications and concepts. Real-time operating systems and resource management. Specification and design methods for real-time systems. System performance analysis and optimization techniques. Project to specify, analyze, design, implement and test small real-time system. Prerequisite: CS 5348. (3-0) R
CE 6324 (CS 6324) Information Security (3 semester credit hours) A comprehensive study of security vulnerabilities in information systems and the basic techniques for developing secure applications and practicing safe computing. Topics include common attacking techniques such as buffer overflow, Trojan, virus, etc. UNIX, Windows and Java security. Conventional encryption. Hashing functions and data integrity. Public-key encryption (RSA, Elliptic-Curve). Digital signature. Watermarking for multimedia. Security standards and applications. Building secure software and systems. Management and analysis of security. Legal and ethical issues in computer security. Prerequisites: CS 5343 and CS 5348. (3-0) Y
CE 6325 (EECT 6325) VLSI Design (3 semester credit hours) Introduction to MOS transistors. Analysis of the CMOS inverter. Combinational and sequential design techniques in VLSI; issues in static, transmission gate and dynamic logic design. Design and layout of complex gates, latches and flip-flops, arithmetic circuits, memory structures. Low power digital design. The method of logical effort. CMOS technology. Use of CAD tools to design, layout, check, extract and simulate a small project. Prerequisites: EE 3301 and EE 3320 or equivalent. (3-0) S
CE 6345 (EEDG 6345) Engineering of Packet-Switched Networks (3 semester credit hours) Detailed coverage, from the point of view of engineering design, of the physical, data-link, network and transport layers of IP (Internet Protocol) networks. This course is a master's level introduction to packet networks. Prior knowledge of digital communication systems is strongly recommended. Prerequisite: EE 3350 or equivalent. (3-0) Y
CE 6352 (CS 6352) Performance of Computer Systems and Networks (3 semester credit hours) Overview of case studies. Quick review of principles of probability theory. Queuing models and physical origin of random variables used in queuing models. Various important cases of the M/M/m/N queuing system. Little's law. The M/G/1 queuing system. Simulation of queuing systems. Product form solutions of open and closed queuing networks. Convolution algorithms and Mean Value Analysis for closed queuing networks. Discrete time queuing systems. Prerequisites: ENCS majors only and a first course on probability theory. (3-0) S
CE 6353 (CS 6353) Compiler Construction (3 semester credit hours) Lexical analyzers, context-free grammars. Top-down and bottom-up parsing; shift reduce and LR parsing. Operator-precedence, recursive-descent, predictive, and LL parsing. LR(k), LL(k) and precedence grammars will be covered. Prerequisites: CS 5343 and CS 5349. (3-0) Y
CE 6354 (CS 6354 and SE 6354) Advanced Software Engineering (3 semester credit hours) This course covers advanced theoretical concepts in software engineering and provides an extensive hands-on experience in dealing with various issues of software development. It involves a semester-long group software development project spanning software project planning and management, analysis of requirements, construction of software architecture and design, implementation, and quality assessment. The course will introduce formal specification, component-based software engineering, and software maintenance and evolution. Must have knowledge of Java. Prerequisite: CE 5354 or CS 5354 or SE 5354 or equivalent. (3-0) S
CE 6363 (CS 6363) Design and Analysis of Computer Algorithms (3 semester credit hours) The study of efficient algorithms for various computational problems. Algorithm design techniques. Sorting, manipulation of data structures, graphs, matrix multiplication, and pattern matching. Complexity of algorithms, lower bounds, NP completeness. Prerequisites: CS 5333 and CS 5343. (3-0) S
CE 6367 (CS 6367 and SE 6367 and SYSM 6310) Software Testing, Validation and Verification (3 semester credit hours) Fundamental concepts of software testing. Functional testing. GUI based testing tools. Control flow based test adequacy criteria. Data flow based test adequacy criteria. White box based testing tools. Mutation testing and testing tools. Relationship between test adequacy criteria. Finite state machine based testing. Static and dynamic program slicing for testing and debugging. Software reliability. Formal verification of program correctness. Prerequisite: CE 5354 or CS 5354 or SE 5354. (3-0) Y
CE 6370 (EEDG 6370) Design and Analysis of Reconfigurable Systems (3 semester credit hours) Introduction to reconfigurable computing, programmable logic: FPGAS, CPLDs, CAD issues with FPGA based design, reconfigurable systems: emulation, custom computing, and embedded application based computing, static and dynamic hardware, evolutionary design, software environments for reconfigurable systems. Prerequisite: EE 3320 or equivalent. (3-0) R
CE 6375 (EEDG 6375) Design Automation of VLSI Systems (3 semester credit hours) This course deals with various topics related to the development of CAD tools for VLSI systems design. Algorithms, data structures, heuristics and design methodologies behind CAD tools. Design and analysis of algorithms for layout, circuit partitioning, placement, routing, chip floor planning, and design rule checking (DRC). Introduction to CAD algorithms for RTL and behavior level synthesis, module generators, and silicon compilation. Prerequisite: CS 5343. Corequisite: EECT 6325. (3-0) Y
CE 6378 (CS 6378 and TE 6378) Advanced Operating Systems (3 semester credit hours) Concurrent processing, inter-process communication, process synchronization, deadlocks, introduction to queuing theory and operational analysis, topics in distributed systems and algorithms, checkpointing, recovery, multiprocessor operating systems. Must have knowledge of C, UNIX, and Socket Programming. Prerequisites: CS 5343 and CS 5348 or equivalent. (3-0) S
CE 6380 (CS 6380) Distributed Computing (3 semester credit hours) Topics include distributed algorithms, election algorithms, synchronizers, mutual exclusion, resource allocation, deadlocks, Byzantine agreement and clock synchronization, knowledge and common knowledge, reliability in distributed networks, and proving distributed programs correct. Prerequisite: CS 5348. (3-0) S
CE 6390 (CS 6390) Advanced Computer Networks (3 semester credit hours) Survey of recent advancements in high-speed network technologies. Application of quantitative approach to the study of broadband integrated networks including admission control, access control, and quality of service guarantee. Prerequisite: CS 5390. (3-0) S
CE 6392 (CS 6392) Mobile Computing Systems (3 semester credit hours) Topics include coping with mobility of computing systems, data management, reliability issues, packet transmission, mobile IP, end-to-end reliable communication, channel and other resource allocation, slot assignment, routing protocols, and issues in mobile wireless networks (without base stations). Prerequisite: CS 6378 or CS 6390. (3-0) Y
CE 6397 (CS 6397) Synthesis and Optimization of High-Performance Systems (3 semester credit hours) A comprehensive study of high-level synthesis and optimization algorithms for designing high performance systems with multiple CPUs or functional units for critical applications such as Multimedia, Signal processing, Telecommunications, Networks, and Graphics applications, etc. Topics including algorithms for architecture-level synthesis, scheduling, resource binding, real-time systems, parallel processor array design and mapping, code generations for DSP processors, embedded systems and hardware/software codesigns. Prerequisite: CS 5343. (3-0) T
CE 6398 (CS 6398 and EEDG 6398) DSP Architectures (3 semester credit hours) Typical DSP algorithms, representation of DSP algorithms, data-graph, FIR filters, convolutions, Fast Fourier Transform, Discrete Cosine Transform, low power design, VLSI implementation of DSP algorithms, implementation of DSP algorithms on DSP processors, DSP applications including wireless communication and multimedia. Prerequisite: CS 5343. (3-0) Y
CE 6399 (CS 6399) Parallel Architectures and Systems (3 semester credit hours) A comprehensive study of the fundamentals of parallel systems and architecture. Topics including parallel programming environment, fine-grain parallelism such as VLIW and superscalar, parallel computing paradigm of shared-memory, distributed-memory, data-parallel and data-flow models, cache coherence, compiling techniques to improve parallelism, scheduling theory, loop transformations, loop parallelizations and run-time systems. Prerequisite: CS 5348. (3-0) T
CE 6V98 Thesis (3-9 semester credit hours) Pass/Fail only. May be repeated for credit. Instructor consent required. ([3-9]-0) S
CE 7302 Hardware/Software Co-design (3 semester credit hours) Fundamental concepts in the design of complex digital systems consisting of hardware and software components. Topics include system description and modeling, efficient systems partitioning, hardware/software synthesis, compilation and behavioral optimization, embedded computing systems, telecommunications systems using general-purpose and special-purpose digital signal processors, and rapid prototyping and emulation using field programmable gate arrays. Prerequisites: CE 6301 and CE 6302 and CE 6304. (3-0) Y
CE 7303 Hardware Verification (3 semester credit hours) This course deals with advanced issues related to the formal verification of complex digital systems. Topics include Binary Decision Diagrams (BDDs) and their application to representation and verification of digital systems, use of abstraction and rigorous analysis methods to solve complicated design problems, etc. Prerequisites: CE 6301 and CE 6303 and CE 6325. (3-0) Y
CE 7304 (EEDG 7304) Advanced Computer Architecture (3 semester credit hours) Advanced research topics in multiprocessor, GPU/GPGPU, storage-class non-volatile memory, main memory, network, and reconfigurable architectures. Focuses on current research in the area of computer system architecture to prepare students for a career in computer architecture research. Course will use articles from current technical literature to discuss relevant topics, such as digital signal processors, VLIW, and SIMD architectures, GPU and non-volatile memory architectures, low-power architectures, application-specific processors, and system on chip architectures. Prerequisites: CS 5348 and EEDG 6304 and knowledge of C/C++. (3-0) R
CE 7325 (EECT 7325) Advanced VLSI Design (3 semester credit hours) Advanced topics in VLSI design covering topics beyond the first course (EECT 6325). Topics include: use of high-level design, synthesis, and simulation tools, clock distribution and routing problems, (a)synchronous circuits, low-power design techniques, study of various VLSI-based computations, systolic arrays, etc. Discussions on current research topics in VLSI design. Prerequisite: EECT 6325 or equivalent. (3-0) R
CE 7328 (EEDG 7328) Physical Design of High-Speed VLSI Circuits (3 semester credit hours) Techniques for the physical design of high-speed VLSI circuits. Topics related to interconnection circuit modeling, performance-driven routing, buffer and wire sizing, placement and floor planning, technology mapping and performance evaluation issues encountered in high-speed VLSI circuit designs. Discussion of state-of-the-art practical industrial design examples. A project related to the development of a prototype CAD tool. Prerequisites: (CE or EECT 6325) and knowledge of programming in C. (3-0) T
CE 7V80 Special Topics in Computer Engineering (1-6 semester credit hours) May be repeated for credit as topics vary (9 semester credit hours maximum.) Prerequisite: ENCS majors only and instructor consent required. ([1-6]-0) S
CE 8V40 Individual Instruction in Computer Engineering (1-6 semester credit hours) Pass/Fail only. May be repeated for credit. Instructor consent required. ([1-6]-0) R
CE 8V70 Research in Computer Engineering (3-9 semester credit hours) Pass/Fail only. May be repeated for credit. Instructor consent required. ([3-9]-0) R
CE 8V99 Dissertation (1-9 semester credit hours) Pass/Fail only. May be repeated for credit. Instructor consent required. ([1-9]-0) S