Academic Catalog

Software Engineering (SE)

SE 3140    Ethics and Craftmanship  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
This course examines ethical and social issues in computing and explores practices for producing quality software. Moral Philosophy is considered along with the IEEE Code of Ethics. This study of philosophy helps students deepen their critical thinking and writing skills which are sought after in the Software Industry. This course also discusses practices and behaviors that help individuals improve their own software quality.
Prerequisites: CS 2450 with a minimum grade of C- and CS 2860 with a minimum grade of C-  
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 with a minimum grade of C-  
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 with a minimum grade of C-  
Corequisites: SE 3250, SE 3820  
SE 3630    Mobile Application Development  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
This course introduces students to developing mobile applications that run cross-platform (iOS, Android and Windows), and integrate those mobile applications with external APIs.
Prerequisites: SE 3820 with a minimum grade of C-  
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 1430 with a minimum grade of C- and CS 1810 with a minimum grade of C- and CS 2450 with a minimum grade of C- and CS 2860 with a minimum grade of C-  
Corequisites: SE 3250, SE 3520  
SE 3830    Cloud Application Development  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
In this course, students will 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 with a minimum grade of C-  
Corequisites: SE 3140, SE 3630  
SE 3840    Web Telemetry and 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 with a minimum grade of C-  
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 with a minimum grade of C- and MATH 3310 with a minimum grade of C-  
Corequisites: SE 4270, SE 4400  
SE 4270    Software Maintenance Practices  
Typically Offered: Fall  
Credits: 3  
Lecture hours: 3  
Students taking this course will develop the skills necessary to work with existing codebases and to bring legacy code under test, enabling the development of new features on top of mature code. Most professional development work is not done on new projects; it is done on existing codebases, which require unique skills. Students will understand the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance.
Prerequisites: SE 3630 with a minimum grade of C-  
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 with a minimum grade of C-  
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 with a minimum grade of C- and SE 3630 with a minimum grade of C- and SE 3830 with a minimum grade of C-  
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 with a minimum grade of C-  
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: CS 2860 with a minimum grade of C- and SE 3520 with a minimum grade of C-  
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 with a minimum grade of C-