Software Engineering (SE)

Software Engineering (SE)

Course usage information

SE-199   Independent Study in Software EngineeringCredits: 3   

Term Offered: Summer Term

Course Type(s): None

Independent Study of a particular subject or problem in software engineering under the guidance of a software engineering faculty member. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

SE-205   Requirements Engineering and SpecificationsCredits: 3   

Prerequisite(s): CS-104 and CS-175

Term Offered: All Terms

Course Type(s): None

Elicitation, analysis, specification, validation, and management of user requirements; process, notations, methods and tools, requirements standards, system requirements specifications document (SRS).

Course usage information

SE-207   Software Design and ArchitectureCredits: 3   

Prerequisite(s): CS-104 and CS-176; and EN-101 and EN-102 or permission of the instructor

Term Offered: Spring Term

Course Type(s): WT

Design process notations, methods, paradigms, and tools. System architecture tradeoff analysis; component and subcomponent specification. Generic (domain) design; architectural styles, frameworks, and patterns. Architecture standards; design tools.

Course usage information

SE-250   Android Application DevelopmentCredits: 3   

Prerequisite(s): CS-176 and CS-176L

Course Type(s): None

This course will teach students software methodologies for Android App Development. This will include Android Development Studio, Kotlin programming language, and interfaces to external services required to develop simple to moderately complex Android mobile apps. Also listed as CS-250.

Course usage information

SE-289   Internship in Software EngineeringCredits: 3   

Term Offered: Summer Term

Course Type(s): EX1

Supervised practical experience in Software Engineering. Repeatable for credit. Junior standing, departmental approval, and placement are required to take this course.

Course usage information

SE-299   Independent Study in Software EngineeringCredits: 3   

Term Offered: All Terms

Course Type(s): None

Independent Study of a particular subject or problem in software engineering under the guidance of a software engineering faculty member. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

SE-306   Formal Methods in Software EngineeringCredits: 3   

Prerequisite(s): MA-120 or MA-130, and MA-220, passed with a grade of C or higher.

Term Offered: All Terms

Course Type(s): None

Covers a variety of formal methods and applies them to software-specification development. Assumes a firm grounding in mathematical logic, knowledge of proof techniques, and skill in the translation of problems expressed in English into predicate logic.

Course usage information

SE-312   Software Verification, Validation, and MaintenanceCredits: 3   

Prerequisite(s): CS-104 and CS-176

Term Offered: All Terms

Course Type(s): None

Covers inspections of requirements, design and code, as well as testing, the handling of change requests, software evolution, code comprehension, and change management.

Course usage information

SE-337   Enterprise Mobile Apps Design and DevelopmentCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher and CS-337

Term Offered: Fall Term

Course Type(s): None

Presents methodologies to build enterprise mobile apps on iPad tablets and iPhone smartphones using iOS. The course will cover technologies to use in the design and development of apps on mobile devices and integration of these apps with corporate data sources, sensor devices and cloud computing services. Also listed as CS-337.

Course usage information

SE-352   Embedded and Real-Time SoftwareCredits: 3   

Prerequisite(s): SE-351

Term Offered: Spring Term

Course Type(s): None

Familiarizes students with the fundamental issues related to embedded and real-time software systems and gives them an opportunity to become familiar with a commercially available system for developing and testing embedded and real-time software. Topics include: definition of embedded systems, process concurrency, interprocess communications, synchronization, and process scheduling.

Course usage information

SE-353   Comparative LanguagesCredits: 3   

Prerequisite(s): CS-176

Course Type(s): None

Begins with a history of the development of programming languages that provides the background necessary to understand programming-language design and evaluation. This is followed by an introduction to the basic programming language constructs and then critically comparing their implementation in some of the most common languages. Included is a discussion of the advantages and disadvantages of modern programming languages for a variety of applications. Some of the languages discussed are LISP, C, Small Talk, C++, Java, Ada, PL/1, and Prolog.

Course usage information

SE-357   Engineering Web-Based SystemsCredits: 3   

Prerequisite(s): CS-176 and CS-176L

Term Offered: All Terms

Course Type(s): None

A practical introduction to the principles, methods, and tools required to create high-quality software applications for the distributed, client-server context of the Web. Emphasis is on architectural designs, and language and data access methods that are common in Web-based systems. Also listed as CS-357.

Course usage information

SE-358   Software FrameworksCredits: 3   

Prerequisite(s): EN-101, EN-102, CS-205 and SE-207 both passed with a grade of C or higher; and SE-357 or CS-357, or permission of the instructor.

Term Offered: Spring Term

Course Type(s): WT

An introduction to Design Patterns and modern Software Frameworks, programming languages, data access methods and asynchronous Application Programming Interfaces (APIs). This is a writing intensive course. Restricted to Computer Science or Software Engineering students only. Also listed as CS-358. SE-357 or CS-357 or permission of the instructor.

Course usage information

SE-360   Introduction to Game DevelopmentCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

An introduction to the creation of computer/video games and the different elements of games, including computer graphics, animation, artificial intelligence, algorithms, data structures, networking, software development cycles and human-computer interaction. Also listed as CS-360.

Course usage information

SE-370   Program Development Under UnixCredits: 3   

Prerequisite(s): CS-176 passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

Introduction to the use of the UNIX operating system and its utilities for incremental and distributed program development, maintenance, and debugging. The course covers the UNIX shell, utilities, and program development tools that are used for large projects involving multiple developers on multiple machines. Three hours per week.

Course usage information

SE-398   Special Topics in Software EngineeringCredits: 3   

Course Type(s): None

A 300-level intensive study of a particular subject or problem in software engineering to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week. If a prerequisite is required it will be announced in the course schedule.

Course usage information

SE-399   Independent Study in Software EngineeringCredits: 1-3   

Term Offered: All Terms

Course Type(s): None

Independent Study of a particular subject or problem in software engineering under the guidance of a software engineering faculty member. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

SE-402   Human Computer InteractionCredits: 3   

Term Offered: Spring Term

Course Type(s): IM

Covers basic human psychology, computer technology, and the interface between them. The key topics of HCI are examined, grounded in the context of usability and the design lifecycle.

Course usage information

SE-403   Software Process ImprovementCredits: 3   

Prerequisite(s): CS-205

Term Offered: Spring Term

Course Type(s): None

Students will be introduced to the various aspects related to software processes. It will focus on the definition and modeling of a software process, as well as on methods for process assessment and improvement. The concepts will be illustrated through process-improvement case studies, followed by hands-on experience with the improvement of the personal software-development process.

Course usage information

SE-418   Software Project ManagementCredits: 3   

Prerequisite(s): CS-176; and EN-101 and EN-102 or permission of the instructor

Term Offered: All Terms

Course Type(s): WT

Project management and its application to software-development projects. Emphasis will be on planning, organizing, monitoring, and controlling. Students will learn how to develop work breakdown structures, estimate task durations, assign resources, specify network precedence, and determine a project's critical path. Methods for scheduling in the face of resource constraints will be included, as well as function point counting, algorithmic models for estimating total project cost, and software tools for project planning and monitoring.

Course usage information

SE-450   Cyber SecurityCredits: 3   

Prerequisite(s): CS-205

Term Offered: Fall Term

Course Type(s): None

Cover fundamental theory and practice of cyber security. Review cryptographic tools used to provide security, such as shared key encryption; public key encryption, key exchange, authentication, digital signature, and intrusion detection. Learn implementation of secure mechanisms in object-oriented programming languages. Also listed as CS-450.

Course usage information

SE-451   Applied Computer SecurityCredits: 3   

Prerequisite(s): CS-450 or SE-450

Term Offered: Spring Term

Course Type(s): None

This course will introduce students to multiple aspects of computer security and practice into a series of well-defined security topics such as network security and hacking tools. Also, the student will introduce different topics of digital forensics. Also listed as CS-451.

Course usage information

SE-485A   Software PracticumCredits: 3   

Prerequisite(s): CS-205, SE-205, SE-207, SE-312, SE-357 and SE-358 All passed with a grade of C or higher.

Term Offered: Fall Term

Course Type(s): EX5, RD

Team work on substantial software projects submitted by corporate sponsors. Interim progress reports required, with a final formal defense and presentation to corporate staff, faculty, and other students in the course. At the end of SE-485A, students must submit their software engineering portfolio for review by the Software Engineering faculty.

Course usage information

SE-485B   Software PracticumCredits: 3   

Prerequisite(s): SE-485A

Co-requisite(s): SE-402

Term Offered: Spring Term

Course Type(s): EX5, RD

Team work on substantial software projects submitted by corporate sponsors. Interim progress reports required, with a final formal defense and presentation to corporate staff, faculty, and other students in the course. At the end of SE-485B, students must submit their software engineering portfolio for review by the Software Engineering faculty.

Course usage information

SE-498   Special Topics in Software EngineeringCredits: 3   

Term Offered: Fall Term

Course Type(s): None

A 400-level intensive study of a particular subject or problem in software engineering to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week. If a prerequisite is required it will be announced in the course schedule.

Course usage information

SE-499   Independent Study in Software EngineeringCredits: 1-3   

Term Offered: All Terms

Course Type(s): None

Independent Study of a particular subject or problem in software engineering under the guidance of a software engineering faculty member. Prior permission of the directing professor and department chair is required to take this course.