**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 language (HDL) beginning with
simple examples and describing tools and methodologies. It covers the language,
dwelling on fundamental stimulation 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 vs. CISC, performance calculation. Co-requisite: CS 5303. (3-0)
R

**CS 5333 Discrete Structures** (3 semester hours)
Mathematical foundation 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 and Data
Structures** (3 semester hours) Formal specifications and representation of
lists, arrays, trees, graphs, multi-linked 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) An introduction to fundamental
concepts in operating systems, their design, implementation, and usage. Topics
include: process management, main memory management, virtual memory, I/O and
device drivers, file systems, secondary storage management, introduction to
critical sections and deadlocks. 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. Prerequisites: 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. Prerequisites: 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.
Prerequisites: 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, 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) R

**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. Prerequisite: EE 3320 and
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. Prerequisite: CS 5354 (or equivalent) and
knowledge of Java (3-0) S

**CE 6343 (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 6367) Software Testing 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. Prerequisites: 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 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; Co-requisite:
EECT 6325. (3-0) Y

**CE 6378 (CS 6378, 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, 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 the 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) Y

**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) Y

**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, design for testability, clock distribution and routing
problems, 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 the state-of-the-art practical industrial design examples.
A project related to the development of a prototype CAD tool. Prerequisite:
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

Last Updated: September
12, 2011