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 and CSC 110L; or CSC 107 with Program Director approval; Minimum grade C-.
Corequisites: Take SER 120L.
Offered: Every year, Fall and 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 and CSC 110L; or CSC 107 with Program Director approval; Minimum grade C-.
Corequisites: Take SER 120.
Offered: Every year, Fall and Spring

SER 175. Introductory Tpoics in Software Engineering.1-3 Credits.

This course explores introductory software engineering topics not available in other courses as well as new topics as they emerge in this rapidly evolving discipline. Topics may be interdisciplinary. This course does not count as an elective in the major.

Prerequisites: Take CSC 110 CSC 106 or GDD 140; Minimum grade C-;
Offered: As needed

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; Minimum grade C-.
Offered: Every year, Spring

SER 225. Introduction to Software Development.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 275. Topics in Software Engineering.1-3 Credits.

This course explores general software engineering topics not available in other courses, as well as new topics as they emerge in this rapidly evolving discipline. Topics may be interdisciplinary.

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

SER 300. Advanced Topics in Computer Science (CSC 375).3 Credits.

This course explores advanced computer science topics not available in other courses, as well as new topics as they emerge in this rapidly evolving discipline. Topics may be interdisciplinary.

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

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 CSC 215, CSC 225; Minimum grade C-.
Offered: As needed

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 340; Minimum grade C-.
Offered: Every year, Spring

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 and CSC 225 or SER 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. Full-Stack Development 1: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. Students learn software prototyping and front-end web development using the latest technologies. Topics include: Layout and responsive design, interactive web development, and functional web programming.

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

SER 341. Full-Stack Development 2: Software Design.3 Credits.

This course covers software design methodologies, architectural styles, design principles and design techniques. Students learn back-end web development including building a web service, non-relational databases, routing, aunthentication and state-of-the-art front-end frameworks.

Prerequisites: Take SER 340 Minimum grade of C-
Offered: Every year, Spring

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 210 SER 225; Minimum grade C-.
Offered: Every year, Fall

SER 359. Transfer Equivalent.3 Credits.

Prerequisites: None

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 CSC 215, CSC 225; Minimum grade C-.
Offered: Every other year, Fall

SER 375. Advanced Topics in Software Engineering.1-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 225; Minimum grade C-.
Offered: As needed

SER 399. Independent Study.1-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.

Prerequisites: None
Offered: As needed

SER 490. Engineering Professional Experience.0-1 Credits.

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

Corequisites: Take SER 340.
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