SOFTWARE 2430 3 credits Object-Oriented Programming and Data Structures I
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. (Fall, Spring)
Components: Laboratory, Lecture
Cross Offering: COMPUTER 2430
Prereqs/Coreqs: P: COMPUTER 1430
SOFTWARE 2630 3 credits Object-Oriented Programming and Data Structures II
Continuation of the object-oriented programming and data structure topics from COMPUTER/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. (Fall, Spring)
Components: Laboratory, Lecture
Cross Offering: COMPUTER 2630
Prereqs/Coreqs: P: SOFTWARE/COMPUTER 2430
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 CASE tools. Students gain experience, via a team project, in the life cycle development of software systems. (Fall)
Components: Lecture
Prereqs/Coreqs: C: SOFTWARE/COMPUTER 2430
SOFTWARE 2950 2 credits Software Engineering Cooperative Education
Work experience in industry under the direction and jurisdiction of the college. (Fall, Spring)
Components: Field Studies
Prereqs/Coreqs: P: Sophomore standing
SOFTWARE 2960 2 credits Software Engineering Cooperative Education
Work experience in industry under the direction and jurisdiction of the college. (Fall, Spring)
Components: Field Studies
Prereqs/Coreqs: P: Sophomore standing
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.
Components: Field Studies
Prereqs/Coreqs: P: Sophomore standing
SOFTWARE 3330 3 credits Intermediate Software Engineering
A more detailed discussion of several software engineering topics included in previous courses including requirements engineering, software modeling, user-interface design, development processes and process improvement. Moderate size GUI-based group project. (Spring)
Components: Lecture
Prereqs/Coreqs: P: SOFTWARE 2630 and SOFTWARE 2730
SOFTWARE 3430 3 credits Object Oriented Analysis and Design
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. Moderate size group project. (Fall)
Components: Lecture
Cross Offering: COMPUTER 3430
Prereqs/Coreqs: P: SOFTWARE 2730 and COMPUTER/SOFTWARE 2430
SOFTWARE 3730 3 credits Software Quality
Study of the 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. (Fall)
Components: Laboratory, Lecture
Prereqs/Coreqs: P: SOFTWARE 2630 and SOFTWARE 2730
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 management, verification and 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. (Spring)
Components: Lecture
Prereqs/Coreqs: P: SOFTWARE 2630 and SOFTWARE 3430
SOFTWARE 3950 2 credits Software Engineering Cooperative Education
Work experience in industry under the direction and jurisdiction of the college. (Fall, Spring)
Components: Field Studies
Prereqs/Coreqs: P: Junior standing
SOFTWARE 3960 2 credits Software Engineering Cooperative Education
Work experience in industry under the direction and jurisdiction of the college. (Fall, Spring)
Components: Field Studies
Prereqs/Coreqs: P: Junior standing
SOFTWARE 3970 1 credit Software Engineering Internship
Work experience in industry under the direction of the Cooperative Education Office. NOTE: This program is separate and distinct from the Cooperative Education Program and is principally designed to cover the summer vacation period. (Summer)
Components: Field Studies
Prereqs/Coreqs: P: Junior standing
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. (Spring)
Components: Seminar
Prereqs/Coreqs: P: Software Engineering major and junior/senior standing
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. (Spring)
Components: Discussion, Laboratory, Lecture
Prereqs/Coreqs: P: COMPUTER/SOFTWARE 2630 and COMPUTER/SOFTWARE 3430 and ELECTENG 3780.
SOFTWARE 4330 3 credits Software Engineering Project I
Emphasis in applying software engineering knowledge learned in this course and previous courses to a large, team-based, capstone project that spans two semesters. In-depth study of several software engineering topics introduced in earlier courses, such as requirements engineering; analysis and design methods; planning and estimation; project management; and metrics. An introduction to formal methods for specification and design. (Fall)
Components: Discussion, Laboratory, Lecture
Prereqs/Coreqs: P: SOFTWARE 3330 and SOFTWARE 3430
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. (Spring)
Components: Discussion, Laboratory, Lecture
Prereqs/Coreqs: P: SOFTWARE 3730 and SOFTWARE 4330
SOFTWARE 4980 1 - 4 credits Current Topics in Software Engineering
In-depth study of a current topic of interest to the software engineering profession. The topic to be covered will be identified in the course title.
Components: Lecture
SOFTWARE 4990 1 - 3 credits Independent Study
Advanced study in area of specialization selected by student and approved by faculty member. (Fall, Spring)
Components: Independent Study