G

 Software Engineering Courses

This list of software engineering courses reflects departmental offerings effective as of Fall 2005. Current Course Schedules are found here.

CS 321 - Object-Oriented Programming Using Java (3 hrs)

Introduces the concept of concurrency and shows how the object-oriented programming paradigm can be used to design and build multithreaded programs. Introduction to Java syntax; use of the language to develop World Wide Web applications. Lab Fee: $40. Prerequisites: Two semesters of instruction in a structured programming language such as C, C++, Pascal, or a year’s experience programming in such a language. (Cannot be taken if CS 104, 204 have been taken.)

CS 307 - Object-Oriented Programming in C++ (3 hrs)

Emphasis upon object-oriented concepts and design in developing student programs in C++. Comparison with other object-oriented languages. Inheritance. Lab Fee: $40. Prerequisites: CS 107, 207.

CS 499 - Senior Project: Team Software Development (3 hrs)

A combination of lectures on proven software engineering approaches, and team working sessions. Each student will participate in a sizable, complex software development project based on a team approach. Each team will be required to provide oral and written documentation on their work. Lab Fee: $40. Prerequisite: CS 317.

    551 Software Modeling             3 hrs.

    A survey of techniques and methodologies for software modeling.  General modeling (e.g., UML), formal models, model checking, limitations of modeling, validation of models, domain modeling, model-driven architecture. Comparison of different approaches, considering their advantages and disadvantages. Prerequisite: CS 317 or 617, or approval of instructor based upon applicable industrial software development experience. Lab fee $40.

    552 Analysis and Design Patterns             3 hrs.

    An in-depth examination of analysis Patterns and Design Patterns and how they can enable better analyses and designs (primarily more reusable and extendable).  Advanced C++ and Java programming and techniques, concepts, and styles and how these apply to design patterns.  Lab Fee: $40. Prerequisite: CS 307 or 321.

    553 Client/Server Architectures             3 hrs.

    Conceptual and practical aspects of client/server architectures, a software development paradigm that requires an understanding of object-oriented software technologies, World Wide Web technologies, networking and standardized middleware such as CORBA and J2EE.  Fundamental concepts of distributed object computing.  Students will apply the concepts in the development of practical distributed programs. Prerequisite: CS 307 or 321 (CS 470 recommended). Lab Fee $50.

    595 Independent Study 3 hrs.

    Individual directed study under the supervision of an instructor. Prerequisite: approval of instructor.

    613 Computer Architectures 3 hrs.

    Organization, operation, and analysis of advanced computer architectures. Topics include advanced pipelining approaches, multi-processor architectures, instruction set architectures, memory hierarchy design, hardware and software-based performance optimization, and system performance measurement. Prerequisite: CS 413 or CS 513. Lab Fee: $40.

    617 Design and Analysis of Algorithms 3 hrs.

    Strategies of algorithm synthesis and analysis. Design methodologies of classical algorithm categories such as: divide-and-conquer, greedy method, dynamic programming, search and traversal, back-tracking, and branch-and-bound. Computational complexity and important theoretical results from lower- and upper-bound studies, NP-hard, and NP-complete problems. Prerequisite: CS 317 or CS 517. Lab Fee: $40.

    650 The Software Engineering Process 3 hrs.

    The process of developing complex software products. Includes software life cycles, phases of development and disciplines such as CM, QA, V&V, and T&E. Covers issues associated with professionalism and the ethical use of computers in the information age, including software piracy and copyrighting software. Prerequisites: CS 317, CS 490 and CS 424 or 524, or approval of instructor based upon applicable industrial software development experience. Lab Fee: $40.

    652 Object-Oriented Analysis and Design 3 hrs.

    A survey of formal and informal techniques and methodologies for software analysis, requirements, architecture and design. Emphasis is on effective development processes. Comparison of different approaches, considering their advantages and disadvantages. Prerequisites: CS 650 or equivalent and either CS 307 or CS 321 or equivalent, or approval of instructor based on applicable industrial software development experience. Lab Fee: $40.

    655 Formal Methods in Software Engineering                                    3 hrs.

    Formal mechanisms to specify, validate, and verify software systems.  Propositional and predicate calculi.  Program verification through Djikstra’s weakest preconditions and Hoare’s method.  Formal specification via algebraic specifications and abstract model specifications.  Prerequisites: CS 650, either CS 317 or CS 617, and either CS 307 or CS 321.  Lab fee $40.

    656 Software Testing3 hrs.

    Advanced software testing techniques, including white box, black box, integration testing, and system testing.  Other topics may include test data adequacy, test data selection, and output oracle, including functional, structural, and fault-based testing methods.  Prerequisite: CS 650. Lab fee $50.

    658 Software Process and Product Improvement                            3 hrs.

    Software quality assurance as an umbrella activity.  Use of process, project, quality and product metrics to gain insight into the software development activity.  Use of metrics to drive incremental process improvement techniques.  Examination of CASE tools and how they affect the software process.  Prerequisite: CS 650.  Lab Fee $50.

    666 Software Studio I 3 hrs.

    This is the first course in a two-course sequence where students work in teams on medium-sized software projects. Activities include analyzing and documenting software system requirements, producing a project plan, designing and building a prototype, and orally presenting the project for evaluation. The practice of software design and evaluation is conducted in an iterative cycle so that the design-evaluation phases are repeated twice to generate a more mature design. Prerequisites: CS 650, a designated 600-level software engineering elective, and a designated 500 or 600-level software engineering elective. Lab Fee: $50.

    668 Software Studio II 3 hrs.

    This is the second course in a two-course sequence where students work in teams to continue the software engineering cycle with emphasis on software management, evolution, maintenance, quality analysis, testing, integration, validation, and security auditing. Prerequisites: CS 666. Lab Fee: $50.

    695 Independent Study 3 hrs.

    Individual directed study under the supervision of an instructor. Prerequisite: Approval of instructor.

    699 Master’s Thesis 3 hrs.

    Required each semester student is working and receiving direction on master’s thesis. Maximum of 9 hours of credit upon successful completion of master’s thesis.

    750 Advanced Software Engineering Topics 3 hrs.

    Experimental framework of software engineering. Design of experiments to evaluate different methods and techniques in software development, operation, and maintenance. Quality and productivity issues. Review of current literature. Prerequisite: CS 650 or approval of instructor based upon applicable industrial software development experience. Lab Fee: $40.


Maintained by Harry S. Delugach
Email: