Academic Catalog

Software Engineering (SE)

SE 3140    Ethics and Personal Software Process  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
This course examines ethical and social issues arising from rapid advances in computer technology. Through this course students will become familiar with current debates in the computing field as well as the ethical dilemmas that underlie them. Personal Software Process (PSP) is intended for practicing software engineers and software development managers. PSP introduces measures that can serve as the basis for software development process improvement in the organization as well as helping individuals improve their own software quality.
Prerequisites: CS 2450 and CS 2860  
Corequisites: SE 3630, SE 3830  
SE 3250    Survey of Languages  
Typically Offered: Fall, Spring  
Credits: 3  
Lecture hours: 3  
This course gives students experience programming in a variety of programming languages and paradigms and introduces students to related concepts.
Prerequisites: CS 2420  
Corequisites: SE 3520, SE 3820  
SE 3520    Database Systems  
Typically Offered: Fall  
Credits: 3  
Lecture hours: 3  
Databases are everywhere. This advanced database course covers both the why and how you design a database, structured query language (SQL) syntax and usage, and how a software engineer uses a database to solve data integrity problems before they exist. Students will also learn about joins, aggregates, views, sequences and triggers. The course includes a comprehensive database project in a team environment.
Prerequisites: CS 2420  
Corequisites: SE 3250, SE 3820  
SE 3630    Mobile Application Development  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
Learn how to develop mobile applications that run cross-platform (iOS, Android and Windows), and integrate those mobile applications with external APIs.
Prerequisites: SE 3820  
Corequisites: SE 3140, SE 3830  
SE 3820    Back-End Web Development  
Typically Offered: Fall  
Credits: 3  
Lecture hours: 3  
This course focuses on the concepts and technologies needed to develop dynamic web-based applications. Students build data-driven websites and APIs using modern languages and tools.
Prerequisites: CS 2450 and CS 2860  
Corequisites: SE 3250, SE 3520  
SE 3830    Cloud Application Development  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
Develop skills necessary to deploy and manage code in a public cloud environment such as Amazon AWS, Microsoft Azure, Google GCP, etc. Understand the differences and tradeoffs between Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS) and other cloud models. Practice automating the compiling, testing and deploying of your code directly into a production environment. This new model of computing requires software developers to think in new ways. Software engineers need to understand the low cost and scalability of the cloud and consider the security and pricing implications of this approach.
Prerequisites: SE 3820  
Corequisites: SE 3140, SE 3630  
SE 3840    Web Telemetry & Operations  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
This course focuses on modern web infrastructure. The course covers monitoring and instrumentation to assist in operational awareness of software solutions.
Prerequisites: SE 3820  
SE 4230    Advanced Algorithms  
Typically Offered: Fall  
Credits: 3  
Lecture hours: 3  
This course explores various key computational problems, landmark algorithms, design paradigms, and analysis techniques, preparing students to create and analyze algorithmic solutions to novel problems. The course leverages mathematics and computing prerequisites and builds significantly beyond the fundamentals of data structures and algorithms introduced in CS 2420.
Prerequisites: CS 2420 and MATH 3310  
Corequisites: SE 4270, SE 4400  
SE 4270    Software Maintenance Practices  
Typically Offered: Fall  
Credits: 3  
Lecture hours: 3  
Develop skills necessary to work with existing codebases. Bring legacy code under test to enable the development of new features on top of mature code. Most professional development work is not done on new projects, most work is done on existing codebases which requires unique skills.
Prerequisites: SE 3630  
Corequisites: SE 4230, SE 4400  
SE 4340    Secure Coding Practices  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
A study of the principles, practices, procedures and methodologies of securely handling, processing and storing data. It examines practices and patterns related to secure code at various levels of the software stack, from user interface code, back end processing and storage. It appraises common attack vectors / methods and how to guard against them.
Prerequisites: SE 4270  
Corequisites: SE 4450, SE 4620  
SE 4400    Software Engineering Practicum I  
Typically Offered: Fall, Spring  
Credits: 1  
Lecture hours: 1  
This course is the first in a two-course sequence. The senior year practicum courses (SE4400 and SE4450) provide career preparation and guide students through a culminating major engineering design experience (capstone project). This capstone project allows students to apply the knowledge and skills acquired in earlier course work while they solve a complex engineering problem utilizing appropriate engineering standards and multiple constraints.
Prerequisites: SE 3140 and SE 3630 and SE 3830  
Corequisites: SE 4230, SE 4270  
SE 4450    SE Practicum II  
Typically Offered: Fall, Spring  
Credits: 6  
Lecture hours: 6  
This course is the second in a two-course sequence. The senior year practicum courses (SE4400 and SE4450) provide career preparation and guide students through a culminating major engineering design experience (capstone project). This capstone project allows students to apply the knowledge and skills acquired in earlier course work while they solve a complex engineering problem utilizing appropriate engineering standards and multiple constraints.
Prerequisites: SE 4400  
Corequisites: SE 4340, SE 4620  
SE 4620    Distributed Application Development  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
The course introduces students to the fundamental principles common to the design and implementation of programs that run on two or more interconnected computer systems. It will concentrate on systems and software issues that are critical for building advanced Internet-scale application systems, including web servers, web proxies, application servers, database servers, and a number of prominent Internet application areas.
Prerequisites: SE 3520 and CS 2860  
Corequisites: SE 4340, SE 4450  
SE 4850    Advanced Front-end Development  
Typically Offered: Fall  
Credits: 3  
Lecture hours: 3  
Build websites with advanced front-end frameworks and libraries. Expose back-end APIs to modern, responsive, component-based single-page web applications.
Prerequisites: SE 3830