Information Technology - Software Development

List of Courses

ITPG601
ITPG610
ITPG642
ITPG644
ITPG691
SWEB318
SWEB401
SWEB423
SWEB441
SWEB442
SWEB444
SWEB446
SWEB450
SWEB451
SWEB490
SWEB499
SWEB651
SWEB652
SWEB653
SWEB654


* All credit hours are based on the current term, this may vary for previous terms.

ITPG601 - Adv. Design & Analysis of Algo (3 credit hours)
The course starts by reviewing asymptotic notations and growth of Functions (?, O, ? notations), recursion and recurrences. Study of various algorithm design paradigms (divide & conquer, greedy, and dynamic programming); Advanced data structures (B-Trees; Binomial Heaps; Fibonacci Heaps; Data Structures for Disjoint Sets). Complexity Analysis (Polynomial Time; Polynomial Time Verification; NP-Completeness and Reducibility; NP-Completeness Proofs; NP-Complete Problems); Study of some advanced algorithms (selected from the following: Sorting Networks; Algorithms for Parallel Computers; Matrix Operations; Polynomials and FFT; Number-Theoretic Algorithms; String Matching; Computational Geometry; Approximation Algorithms).

Prerequisite:
Corequisite:
Semester: Fall Spring Go To Index


ITPG610 - Advanced Software Engineering (3 credit hours)
Software requirements engineering, component-based software engineering, rapid development processes and techniques, advanced validation and verification methods, configuration management, and other advanced topics in software engineering.

Prerequisite:
Corequisite:
Semester: Spring Go To Index


ITPG642 - Approximation Algorithms (3 credit hours)
Sound techniques for dealing with NP-Hard problems, approximation techniques for a number of different problems, combinatorial algorithms, LP-based algorithms, counting problems, hardness of approximation, open problems.

Prerequisite:
Corequisite:
Semester: Fall Spring Go To Index


ITPG644 - Complex Software systems (3 credit hours)
Complexity; nature and structure of complex systems; impact and pervasiveness of complex systems; methods and technologies for developing highly reliable complex systems; relationship between complex software systems and societalscale systems; conceptual framework; software modeling of societal-scale systems; reference designs and architectures.

Prerequisite:
Corequisite:
Semester: All Go To Index


ITPG691 - Special Topics in Software Eng (3 credit hours)
Architecture of autonomous systems; collaboration architectures; interface theories; complex IT ecosystems; cooperation and coordination infrastructure; self-organized adaptive systems; specification and modeling languages.

Prerequisite:
Corequisite:
Semester: All Go To Index


SWEB318 - User Interface Design (3 credit hours)


Prerequisite:
  1. SWEB315
Corequisite:
Semester: Fall Spring Go To Index


SWEB401 - Reuse & Component-based Develp (3 credit hours)
Methods and techniques for constructing large-scale software systems from preexisting components; Market versus technology; Component standards; What a component is and is not; Components interfaces and re-entrance; Aspects of scale and granularity; Patterns, frameworks, architectures; Reusing design patterns; Common Object Request Broker Architecture (CORBA); Java Beans; Enterprise Java Beans (EJB); Component development; Component distribution, acquisition and assembly. (Prerequisite: SWEB320)

Prerequisite:
  1. SWEB320
Corequisite:
Semester: Fall Spring Go To Index


SWEB423 - SW Test. & Quality Assurance (3 credit hours)
Concepts and techniques for testing software and assuring its quality. Software testing at the unit, module, subsystem, and system levels. Automatic and manual techniques for generating and validating test data. The testing process, static vs. dynamic analysis, functional testing, inspections, and reliability assessment.

Prerequisite:
  1. SWEB300
Corequisite:
Semester: Fall Spring Go To Index


SWEB441 - User Interface Development (3 credit hours)


Prerequisite:
  1. SWEB300
Corequisite:
Semester: All Go To Index


SWEB442 - Concurrent & Distributed SW (3 credit hours)
Study of issues related to the development of concurrent and distributed software; Topics include the theory of concurrency and software distribution; Students will carry out projects using technologies such as threads, communication primitives, and sockets, and higher-level technologies such as remote procedure calls and distributed object middleware technologies.

Prerequisite:
  1. SWEB300
Corequisite:
Semester: All Go To Index


SWEB444 - Software Tools (3 credit hours)
In-depth analysis of the theory, design, and development of tool to support software development; Analysis techniques, integration techniques, construction issues, and incorporation into software development; Students will gain experience in building software development tools.

Prerequisite:
  1. SWEB401
Corequisite:
Semester: All Go To Index


SWEB446 - Web-based Software (3 credit hours)
Theoretical and practical issues in the specification, design and construction of software systems that run on the web. Software construction models, languages, and technologies for the development of web software will be discussed. Students will design and build a web-based software product.

Prerequisite:
  1. SWEB401
Corequisite:
Semester: Fall Spring Go To Index


SWEB450 - Analysis of Algorithms (3 credit hours)
Asymptotic analysis of upper and average complexity bounds; Identifying differences among best, average, and worst case behaviors; Big oh, little oh, omega, and theta notation; Standard complexity classes; Empirical measurements of performance; Time and space tradeoffs in algorithms; Using recurrence relations to analyze recursive algorithms; Algorithmic strategies including brute-force, greedy, divide-and-conquer, backtracking, branch-and-bound, heuristics and pattern matching; Introduction to P and NP. (Prerequisite: ITBP319)

Prerequisite:
  1. ITBP319
Corequisite:
Semester: Fall Spring Go To Index


SWEB451 - Game Development (3 credit hours)


Prerequisite:
  1. ITBP319
Corequisite:
Semester: All Go To Index


SWEB490 - Senior SWE Exhibition (3 credit hours)
Senior capstone project which includes a complete software lifecycle demonstration for a customer; Teams of students will elicit requirements from the customer for a moderate to large sized software system; They will design the software, construct or acquire components, integrate the components, test, validate, document each software artifact throughout the project; It is expected that the product will be demonstrated through a web-based user interface. Pre-requisite: SWEB 390.

Prerequisite:
  1. ITBP290
  2. ITBP299
Corequisite:
Semester: Fall Spring Go To Index


SWEB499 - Special Topics in Software Eng (3 credit hours)
Topics of special interest to Software development majors; may be repeated with different topics.

Prerequisite:
  1. ITBP319
Corequisite:
Semester: Spring Go To Index


SWEB651 - Software Construction (3 credit hours)


Prerequisite:
Corequisite:
Semester: All Go To Index


SWEB652 - Requirements Engineering (3 credit hours)


Prerequisite:
Corequisite:
Semester: All Go To Index


SWEB653 - SW Quality Assurance & Testing (3 credit hours)


Prerequisite:
Corequisite:
Semester: All Go To Index


SWEB654 - HCI and Usability (3 credit hours)


Prerequisite:
Corequisite:
Semester: All Go To Index