|
| |
Software Engineering Course Descriptions
SE 2370 Mathematical Foundations of Software
Engineering (3 semester hours) Fundamentals of logic, Boolean Logic, First-Order
logic, Models of First-order logic. Completeness Theorem. Regular expressions,
regular sets and finite-state machines. Fundamentals of Graph Theory, basic
graph algorithms. Statecharts, Petri Nets. Prerequisite: CS 2305. (3-0) S
SE 2V95 Individual Instruction in Computer Science/Software Engineering (1-6
semester hours) Individual study under a faculty member’s direction. May be
repeated for credit. Consent of
instructor required. (Same as CS 2V95) ([1-6]-0) R
SE 3195 Special Topics in Computer Science/Software Engineering (1 semester
hour) May be repeated for credit (4 hours maximum). Must be taken Credit/No
Credit. Consent of instructor required. (Same as CS 3195) (1-0) R
SE 3341 Probability and Statistics in Computer Science (3 semester hours)
Axiomatic
probability theory. Calculation of probabilities of compound events, with
illustrations from Computer Science examples. Random variables. Synthesis of
important random variables from Computer Science-related random
experiments–binomial, geometric, multinomial, Poisson, exponential, and related
distribtions. Expectation. Important functions of random variables and
evaluation of distributions of
functions. Generation of random numbers of various distributions, starting from
the standard uniformrandom number generators. Sums of independent random variables. Convolution and
the use of
transforms in simple cases involving exponential and Poisson random variables.
Illustrative examples and simulation exercises from queuing, reliability, and
program analysis disciplines. Elements of parameter (point) estimation.
Prerequisites: MATH 1326 or MATH 2419, and CS 2305. (Same as CS 3341) (3-0) S
SE 3345 Algorithm Analysis and Data Structures (3 semester hours) Metrics for
performance evaluation of algorithms. Formal treatment of basic data structures
such as arrays, stacks, queues, lists, trees. Various sorting and searching
techniques. Fundamental graph algorithms. Prerequisites: CS 2315, and one of CS
3305 or SE 2370. (Same as CS 3345) (3-0) S
SE 3354 Software Engineering (3 semester hours) Introduction to software life
cycle models. Software requirements engineering, formal specification and
validation. Techniques for software design and testing. Cost estimation models.
Issues in software quality assurance and software maintenance. Prerequisites: CS
2315 or CS 3333, and CS 2305. (Same as CS 3354) (3-0) S
SE 3V95 Undergraduate Topics in Computer Science/Software Engineering (2-9
semester hours) Subject matter will vary from semester to semester. May be
repeated for credit (9 hours maximum). (Same as CS 3V95) ([2-9]-0) S
SE 4340 Computer Architecture (3 semester hours) Boolean algebra and logic
circuits; register
transfer operations; design of a small computer; input, output, and interrupt
organization; powerful addressing modes, instruction formats, and their hardware
structures; microprogram control. Prerequisite: CS 2305 or TE 3307. (Same as CS
4340) (3-0) S
SE 4347 Database Systems (3 semester hours) This course emphasizes the concepts
and structures necessary for the design and implementation of database
management systems. Topics include data
models, data normalization, data description languages, query facilities, file
organization, index
organization, file security, data integrity, and reliability. Prerequisite:
CS/SE 3345. (Same as CS 4347)
(3-0) Y
SE 4348 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, and an introduction to critical sections and deadlocks.
Prerequisites: CS 4340, one of CS/SE 3345 or TE 3346, and a working knowledge of
C and UNIX. (Same as CS 4348) (3-0) S
SE 4351 Requirements Engineering (3 semester hours) Introduction to system and
software requirements engineering. The requirements engineering process,
including requirements elicitation,
specification, and validation. Essential words and types of requirements.
Structural, informational, and behavioral requirements. Non-functional
requirements. Scenario analysis. Conventional, object-oriented and goal-oriented
methodologies. Prerequisites: SE 2370, CS/SE 3354 or consent of instructor.
(3-0) S
SE 4352 Software Architecture and Design (3 semester hours) Introduction to
software design with emphasis on architectural design. Models of software
architecture. Architecture styles and patterns, including explicit,
event-driven, client-server, and middleware architectures. Decomposition and
composition of architectural components and interactions. Use of non-functional
requirements for
tradeoff analysis. Component based software development, deployment and
management. Prerequisites: SE 2370, CS/SE 3354 or consent of instructor. (3-0) S
SE 4367 Software Testing, Verification, Validation and Quality Assurance (3
semester hours). Methods for evaluating software for correctness, and
reliability including code inspections, program proofs and testing
methodologies. Formal and informal proofs of correctness. Code inspections and
their role in software verification. Unit and system testing techniques, testing
tools and limitations of testing. Statistical testing, reliability models.
Prerequisites: SE 2370, CS/SE 3354 or consent of instructor.
(3-0)
SE 4376 Object-Oriented Programming Systems (3 semester hours) In-depth study of
the
features/advantages of object-oriented approach to problem solving. Special
emphasis on issues of object-oriented analysis, design, implementation, and
testing. Review of basic concepts of object-oriented
technology (abstraction, inheritance, and polymorphism). Object-oriented
programming languages,
databases, and productivity tools. Prerequisite: CS 2315 (C/C++) or CS 3333 or
CS 3335 or equivalent programming experience, including knowledge of C++. (Same
as CS 4376) (3-0) S
SE 4385 Software Engineering Project (3 semester hours) This course is intended
to complement the theory and to provide an in-depth, hands-on experience in all
aspects of software engineering. The
students will work in teams on projects of interest to industry and will be
involved in analysis of
requirements, architecture and design, implementation, testing and validation,
project management, software process, software maintenance, and software
re-engineering. Prerequisites: SE 4351, SE 4352, SE 4367 (3-0) S
SE 4399 Senior Honors in Computer Science/Software Engineering (3 semester
hours) For students conducting independent research for honors theses or
projects. (Same as CS 4399) (3-0) R
SE 4V95 Undergraduate Topics in Computer Science/Software Engineering (1-9
semester hours) Subject matter will vary from semester to semester. May be used
as CS Guided Elective on CS degree plans. May be repeated for credit (9 hours
maximum). (Same as CS 4V95) ([1-9]-0) R
|