SOFTWARE 2430 3 credits
Object-Oriented Programming and Data Structures I

(Cross-offered under Computer Science 2430)
An introduction to object-oriented programming. Emphasis on building and testing classes using software engineering techniques. Includes study of a standard class library and use of inheritance and polymorphism for building subclasses and extensibility. Coverage of the stack and queue classical data structures. Discussion of searching, sorting, and hashing techniques. Introduction to linked lists. P: COMPUTER 1430. F, S

SOFTWARE 2630 3 credits
Object-Oriented Programming and Data Structures II

(Cross-offered under Computer Science 2630)
Continuation of the object-oriented programming and data structure topics from SOFTWARE 2430. Coverage of pointers, templates, linked lists, trees, recursion, graphs, and algorithm analysis. Use of software engineering techniques such as inspections, test plans, and configuration management within a group-based project environment. P: COMPUTER 1430. F, S

SOFTWARE 2730 3 credits
Introduction to Software Engineering

An introduction to software engineering principles, including discussions of development methodologies, requirements analysis, project planning, software design, software construction, software management, software quality, and CASOFTWARE tools. Students gain experience, via a team project, in the life-cycle development of software systems. C: COMPUTER/SOFTWARE 2630. S

SOFTWARE 2950, SOFTWARE 2960 2 credits each
Software Engineering Cooperative Education

Work experience in industry under the direction and jurisdiction of the college. P: Sophomore standing and consent of cooperative education director. F, S

SOFTWARE 2970 1 credit
Software Engineering Internship

Work experience in industry under the direction of the Cooperative Education Office of the College of EMS. Note: This program is separate and distinct from the Cooperative Education Program and is principally designed to cover the summer vacation period.

SOFTWARE 3430 3 credits
Object-Oriented Analysis & Design

(Cross-offered under Computer Science 3430)
Requirements engineering, analysis, and specification using the object-oriented paradigm. Object-oriented architectural and detailed design. Use of an OOA&D modeling language such as UML. Investigation of OOA&D patterns. Use of object-oriented libraries such as component libraries and toolkits. Moderate size, GUI-based group project. C: COMPUTER/SOFTWARE 2630. F

SOFTWARE 3730 3 credits
Software Quality

Study of topics related to producing quality software, including software quality assurance, quality metrics, configuration management, verification and validation, reviews, inspections, audits, and software process improvement models. Individual and team projects. P: SOFTWARE 2730. F

SOFTWARE 3860 3 credits
Software Maintenance and Reengineering

Study of the topics related to maintaining large-scale software systems. Study of software engineering topics such as estimation, software quality assurance, metrics, configuration managment, verification & validation, inspections, and personal and team software process as they relate to software maintenance projects. Coverage of traditional analysis and design methods such as structured analysis and design. Two, semester-long, team-based projects: reengineering a small system to be object-oriented and making changes to a moderate-sized existing software project. P: SOFTWARE 2730, C: SOFTWARE 3430. S


SOFTWARE 3950, SOFTWARE 3960 2 credits each
Software Engineering Cooperative Education

Work experience in industry under the direction and jurisdiction of the college. P: Junior standing and consent of cooperative education director. F, S

SOFTWARE 3970 1 credit
Software Engineering Internship

Work experience in industry under the direction of the Cooperative Education Office of the college. Note: This program is separate and distinct from the Cooperative Education Program and is principally designed to cover the summer vacation period.

SOFTWARE 4110 1 credit
Software Engineering Seminar

The course consists of lectures/discussions presented by both software engineering faculty and students enrolled in the class. P: Software engineering major and junior/senior standing. S

SOFTWARE 4130 3 credits
Real-time Embedded Systems Programming

An exploration of programming techniques and constructs used to develop reliable software systems capable of responding in real time to environmental changes. An overview of the platforms, tools, and processes used in developing software for embedded systems. Hands-on lab projects experimenting with real-time embedded systems programming details. P: SOFTWARE/COMPUTER 2630 and ELECTENG/COMPUTER 3760. S

SOFTWARE 4330 3 credits
Software Engineering Project 1

Emphasis in applying software engineering knowledge learned in this course and previous courses to a large, team-based, capstone project spans two semesters. In-depth study of several software engineering topics introduced in earlier courses, such as engineering; analysis and design methods; planning and estimation; project management; and metrics. An introduction to formal methods for specification and design. P: SOFTWARE 2730 and SOFTWARE 3430. F

SOFTWARE 4730 3 credits
Software Engineering Project II

The project started in SOFTWARE 4330 is continued and carried to completion. In-depth study of several software engineering topics introduced in earlier courses, such as software construction tools and issues; unit development, review, testing, and maintenance; software reuse; and metrics. An introduction to current research issues in software engineering. P: SOFTWARE 3730 and SOFTWARE 4330. S

SOFTWARE 4980 1-4 credits
Current Topics in Engineering

In-depth study of a current topic of interest to the engineering profession. The topic to be covered will be identified in the course title. F, S

SOFTWARE 4990 1-3 credits
Independent Study

Advanced study in area of specialization selected by student and approved by faculty member. F, S