Software Engineering (SE)

Courses

SE 310. Software Engineering Fundamentals. 3 Credits.

This course provides foundational exposure to the key concepts, methodologies, and practices of software engineering. Students will explore the software development lifecycle—from requirements analysis and design to implementation, testing, deployment, and maintenance—while examining traditional and agile processes. Emphasis is placed on basic metrics, quality assurance, and strategies that support effective team-based development. Through hands-on exercises, case studies, and group activities, students will learn to plan, design, and deliver reliable software systems aligned with stakeholder needs and industry standards.
P: COMP SCI 120 and COMP SCI 130 with at least a C grade
Spring.

SE 320. Software Tools and Process. 3 Credits.

This course provides a practical, hands-on introduction to the tools and processes central to modern software development. Students will work with version control systems, continuous integration/continuous delivery (CI/CD) pipelines, build automation, testing frameworks, and debugging tools to streamline development and ensure code quality. Topics include configuration management, documentation practices, and collaborative platforms for issue tracking and communication. Students will learn to apply appropriate tools and methodologies to enhance productivity, maintainability, and overall project success in real-world environments in both individual and group settings.
P: COMP SCI 120 and COMP SCI 130 with at least a C grade
Fall Only.

SE 340. Software Requirements & Architecture. 3 Credits.

This course focuses on the early stages of software development, emphasizing eliciting, analyzing, and managing software requirements and translating those requirements into sound architectural designs. Students will learn to define clear, actionable requirements and explore modeling and prototyping techniques that guide system design. Topics include requirements validation, architectural styles, and design patterns that balance technical constraints with stakeholder needs. Students will gain experience evaluating, refining, and documenting architectural solutions that provide a solid foundation for further development.
P: SE 310 and SE 320 with at least a C grade
Spring.

SE 350. Software Quality. 3 Credits.

This course introduces principles and practices essential for delivering reliable, maintainable software systems. Students examine verification and validation methods, coverage criteria, testability metrics, and various testing techniques. Topics include software quality assurance metrics, testing frameworks, code reviews, configuration management, and continuous improvement strategies. Emphasis is on meeting requirements while balancing cost, schedule, and stakeholder needs. Students will gain experience with tools and methodologies that support professional-quality software development.
P: SE 310 and SE 320 with at least a C grade
Spring.

SE 490. Software Engineering Capstone. 3 Credits.

This course is the culminating experience in the Software Engineering curriculum, integrating concepts and skills acquired throughout previous coursework. Students will work in teams on a comprehensive, real-world project encompassing requirements analysis, design, implementation, testing, and deployment. Emphasis is placed on effective project management, documentation, quality assurance, and stakeholder communication. Through hands-on problem-solving, iterative development, and review cycles, students will demonstrate their ability to deliver a robust, maintainable, and user-centered software solution that meets technical and business objectives. The course is repeatable for credit; it may be taken 2 times for six earned credits.
P: SE 310, SE 320, SE 340, and SE 350 with at least C grade in all
Fall and Spring.