Computer
Engineering Course Descriptions
Computer Science Courses
CS 5303 Computer Science I (3 semester hours) Computer science problem solving. The structure and nature of algorithms and
their corresponding computer program implementation. Programming in a high level block-structured
language (e.g., PASCAL, Ada, C++, or JAVA).
Elementary data structures: arrays, records, linked lists, trees, stacks
and queues. (3-0) R
CE 5325 (EEDG 5325) Hardware Modeling Using HDL (3 semester 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
CS 5330 Computer Science II (3 semester hours) Basic concepts of computer organization: Numbering
systems, two's complement notation, multi-level machine concepts, machine
language, assembly programming and optimization, subroutine calls, addressing
modes, code generation process, CPU datapath, pipelining, RISC, CISC,
performance calculation. Co-requisite:
CS 5303. (3-0) R
CS 5333 Discrete Structures
(3 semester hours) Mathematical foundations of computer science. Logic, sets, relations, graphs and algebraic
structures. Combinatorics and metrics for performance evaluation of algorithms.
(3-0) S
CS 5343 Algorithm Analysis & Data Structures (3 semester hours) Formal specifications and representation
of lists, arrays, trees, graphs, multilinked structures, strings and recursive
pattern structures. Analysis of
associated algorithms. Sorting and
searching, file structures. Relational
data models. Prerequisites: CS 5303, CS 5333. (3-0) S
CS 5348 Operating Systems Concepts (3 semester hours) Processes and threads. Concurrency issues
including semaphores, monitors and deadlocks.
Simple memory management. Virtual
memory management. CPU scheduling
algorithms. I/O management. File management. Introduction to distributed systems.
Prerequisites: CS 5330 and CS 5343 (may be taken concurrently) and a working
knowledge of C and Unix. (3-0) S
Computer Engineering
Courses
CE 5354 (CS 5354, SE 5354) Software Engineering (3 semester 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.
Corequisite: CS 5343 (CS 5343 can be taken before or at the same time as
CS 5354) (3-0) S
CE 5381 Curriculum Practical Training in Computer Engineering (3 semester hours) This course is required of students who
need additional training in engineering practice. Credit does not apply to the 33 hour M.S.C.E.
requirement. Consent of Graduate Adviser
required. (May be repeated to a maximum of 9 hours). (3-0) S
CE 6301 (EEDG 6301) Advanced Digital Logic (3 semester 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. Prerequisite: EE 3320 or equivalent and
background in VHDL/Verilog. (3-0) T
CE 6302 (EEDG 6302) Microprocessor Systems (3 semester 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. Prerequisite: EE 4304 or
equivalent and background in VHDL/Verilog. (2-3) Y
CE 6303 (EEDG 6303) Testing and Testable Design (3 semester 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. Prerequisite: EE 3320 or
equivalent and background in VHDL/Verilog. (3-0) Y
CE 6304 (EEDG 6304) Computer Architecture (3 semester 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. Prerequisite:
CS 3304, CS 4341 and C/C++ or equivalent. (3-0) Y
CE 6305 (EEDG 6305) Computer Arithmetic (3 semester 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 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 hours) Concepts in hardware and software fault
tolerance. Topics include fault models,
coding in computer systems, fault diagnosis and fault-tolerant routing, clock
synchronization, system reconfiguration, etc.
Survey of practical fault-tolerant systems. Prerequisites: EEDG 6301, ENGR 3341 or
equivalent. (3-0) R
CE 6308 (CS 6396 and EEDG 6308) Real-Time Systems (3 semester 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 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. Prerequisite: CS 5348 and CS 5343. (3-0) Y
CE 6325 (EECT 6325) VLSI Design (3 semester 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 3320, ENGR 3301 or
equivalent. (3-0) Y
CE 6345 (EEDG 6345) Engineering of Packet-Switched Networks (3 semester 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 Masters-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 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. Prerequisite: a first course on probability
theory. (3-0) S
CE 6353 (CS 6353) Compiler Construction (3 semester 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, SE 6354) Advanced Software Engineering (3 semester 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. Prerequisites: CE/CS/SE 5354 (or equivalent)
and knowledge of Java. (3-0) S
CE 6363 (CS 6363) Design and Analysis of Computer Algorithms (3 semester 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.
Prerequisite: CS 5343. (3-0) S
CE 6367 (CS 6367, SE 6367, SYSM 6310) Software Testing,
Validation and Verification (3 semester 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/CS/SE 5354 or consent of instructor. (3-0) Y
CE 6370 (EEDG 6370) Design and Analysis of Reconfigurable
Systems (3 semester 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 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 algorithms for layout, circuit partitioning,
placement, routing, chip floor planning, design rule checking (DRC). Introduction to CAD algorithms for RTL and
behavior level synthesis, module generators, and silicon compilation. Prerequisite: CS 5343. Co-requisite: EECT
6325. (3-0) Y
CE 6378 (CS 6378 and TE 6378) Advanced Operating Systems (3 semester 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. Prerequisites: CS 5348 or equivalent, and knowledge
of C and UNIX. (3-0) S
CE 6380 (CS 6380) Distributed Computing (3 semester 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, proving distributed programs
correct. Prerequisite: CS 5348. (3-0) S
CE 6390 (CS 6390) Advanced Computer Networks (3 semester 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 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 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, EEDG 6398) DSP Architectures (3 semester 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 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 7302 Hardware/Software Co-design (3 semester 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, CE 6302, and CE 6304. (3-0) Y
CE 7303 Hardware Verification (3 semester 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, CE
6303, and CE 6325. (3-0) Y
CE 7304 (EEDG 7304) Advanced Computer Architecture (3 semester hours) Advanced research topics in,
multi-processor, 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 and VLIW processors. Prerequisites: EEDG 6304, CS 5348, ENGR 3341
and knowledge of C/C ++. (3-0) R
CE 7325 (EECT 7325) Advanced VLSI Design (3 semester 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 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/EECT 6325 and knowledge
of programming in C. (3-0) T
CE 7V80 Special Topics in Computer Engineering (1-6 semester hours) For letter grade credit only. (May be
repeated to a maximum of 9 hours.) ([1-6]-0) S
CE 8V40 Individual Instruction in Computer Engineering (1-6 semester hours) (May be repeated for credit.) For
pass/fail credit only. ([1-6]-0) R
CE 8V70 Research in Computer Engineering (3-9 semester hours) (May be repeated for credit) for
pass/fail credit only. ([3-9]-0) R
CE 8V98 Thesis
(3-9 semester hours) (May be repeated for credit.) For pass/fail credit only.
([3-9]-0) S
CE 8V99 Dissertation
(1-9 semester hours) (May be repeated for credit.) For pass/fail credit only.
([1-9]-0) S