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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.