Computer Science Course Descriptions
CS 5301 (EEGR 5301) Professional and Technical Communication (3 semester hours) CS 5301 utilizes an integrated approach
to writing and speaking for the technical professions. The advanced writing components of the course
focus on writing professional quality technical documents such as proposals,
memos, abstracts, reports, letters, emails, etc. The advanced oral communication components of
the course focus on planning, developing, and delivering dynamic, informative
and persuasive presentations. Advanced
skills in effective teamwork, leadership, listening, multimedia and computer
generated visual aids are also emphasized.
Graduate students will have a successful communication experience
working in a functional team environment using a real time, online learning
environment. (3-0) Y
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
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 5336 Programming Projects in Java (3 semester hours) Overview of the object-oriented
philosophy. Implementation of
object-oriented designs using the Java programming environment. Emphasis on using the browser to access and
extend the Java class library.
Prerequisite: CS 5303 or equivalent experience. (3-0) R
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
CS 5349 Automata Theory (3 semester hours) Deterministic and nondeterministic finite automata;
regular expressions, regular sets, context-free grammars, pushdown automata,
context free languages. Selected topics
from Turing Machines and undecidability.
Prerequisite: CS 5333. (3-0) S
CS 5354 (CE 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
CS 5375 Principles of UNIX (3 semester hours) Design and history of the UNIX operating system. Detailed study of process and file system
data structures. Shell programming in UNIX.
Use of process-forking functionality of UNIX to simplify complex
problems. Interprocess communication and
coordination. Device drivers and streams as interfaces to hardware
features. TCP/IP and other UNIX
inter-machine communication facilities.
Prerequisite: CS 3335. (3-0) S
CS 5390 Computer Networks (3 semester hours) The design and analysis of protocols for computer
networking. Topics include: network
protocol design and composition via layering, contention resolution in
multi-access networks, routing metrics and optimal path searching, traffic
management, global network protocols; dealing with heterogeneity and
scalability. Prerequisite: CS 5343.
(3-0) S
CS 5V71 Cooperative Education (1-3 semester hours) Placement in a faculty-supervised work
environment in industry or government.
Sites may be local or out-of-state.
The cooperative education program provides exposure to a professional
working environment, application of theory to working realities, and an
opportunity to test skills and clarify goals.
Experience gained may also serve as a work credential after graduation.
(May be repeated to a maximum of 9 credit hours.) Departmental approval is
required. ([1-3]-0) S
CS 5V81 Special Topics in Computer Science (1-9 semester hours) Selected topics in Computer Science.
(May be repeated to a maximum of 9 credit hours.) ([1-9]-0) S
CS 6301 Special Topics in
Computer Science(3 semester hours) Topics will vary. (May be repeated for
credit) (3-0) S
CS 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 in
computers: pipelining, instruction level parallelism, memory hierarchies, and
input/output. Students will undertake a
major computing system analysis and design project. Prerequisite: CS 3340, CS 4341 and C/C ++.
(3-0) Y
CS 6320 Natural Language Processing (3 semester hours) This course covers state-of-the-art
methods for natural language processing.
After an introduction to the basics of syntax, semantic, and discourse
analysis, the focus shifts to the integration of these modules into
natural-language processing systems. In
addition to natural language understanding, the course presents advanced
material on lexical knowledge acquisition, natural language generation, machine
translation, and parallel processing of natural language. Prerequisite: CS
5343. (3-0) Y
CS 6321 Discourse Processing (3 semester hours) Introduction to discourse processing from
natural language texts. Automatic
clustering of utterances into coherent units (segments) with hierarchical
structures. State-of-the-art research in
textual cohesion, coherence, and discourse understanding. Included topics are anaphoric reference and
ellipsis, notion of textual context, and relationship between tense, aspect,
and discourse states. Prerequisite: CS
6320 or consent of the instructor. (3-0) T
CS 6322 Information Retrieval (3 semester hours) This course covers modern techniques for
storing and retrieving unformatted textual data and providing answers to
natural language queries. Current
research topics and applications of information retrieval in data mining, data
warehousing, text mining, digital libraries, hypertext, multimedia data, and
query processing are also presented.
Prerequisite: CS 5343. (3-0) Y
CS 6324 (CE 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
CS 6325 Introduction to Bioinformatics (3 semester hours) The course provides a broad overview of
the bioinformatics field. Comprehensive
introduction to molecular biology and molecular genetics for a program of study
in bioinformatics. Discussion of
elementary computer algorithms in biology (e.g., sequence alignment and gene
finding). Biological databases, data
analysis and management. Prerequisite: Knowledge equivalent to CS 2302. (3-0) T
CS 6333 Algorithms in Computational Biology (3 semester hours) The principles of algorithm design for
biological datasets, and analysis of influential problems and techniques. Biological sequence analysis, gene finding,
RNA folding, protein folding, sequence alignment, genome assembly, comparative
genomics, phylogenetics, clustering algorithms.
Prerequisite: CS 6325. (3-0) S
CS 6348 Data and Applications Security (3 semester hours) The course will teach principles,
technologies, tools and trends for data and applications security. Topics to be
covered include: confidentiality, privacy and trust management; secure
databases; secure distributed systems; secure multimedia and object systems;
secure data warehouses; data mining for security applications; assured
information sharing; secure knowledge management; secure collaboration; secure
digital libraries; trustworthy semantic web; biometrics; digital forensics;
secure e-commerce; secure sensor information management and secure social
networks. Students will take one system or application and develop a secure version
of that system or application for the programming project. Prerequisite: CS
5343 (3-0) Y
CS 6349 Network Security (3 semester hours) This course covers theoretical and practical aspects
of network security. The topics include use of cryptography for building secure
communication protocols and authentication systems; security handshake
pitfalls, Kerberos and PKI, security of TCP/IP protocols including IPsec, BGP
security, VPNs, IDSes, firewalls, and anonymous routing; security of TCP/IP
applications; wireless LAN security; denial-of-service defense. Students are
required to do a programming project building a distributed application with
certain secure communication features and required to participate in several
network security lab exercises and cyber war games. Prerequisite: CS 5390 (3-0)
Y
CS 6352 (CE 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
CS 6353 (CE 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
CS 6354 (CE 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
CS 6356 (SE 6356, SYSM 6308) Software Maintenance, Evolution,
and Re-Engineering (3 semester hours)
Principles and techniques of software maintenance. Impact of software development process on
software justifiability, maintainability, evolvability, and planning of release
cycles. Use of very high-level languages
and dependencies for forward engineering and reverse engineering. Achievements,
pitfalls, and trends in software reuse, reverse engineering, and
re-engineering. Prerequisite: CE/CS/SE
5354. (3-0) Y
CS 6359 (SE 6359) Object-Oriented Analysis and Design (3 semester hours) Analysis and practice of modern tools and
concepts that can help produce software that is tolerant of change. Consideration of the primary tools of
encapsulation and inheritance.
Construction of software-ICs which show the parallel with hardware
construction. Prerequisites: CE/CS/SE
5354 and either CS 3335 or CS 5336.
(3-0) S
CS 6360 (SE 6360) Database Design (3 semester hours) Methods, principles, and concepts that
are relevant to the practice of database software design. Database system
architecture; conceptual database models; relational and object-oriented databases;
database system implementation; query processing and optimization; transaction
processing concepts, concurrency, and recovery; security. Prerequisite: CS 5343. (3-0) S
CS 6361 (SE 6361, SYSM 6309) Advanced Requirements
Engineering (3 semester hours) System
and software requirements engineering.
Identification, elicitation, modeling, analysis, specification,
management, and evolution of functional and non-functional requirements. Strengths and weaknesses of different
techniques, tools, and object-oriented methodologies. Interactions and trade-offs among hardware,
software, and organization. System and
sub-system integration with software and organization as components of complex,
composite systems. Transition from
requirements to design. Critical issues
in requirements engineering.
Prerequisite: CE/CS/SE 5354. (3-0) S
CS 6362 (SE 6362) Advanced Software Architecture and Design (3 semester hours) Concepts and methodologies for the
development, evolution, and reuse of software architecture and design, with an
emphasis on object-orientation. Identification, analysis, and synthesis of
system data, process, communication, and control components. Decomposition, assignment, and composition of
functionality to design elements and connectors. Use of non-functional requirements for
analyzing trade-offs and selecting among design alternatives. Transition from requirements to software
architecture, design, and to implementation.
State of the practice and art.
Prerequisite: CE/CS/SE 5354. (3-0) S
CS 6363 (CE 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
CS 6364 Artificial Intelligence (3 semester hours) Design of machines that exhibit
intelligence. Particular topics include:
representation of knowledge, vision, natural language processing, search, logic
and deduction, expert systems, planning, language comprehension, machine
learning. Prerequisite: CS 5343. (3-0) Y
CS 6365 Data and Text Mining for Computational Biology (3 semester hours) The course introduces data and text
mining as practiced currently in the bioinformatics field. Major topics include: sequence alignment for
determining similarity between proteins and genes; properties of similarities
and distances; genomic, proteomic, and text databases in the real world;
finding patterns (motifs) in genes and proteins; differentiating between valid
patterns and noise; classification; clustering and its application to
phylogenetic trees; and selected topics from text mining. Prerequisite: CS 6325. (3-0) Y
CS 6366 Computer Graphics (3 semester hours) Device and logical coordinate systems. Geometric transformations in two and three
dimensions. Algorithms for basic 2-D
drawing primitives, such as Brensenham's algorithm for lines and circles,
Bezier and B-Spline functions for curves, and line and polygon clipping
algorithms. Perspectives in 3-D, and
hidden-line and hidden-face elimination, such as Painter's and Z-Buffer
algorithms. Fractals and the Mandelbrot
set. Prerequisites: CS 5330, CS 5343,
and MATH 2418 (linear algebra). (3-0) Y
CS 6367 (CE 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
CS 6368 Telecommunication Network Management (3 semester hours) In-depth study of network management
issues and standards in telecommunication networks. OSI management protocols including CMIP,
CMISE, SNMP, and MIB. ITU's TMN
(Telecommunication Management Network) standards, TMN functional architecture
and information architecture. NMF
(Network Management Forum) and service management, service modeling and network
management API. Issues of
telecommunication network management in distributed processing environment.
Prerequisite: One of CS 5390, CS 6390, CS 6385 or equivalent. (3-0) Y
CS 6369 Complexity of Combinatorial Algorithms (3 semester hours) Topics include bounded reducibility and
completeness, approximation algorithms and heuristics for NP-hard problems,
randomized algorithms, additional complexity classes. Prerequisite: CS 6363. (3-0) T
CS 6371 Advanced Programming Languages (3 semester hours) Functional programming, Lambda calculus,
logic programming, abstract syntax, denotational semantics of imperative
languages, fixpoints semantics, verification of programs, partial evaluation,
interpetation and automatic compilation, axiomatic semantics, applications of
semantics to software engineering. Prerequisites: CS 5343, CS 5349. (3-0) S
CS 6373 Intelligent Systems (3 semester hours) Logical formalizations of knowledge for the purpose of
implementing intelligent systems that can reason in a way that mimics human
reasoning. Topics include: syntax and
semantics of common logic, description logic, modal epistemic logic; reasoning
about uncertainties, beliefs, defaults and counterfactuals; reasoning within
contexts; implementations of knowledge base and textual inference reasoning
systems; and applications. Prerequisite:
CS 5343. (3-0) Y
CS 6374 Computational Logic (3 semester hours) Methods and algorithms for the solution of logic
problems. Topics include problem formulation
in first order logic and extensions, theorem proving algorithms, polynomially
solvable cases, logic programming, and applications. Prerequisites: CS 5343, and knowledge of C.
(3-0) Y
CS 6375 Machine Learning (3 semester hours) Algorithms for training perceptions and multi-layer
neural nets: back propagation, Boltzmann machines, and self-organizing nets.
The ID3 and the Nearest Neighbor algorithms. Formal models for analyzing
learnability: exact identification in the limit and probably approximately correct
(PAC) identification. Computational limitations of learning machines.
Prerequisite: CS 5343. (3-0) Y
CS 6376 Parallel Processing (3 semester hours) Topics include parallel machine models, parallel
algorithms for sorting, searching and matrix operations. Parallel graph
algorithms. Selected topics in parallel
processing. Prerequisite: CS 6363. (3-0) T
CS 6377 Introduction to Cryptography (3 semester hours) This course covers the basic aspects of
modern cryptography, including block ciphers, pseudorandom functions, symmetric
encryption, Hash functions, message authentication, number-theoretic
primitives, public-key encryption, digital signatures and zero knowledge
proofs. Prerequisites: CS 5333 and CS
5343. (3-0) T
CS 6378 (CE 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;
knowledge of C and UNIX. (3-0) S
CS 6379 Biological Database Systems and Data Mining (3 semester hours) Relational data models and database
management systems; theories and techniques of constructing relational
databases to store biological data, including sequences, structures, genetic
linkages and maps, and signal pathways.
Introduction to a relational database query language (SQL) with emphasis
on answering biologically important questions.
Summary of current biological databases.
Data integration from various sources and security. Novel data mining
methods in bioinformatics with an emphasis on protein structure prediction,
homology search, genomic sequence analysis, gene finding and gene mapping. Future directions for biological database
development. Prerequisites: BIOL6373/BMEN 6391, BIOL 5381, and CS 5343 or
consent of the instructor. (3-0) T
CS 6380 (CE 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
CS 6381 Combinatorics and Graph Algorithms (3 semester hours) Fundamentals of combinatorics and graph
theory. Combinatorial optimization,
optimization algorithms for graphs (max flow, shortest routes, Euler tour,
Hamiltonian tour). Prerequisites: CS
5343, CS 6363. (3-0) T
CS 6382 Theory of Computation (3 semester hours) Formal models of computation. Recursive
function theory. Undecidability and
incompleteness. Selected topics in
theory of computation. Prerequisite:
Consent of Instructor. (3-0) Y
CS 6383 Computational Systems Biology (3 semester hours) The course will provide a system-level
understanding of biological systems by analyzing biological data using
computational techniques. The major
topics include: computational inference of biological networks (regulatory,
protein interactions, and metabolic) and the effects of biological networks in
cellular processes, development, and disease. (3-0) T
CS 6384 Computer Vision (3 semester hours) Algorithms for extracting information from digital
pictures. Particular topics include:
analysis of motion in time varying image sequences, recovering depth from a
pair of stereo images, image separation, recovering shape from textured images
and shadows, object matching techniques, model based recognition, the Hough
transform. Prerequisite: CS 5343. (3-0) Y
CS 6385 (TE 6385) Algorithmic Aspects of Telecommunication
Networks (3 semester hours) This is
an advanced course on topics related to the design, analysis, and development
of telecommunications systems and networks.
The focus is on the efficient algorithmic solutions for key problems in
modern telecommunications networks, in centralized and distributed models. Topics include: main concepts in the design
of distributed algorithms in synchronous and asynchronous models, analysis
techniques for distributed algorithms, centralized distributed solutions for
handling design and optimization problems concerning network topology,
architecture, routing, survivability, reliability, congestion, dimensioning and
traffic management in modern telecommunication networks. Prerequisites: CS 5343, CS 5348, and TE 3341
or equivalents. (3-0) Y
CS 6386 Telecommunication Software Design (3 semester hours) Programming with sockets and remote
procedure calls, real time programming concepts and strategies. Operating system design for real time
systems. Encryption, file compression,
and implementation of fire walls. An
in-depth study of TCP/IP implementation.
Introduction to discrete event simulation of networks. Prerequisites: CS
5390. (3-0) Y
CS 6387 (SE 6387) Advanced Software Engineering Project (3 semester hours) This course is intended to provide
experience in a group project that requires advanced technical solutions, such
as distributed multi-tier architectures, component-based technologies,
automated software engineering, etc., for developing applications, such as
web-based systems, knowledge-based systems, real-time systems, etc. The
students will develop and maintain requirements, architecture and detailed
design, implementation, and testing and their traceability relationships. Best
practices in software engineering will be applied. Prerequisites: CS/SE 6361 or
SYSM 6309, and CS/SE 6362. Corequisite: CE/CS/SE 6367 or SYSM 6310. (3-0) S
CS 6388 (SE 6388) Software Project Planning and Management (3 semester hours) Techniques and disciplines for successful
management of software projects. Project planning and contracts. Advanced cost estimation models. Risk management process and activities. Advanced scheduling techniques. Definition,
management, and optimization of software engineering processes. Statistical
process control. Software configuration
management. Capability Maturity Model
Integration (CMMI). Prerequisite:
CE/CS/SE 5354. (3-0) Y
CS 6389 (SE 6389) Formal Methods and Programming Methodology (3 semester hours) Formal techniques for building highly
reliable systems. Use of abstractions
for concisely and precisely defining system behavior. Formal logic and proof techniques for
verifying the correctness of programs. Hierarchies of abstractions, state
transition models, Petri Nets, communicating processes. Operational and definitional specification
languages. Applications to
reliability-critical, safety-critical, and mission-critical systems, ranging
from commercial computer communication systems to strategic command control
systems. Prerequisite: CE/CS/SE 5354.
(3-0) Y
CS 6390 (CE 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
CS 6391 Optical Networks (3 semester hours) Enabling technologies for optical networks. Wavelength-division multiplexing.
Broadcast-and-select optical networks. Wavelength-routed optical networks.
Virtual topology design. Routing and wavelength assignment. Network control and
management. Protection and restoration. Wavelength conversion. Traffic
grooming. Photonic packet switching. Optical burst switching. Survey of recent
advances in optical networking. Prerequisite: CS 5390 AND one of CS 6352, CS
6385, CS 6390. (3-0) Y
CS 6392 (CE 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
CS 6393 Advanced Algorithms in Biology (3 semester hours) Recent advanced topics in algorithms in
biology will be discussed. Topics will
be chosen from: sorting and transformational operations on strings and
permutations, structural analysis of proteins, pooling design and nonadaptive
group testing, approximation algorithms, and complexity issues. Prerequisites: CS 6363 and CS 6325. (3-0) Y
CS 6394 Digital Telephony (3 semester hours) Introduction and overview emphasizing the advantages
of digital voice networks. Voice
digitization. Digital transmission, multiplexing, and switching. Rearrangeable switching networks. Digital modulation for radio systems. Network operation issues: synchronization,
control; integration of voice and data, packet switching and traffic analysis.
(3-0) Y
CS 6395 Speech Recognition, Synthesis, and Understanding (3 semester hours) Basic speech processing techniques: isolated
word recognition using dynamic time warping, acoustic modeling using hidden
Markov models, statistical language modeling, search algorithms in large
vocabulary continuous speech recognition, components in text-to-speech systems,
architecture and components in spoken dialog systems. Prerequisite: CS 5343. (3-0) T
CS 6396 (CE 6308 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
CS 6397 (CE 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)
T
CS 6398 (CE 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
CS 6399 (CE 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
CS 6V81 Independent Study in Computer Science (1-9 semester hours) Topics vary from semester to
semester. May be repeated for credit as
topics vary. ([1-9]-0) S
CS 7301 (SE 7301) Recent Advances in Computing (3 semester hours) Advanced topics and publications will be
selected from the theory, design, and implementation issues in computing. May be repeated for credit as topics
vary. Prerequisite: Consent of the
instructor. (3-0) Y
CS 8V02 Topics in Computer Science (1-6 semester hours) (May be repeated to a maximum of 9
hours.) ([1-6]-0) S
CS 8V07 Research
(1-9 semester hours) Open to students with advanced standing subject to
approval of the graduate adviser. May be repeated for credit (9 hours maximum).
([1-9]-0) S
CS 8V98 Thesis
(3-9 semester hours) (May be repeated for credit.) ([3-9]-0) S
CS 8V99 Dissertation
(1-9 semester hours) (May be repeated for credit) ([1-9]-0) S
Software Engineering Course Descriptions
SE 5354 (CE 5354, CS 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
CE/CS/SE 5354) (3-0) S
SE 5V81 Special Topics in Computer Science (1-9 semester hours) Selected topics in Computer Science.
(May be repeated to a maximum of 9 credit hours.) ([1-9]-0) S
SE 6301 Special Topics in Software Engineering (3 semester hours) Topics will vary. (May be repeated for
credit) (3-0) S
SE 6354 (CE 6354, CS 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
SE 6356 (CS 6356, SYSM 6308) Software Maintenance, Evolution,
and Re-Engineering (3 semester hours)
Principles and techniques of software maintenance. Impact of software development process on
software justifiability, maintainability, evolvability, and planning of release
cycles. Use of very high-level languages
and dependencies for forward engineering and reverse engineering. Achievements,
pitfalls, and trends in software reuse, reverse engineering, and
re-engineering. Prerequisite: CE/CS/SE
5354. (3-0) Y
SE 6357 Software Quality Assurance and Metrics (3 semester hours) Concepts of the pervasive system
attributes: reliability, efficiency, maintainability, reusability, etc. Software complexity and measures. Software process measures, product measures
and resource measure. Validation of
software measures. Software measures and
measurement theory. Measuring,
monitoring and controlling reliability.
Supporting tools. Prerequisite:
CE/CS/SE 5354. (3-0) Y
SE 6359 (CS 6359) Object-Oriented Analysis and Design (3 semester hours) Analysis and practice of modern tools and
concepts that can help produce software that is tolerant of change. Consideration of the primary tools of
encapsulation and inheritance. Construction of software-ICs which show the
parallel with hardware construction.
Prerequisites: CE/CS/SE 5354 and either CS 3335 or CS 5336. (3-0) S
SE 6360 (CS 6360) Database Design (3 semester hours) Methods, principles, and concepts that
are relevant to the practice of database software design. Database system
architecture; conceptual database models; relational and object-oriented
databases; database system implementation; query processing and optimization;
transaction processing concepts, concurrency, and recovery; security. Prerequisite: CS 5343. (3-0) S
SE 6361 (CS 6361, SYSM 6309) Advanced Requirements
Engineering (3 semester hours) System
and software requirements engineering.
Identification, elicitation, modeling, analysis, specification, management,
and evolution of functional and non-functional requirements. Strengths and weaknesses of different
techniques, tools, and object-oriented methodologies. Interactions and trade-offs among hardware,
software, and organization. System and
sub-system integration with software and organization as components of complex,
composite systems. Transition from
requirements to design. Critical issues
in requirements engineering.
Prerequisite: CE/CS/SE 5354. (3-0) S
SE 6362 (CS 6362) Advanced Software Architecture and Design (3 semester hours) Concepts and methodologies for the
development, evolution, and reuse of software architecture and design, with an
emphasis on object-orientation. Identification, analysis, and synthesis of
system data, process, communication, and control components. Decomposition, assignment, and composition of
functionality to design elements and connectors. Use of non-functional requirements for
analyzing trade-offs and selecting among design alternatives. Transition from requirements to software
architecture, design, and to implementation.
State of the practice and art.
Prerequisite: CE/CS/SE 5354. (3-0) S
SE 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
SE 6387 (CS 6387) Advanced Software Engineering Project (3 semester hours) This course is intended to provide
experience in a group project that requires advanced technical solutions, such
as distributed multi-tier architectures, component-based technologies,
automated software engineering, etc., for developing applications, such as
web-based systems, knowledge-based systems, real-time systems, etc. The
students will develop and maintain requirements, architecture and detailed
design, implementation, and testing and their traceability relationships. Best
practices in software engineering will be applied. Prerequisites: CS/SE 6361 or
SYSM 6309, and CS/SE 6362. Corequisite: CE/CS/SE 6367 or SYSM 6310. (3-0) S
SE 6388 (CS 6388) Software Project Planning and Management (3 semester hours) Techniques and disciplines for successful
management of software projects. Project planning and contracts. Advanced cost estimation models. Risk management process and activities. Advanced scheduling techniques. Definition,
management, and optimization of software engineering processes. Statistical
process control. Software configuration
management. Capability Maturity Model
Integration (CMMI). Prerequisite:
CE/CS/SE 5354. (3-0) Y
SE 6389 (CS 6389) Formal Methods and Programming Methodology (3 semester hours) Formal techniques for building highly
reliable systems. Use of abstractions
for concisely and precisely defining system behavior. Formal logic and proof techniques for
verifying the correctness of programs.
Hierarchies of abstractions, state transition models, Petri Nets,
communicating processes. Operational and definitional specification
languages. Applications to
reliability-critical, safety-critical, and mission-critical systems, ranging
from commercial computer communication systems to strategic command control
systems. Prerequisite: CE/CS/SE 5354.
(3-0) Y
SE 6V81 Independent Study in Software Engineering (1-9 semester hours) Topics vary from semester to
semester. May be repeated for credit as
topics vary. ([1-9]-0) S
SE 7301 (CS 7301) Recent Advances in Computing (3 semester hours) Advanced topics and publications will be
selected from the theory, design, and implementation issues in computing. May be repeated for credit as topics
vary. Prerequisite: Consent of the
instructor. (3-0) Y
SE 8V02 Topics in Software Engineering (1-6 semester hours) (May be repeated to a maximum of 9
hours.) ([1-6]-0) S
SE 8V07 Research
(1-9 semester hours) Open to students with advanced standing subject to
approval of the graduate adviser. May be
repeated for credit (9 hours maximum). ([1-9]-0) S
SE 8V98 Thesis
(3-9 semester hours) (May be repeated for credit.) ([3-9]-0) S
SE 8V99 Dissertation
(1-9 semester hours) (May be repeated for credit.) ([1-9]-0) S