Computer Science Course Descriptions
CS 5301 (EEGR 5301)
Advanced 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 vs. 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. Co-requisite: 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 (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
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. Prerequisites: 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) The 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 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 2305.
(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 Applications and
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 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. Prerequisite: CE/CS/SE 5354 (or equivalent)
and knowledge of Java. (3-0) S
CS 6356 (SE 6356, SYSM 6356) 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 6361) 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. Software
modeling techniques. Architecture styles and design
patterns. Service-oriented
architecture. Transition from requirements to
software architecture, design, and to implementation. State
of the practice and art. Formal
techniques/languages. 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 Bresenham'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 linear algebra. (3-0) Y
CS 6367 (CE 6367, SE 6367, SYSM 6367)
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. Prerequisites: 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, Interpretation and
Automatic Compilation, Axiomatic Semantics, Applications of semantics to
software engineering. Prerequisite: 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, 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: CS5333 and CS5343. (3-0) T
CS 6378 (CE 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 or
equivalent; knowledge of C and UNIX. (3-0) S
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. Prerequisite: CS
6325. (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 and 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 firewalls. An in-depth study of
TCP/IP implementation. Introduction to
discrete event simulation of networks. Prerequisites: CS
5390. (3-0) Y
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/SYSM 6361, CS/SE -6362.
Co-requisite: CE/CS/SE/SYSM 6367. (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 3354. (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 or equivalent. (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:
CS6363 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) R
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.
Prerequisites: CS5343. (3-0) T
CS 6396 (CE 6308, 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 or equivalent. (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. Prerequisites: 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 (SE 6V81) Special Topics 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 (SE 8V02) Topics in Computer
Science (1-6 semester hours) (May be repeated to a maximum of 9 hours.)
([1-6]-0) S
CS 8V07 (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.
([1-9]-0) S
CS 8V98 (SE 8V98) Thesis (3-9
semester hours) (May be repeated for credit.) ([3-9]-0) S
CS 8V99 (SE 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. Co-requisite: CS 5343
(CS 5343 can be taken before or at the same time as SE 5354). (3-0)
S
SE 5V81 (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
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. Prerequisite: CE/CS/SE 5354 (or equivalent)
and knowledge of Java. (3-0) S
SE 6356 (CS 6356, SYSM 6356) 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: 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 5335 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/SE 5343. (3-0) S
SE 6361 (CS 6361, SYSM 6361) 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: CS/SE 5354. (3-0)
S
SE 6367 (CE 6367, CS 6367, SYSM 6367)
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. Prerequisites: 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/SYSM
6361, CS/SE6362. Co-requisite: CE/CS/SE/SYSM 6367. (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:
CS/SE 3354. (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 (CS 6v81) Special Topics 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
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 (CS 8V02) Topics in Computer
Science (1-6 semester hours) (May be repeated to a maximum of 9 hours.)
([1-6]-0) S
SE 8V07 (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 (9hours
maximum). ([1-9]-0) S
SE 8V98 (CS 8V98) Thesis (3-9
semester hours) (May be repeated for credit.) ([3-9]-0) S
SE 8V99 (CS 8V99) Dissertation (1-9
semester hours) (May be repeated for credit.) ([1-9]-0) S
Last Updated: September
9, 2011