Software Engineering (SE)

Course usage information

SE-104   Introduction to Software EngineeringCredits: 3   

Term Offered: Spring Term

Course Type(s): None

Introduction to the methods and tools for software development. Topics include the personal software process, requirements engineering, software design, testing methods, project management, and other management techniques.

Course usage information

SE-199   Independent Study in Software EngineeringCredits: 3   

Course Type(s): None

Independent Study of a particular subject or problem in software engineering under the guidance of a software engineering faculty member.

Course usage information

SE-205   Requirements Engineering and SpecificationsCredits: 3   

Prerequisites: SE-104 and CS-175.

Term Offered: Fall Term

Course Type(s): None

Elicitation, analysis, specification, validation, and management of user requirements; conflict resolution; process, notations, methods and tools, requirements standards, operational concepts documents (OCD) and system requirements specifications (SRS).

Course usage information

SE-207   Software Design and ArchitectureCredits: 3   

Prerequisites: SE-104 and CS-176 or CS-275; 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. Test and integration plan documents. Architecture standards; design tools.

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.

Course usage information

SE-306   Formal Methods in Software EngineeringCredits: 3   

Prerequisite: MA-120 or MA-130.

Term Offered: Fall Term

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   

Prerequisites: SE-104 and CS-176 or CS-275.

Term Offered: Fall Term

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-351   Microprocessor LaboratoryCredits: 3   

Prerequisite: MA-120 or MA-130.

Term Offered: Fall Term

Course Type(s): None

Introduces the student to microprocessor-based, hardware-interface design. Provides practice in developing software that drives the interfaces between a microprocessor and the outside world. Topics include: logic circuit analysis and synthesis, digital hardware components, microprocessor system architecture, and assembly and C/C++ language programming of input/output device drivers.

Course usage information

SE-352   Embedded and Real-Time SoftwareCredits: 3   

Prerequisite: 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: CS-176 or CS-275.

Term Offered: All Terms

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-356   Internet Technologies for Software EngineersCredits: 3   

Prerequisites: CS-102 and CS-176 or CS-275.

Term Offered: All Terms

Course Type(s): None

Provides an intensive look at the leading-edge technologies that are used to build Internet applications, what they do, and how they do it. Topics covered will include: hyper-text markup language, cascading style sheets, scripting languages, active server pages, Pert/CGI, and the extensible markup language.

Course usage information

SE-357   Engineering Web-based SystemsCredits: 3   

Prerequisites: SE-205 and SE-207.

Term Offered: Spring Term

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.

Course usage information

SE-360   Introduction to Game DevelopmentCredits: 3   

Prerequisite: 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: CS-176 or CS-275 passed with a grade of C or higher.

Term Offered: All Terms

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. Also listed as CS-370.

Course usage information

SE-398   Special Topics in Software EngineeringCredits: 3   

Prerequisite: As announced in the course schedule.

Term Offered: All Terms

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.

Course usage information

SE-402   Human Computer InteractionCredits: 3   

Prerequisite: Completion of forty-eight credits of coursework.

Term Offered: All Terms

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

Prerequisites: CS-176 or CS-275; and EN-101 and EN-102 or permission of the instructor.

Term Offered: Spring Term

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-485A   Software PracticumCredits: 3   

Prerequisites: CS-205, SE-205, SE-207, and SE-312.

Corequisite: SE-402.

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: SE-485A.

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   

Prerequisite: As announced in the course schedule.

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.