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. Corequisite:
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 (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 (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 in computers: pipelining, instruction level parallelism, memory
hierarchies, and input/output. Students will undertake a major computing system
analysis and design project. Prerequisites: EE 2310, EE 4304, 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. (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 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) 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) Advanced Requirements Engineering (3 semester hours)
Critical issues in requirements engineering. Models of requirements engineering
process. Requirements analysis, modeling and
specification. Requirements elicitation. Scenario analysis. Enterprise
modeling. Functional requirements. Structured analysis.
Structural
and behavioral requirements. Non-functional
requirements. Object-oriented, goal-oriented and
agent-oriented methodologies. Formal
techniques. 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 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 and SE 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
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 6361, CS/SE 63562. Co-requisite: CS/SE 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. Corequisite: 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) 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: 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) 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: 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) 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 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, CS/SE 63562. Co-requisite: CS/SE 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