CS 5301 (EE 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) S
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) S
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 5335 Programming Projects in C and
C++ (3 semester hours) Numerous programming projects in both C and C++. All
fundamentals of C, with special emphasis on use of pointers. Use of C++
extensions to create and extend (by inheritance) abstract data types. The
use/advantages of virtual functions (dynamic polymorphism). Prerequisites: CS
5303 and CS 5330 or equivalent experience. (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) Y
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) An introduction to fundamental concepts in operating
systems, their design, implementation, and usage. Topics include: process
management, main memory management, virtual memory, I/O and device drivers,
file systems, secondary storage management, introduction to critical sections
and deadlocks. Prerequisites: CS 5330 and CS 5343 (may be taken concurrently)
and a working knowledge of C and Unix. (3-0) S
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 5335. (3-0) S
CS 5390 Computer Networks (3
semester hours) The design and analysis of computer networks. Topics include:
the OSI reference model, transmission media, medium-access protocols, LANs,
data link protocols, routing, congestion control, internetworking, and
connection management. 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, EE 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 4320, 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 6351 Computer Systems Design (3
semester hours) Design of instruction sets, memory addressing modes,
interleaved memory, cache memory design. Instruction pipelines, techniques for
removing dependency delays. Computer bus systems and interfaces for various
input/output device types. Pipelined and parallel functional units and their
associated code generation algorithms. RISC architectures, support of high
level languages, data flow machines, functional languages, lazy evaluation and
graph reduction machines. Prerequisite: CS 6349. (3-0) T
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: CS 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: CS 5354. (3-0) Y
CS 6357 (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 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: CS 5354 and either CS 5335 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) 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 5354.
(3-0) S
CS 6362 (SE 6362) 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
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 6366 Computer Graphics (3
semester hours) Geometric models of two- and three-dimensional objects and
curved surfaces. Transformations in two and three dimensions. Clipping
algorithms. Homogeneous coordinates. Hidden line and surface elimination
algorithms: depth buffer, priority, polygon and others. Raster graphics
systems. Scan line conversion algorithms, color and gray scale resolution and
aliasing problems. Shading, rendering and special effects. Curved surface
modeling. Bezier and B-spline functions. Review of current developments.
Prerequisites: CS 5330, CS 5343, and linear algebra. (3-0) Y
CS 6367 (CE 6367, SE 6367) Software
Testing, Validation, and Verification (3 semester hours) Methods for
evaluating software for correctness, performance and reliability including code
inspections, program proofs and testing methodologies. Formal and informal
proofs of correctness. Code walkthroughs, code inspections and their role in
software verification. Unit and system testing techniques, testing tools and
limitations of testing. Statistical testing, reliability models and performance
measurement techniques. Prerequisite: CS 5354. (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 6370 (SE 6370) Information Systems
Engineering (3 semester hours) Study of characteristics, analysis and
synthesis of information systems in industrial, business, and governmental
organizations. Building conventional information systems through requirements
modeling and analysis, design, and implementation. Approaches and issues in
engineering and re-engineering intelligent, cooperative, and distributed
information systems. Prerequisite: CS 6360. (3-0) Y
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 6378 (CE 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: BIOL 5373, 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 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 (SE 6387) Computer-Aided
Software Engineering (3 semester hours) Tools for development, maintenance,
evolution and reuse of software. Development, selection, use, and management of
such tools. Traditional and emerging methodologies, including structured
systems methodologies and knowledge-based approaches to software development.
Opening and closing CASEs: benefits, pitfalls, and critical issues.
Prerequisite: CS 5354. (3-0) Y
CS 6388 (SE 6388) Software Project
Planning and Management (3 semester hours) Techniques and disciplines for
successful management of software projects. Planning, scheduling, tracking,
cost and size estimation, risk management, configuration management and version
control. Identification, definition, management, and optimization of software
engineering processes. Benefits and pitfalls of both conventional and emerging
technologies. Prerequisite: CS 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: CS 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 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 6396 (CE 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, task assignment and scheduling, real-time communication, case
studies of real-time operating systems. Prerequisite: CS 5348 or equivalent.
(3-0) Y
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, EE 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) T
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. ([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 (3-9
semester hours) (May be repeated for credit.) ([3-9]-0) S
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 CS 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: CS 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 5354. (3-0) Y
SE 6357 (CS 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: 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: 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 5343. (3-0) S
SE 6361 (CS 6361) 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: SE 5354. (3-0) S
SE 6362 (CS 6362) 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: SE
5354. (3-0) S
SE 6367 (CE 6367, CS 6367)
Software Testing, Validation, and Verification (3 semester hours) Methods
for evaluating software for correctness, performance and reliability including
code inspections, program proofs and testing methodologies. Formal and informal
proofs of correctness. Code walkthroughs, code inspections and their role in software
verification. Unit and system testing techniques, testing tools and limitations
of testing. Statistical testing, reliability models and performance measurement
techniques. Prerequisite: CS 5354. (3-0) Y
SE 6370 (CS 6370) Information Systems
Engineering (3 semester hours) Study of characteristics, analysis and
synthesis of information systems in industrial, business, and governmental
organizations. Building conventional information systems through requirements
modeling and analysis, design, and implementation. Approaches and issues in
engineering and re-engineering intelligent, cooperative, and distributed
information systems. Prerequisite: CS 6360. (3-0) Y
SE 6387 (CS 6387) Computer-Aided
Software Engineering (3 semester hours) Tools for development, maintenance,
evolution and reuse of software. Development, selection, use, and management of
such tools. Traditional and emerging methodologies, including structured
systems methodologies and knowledge-based approaches to software development.
Opening and closing CASEs: benefits, pitfalls, and critical issues.
Prerequisite: CS 5354. (3-0) Y
SE 6388 (CS 6388) Software Project
Planning and Management (3 semester hours) Techniques and disciplines for
successful management of software projects. Planning, scheduling, tracking,
cost and size estimation, risk management, configuration management and version
control. Identification, definition, management, and optimization of software
engineering processes. Benefits and pitfalls of both conventional and emerging technologies.
Prerequisite: CS 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: CS 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. ([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 (3-9
semester hours) (May be repeated for credit.) ([3-9]-0) S