Software Engineering (SER)

SER 120. Object-Oriented Design and Programming.3 Credits.

This course serves as an introduction to the principles of design and development using object-oriented techniques such as inheritance, polymorphism and encapsulation. Students apply OO techniques to develop event-driven programs. Code craftsmanship is emphasized. Students also learn to apply and recognize design patterns for OO software and to use standard application development frameworks.

Prerequisites: Take CSC 110 CSC 110L with a grade of C- or higher;
Corequisites: Take SER 120L;
Offered: Every year, Spring

SER 120L. Object-Oriented Design and Programming Lab.1 Credit.

Students gain experience in object-oriented programming and design by completing a series of activities, covering a range of topics from the Object-Oriented Design and Programming course (SER 120). This course is taken in conjunction with SER 120.

Prerequisites: Take CSC 110 CSC 110L; Minimum grade C-;
Corequisites: Take SER 120;
Offered: Every year, Spring

SER 210. Software Engineering Design and Development.3 Credits.

This course serves as an introduction to software engineering using object-oriented analysis and design. The course emphasizes the development of robust and high-quality software systems based on object-oriented principles. Implementations are performed using state-of-the-art programming languages and application development frameworks.

Prerequisites: Take SER 120 SER 120L SER 225 with a grade of C- or higher
Offered: Every year, Spring

SER 225. Introduction to Software Development (CSC 225).3 Credits.

This course presents introductory software development concepts including group development, large-scale project work and theoretical aspects of object-oriented programming. The course expands on material from previous courses. Professional behavior and ethics represent an important component of this course.

Prerequisites: Take CSC 111 CSC 111L; Minimum grade C-;
Offered: Every year, Fall

SER 305. Advanced Computational Problem Solving.3 Credits.

This course presents computational problem solving and advanced algorithmic thinking techniques. It expands on material from previous courses. Students also learn about advanced APIs and software development frameworks, including APIs for advanced collections and concurrent programming, and gain additional experience with frameworks for testing and building software systems.

Prerequisites: Take CSC 215 SER 120 SER 120L; Minimum grade C-
Offered: Every year, Fall

SER 310. Human-Computer Interaction.3 Credits.

This course addresses concepts in human-computer interaction (HCI). Students learn about interaction design, information visualization, and usability. The course covers cognitive aspects of HCI and methods for evaluating user interfaces.

Prerequisites: Take SER 210; Minimum grade C-;
Offered: Every year, Spring

SER 320. Software Design and Architecture.3 Credits.

Students explore software design methodologies, architectural styles, design principles and design techniques. The course examines the principles and methods of architectural design and detailed design of complex, large-scale software systems and covers a number of architectural styles including classical and emerging styles.

Prerequisites: Take SER 210; Minimum grade C-;
Offered: Every year, Fall

SER 325. Databases (CSC 325).3 Credits.

Students are introduced to the theory and application of database systems. Topics include data modeling and the relational model, query languages, relational database design, transaction processing, databases and physical database design.

Prerequisites: Take CSC 215 CSC 225; Minimum grade C-;
Offered: Every other year, Spring

SER 330. Software Quality Assurance.3 Credits.

This course acquaints students with various aspects of software quality assurance. Students learn about dynamic analysis approaches, such as testing and runtime assertions, static analysis approaches, such as reviews and finite-state verification, and processes for promoting software quality. Emphasis is placed on testing, including testing processes, such as unit, integration, system, acceptance and regression testing, and test case selection techniques, such as black-box and white-box testing. The relationship between ethics and software quality assurance is explored.

Prerequisites: Take SER 210; Minimum grade C-;
Offered: Every year, Spring

SER 340. Software Requirements Analysis.3 Credits.

This course covers basic concepts and principles of software requirements engineering including techniques, processes and tools for specifying software requirements. Topics include requirements elicitation, requirements management, functional and nonfunctional requirements, semiformal and formal approaches, Agile requirement analysis and requirements tracking.

Prerequisites: Take SER 210; Minimum Grade C-;
Offered: Every year, Fall

SER 350. Software Project Management.3 Credits.

This course acquaints students with various aspects of software project management. Students learn about project initiation and scope definition; project planning, enactment and closure; measuring and controlling software artifacts and processes; risk management; and human aspects of software project management. Students use various tools for software project management and obtain hands-on experience by acting as managers of an ongoing software project.

Prerequisites: Take SER 330 SER 340; Minimum Grade C-;
Offered: Every year, Fall

SER 360. Software Engineering in Health Care.3 Credits.

Biomedical informatics is one of the fastest growing economic sectors in the world. Software, and thus software engineering, has an important role in biomedical informatics. Students in this course explore the applicability of software engineering techniques to health care. Topics include electronic health records; modeling and analysis of medical processes with the goal of improving safety and efficiency; software solutions for providing clinical decision support; and bioinformatics.

Prerequisites: Take SER 210; Minimum grade C-;
Offered: Every other year, Fall

SER 375. Advanced Topics in Software Engineering.3 Credits.

Software engineering is a rapidly evolving discipline. This course explores advanced software engineering topics that are not covered in any current software engineering course, or expands on topics currently offered in the catalog. A specific course's focus may be interdisciplinary.

Prerequisites: Take SER 210; Minimum grade C-;
Offered: As needed

SER 399. Independent Study.3 Credits.

Independent study courses are individual examinations of topics within the discipline not covered by conventional courses. Students who wish to engage in independent study must work with a departmental faculty. Students and faculty must agree on a topic, structure and meeting schedule.

Offered: As needed

SER 489. Advanced Independent Study in Software Engine.3 Credits.

This is a tutorial course or an individual project in which the student pursues advanced study in software engineering. The scope of the course is tailored to the desires of the student in consultation with a faculty adviser. Communication skills are developed through written reports and oral presentations. Requires approval of faculty member.

Offered: As needed

SER 490. Engineering Professional Experience.1 Credit.

Students gain practical experience in applying theory obtained in previous course experiences by employing engineering skills in a professional setting under the guidance of faculty and mentors. Students must obtain departmental approval and register prior to starting the experience. If approved, an internship could satisfy this requirement. Prerequisite may be waived with permission of adviser.

Prerequisites: Take ENR 395; Minimum grade C-;
Offered: Every year, All

SER 491. Senior Capstone I.3 Credits.

This is the first part of a two-semester, capstone design experience for software engineering students. It involves analysis and synthesis of unstructured problems in practical settings. Students work in teams to formulate issues, propose solutions and communicate results in formal written and oral presentations

Prerequisites: Take SER 340; Grade of C-;
Offered: Every year, Fall

SER 492. Senior Capstone II.3 Credits.

This is the second part of a two-semester, capstone design experience for software engineering students. Students work in teams to refine software artifacts developed in SER 491 and produce a prototype of a software system. Results are communicated in formal written and oral presentations.

Prerequisites: Take SER 491; Minimum grade C-;
Offered: Every year, Spring