Computer Engineering Course Descriptions Computer Science Courses

advertisement
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. Corequisite: 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. (30) 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. Multiprecision algorithms. The IEEE floating point standard, rounding processes, guard bits, error
accumulation in arithmetic processes. Cordic algorithms. Prerequisites: EE 3320 and C/C++. (30) 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 realtime 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 handson 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. (30) 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. ([39]-0) S
CE 8V99 Dissertation (1-9 semester hours) (May be repeated for credit.) For pass/fail credit
only. ([1-9]-0) S
Download