SE 500 - Mathematics for Software Engineering | |
---|---|
Prerequisites: | Admission to the program |
Corequisites: | None |
Credits: | 3cr |
Course Description: | This course introduces students to the formal mathematical tools and methods necessary for software engineering. Topics include equational logic, propositional calculus and its applications, techniques of proof, formal logic, quantification and predicate calculus, application of predicate calculus to programming, and mathematical induction. |
SE 501 - Introduction to Software Development | |
---|---|
Prerequisites: | Admission to the program |
Corequisites: | None |
Credits: | 3cr |
Course Description: | This course serves as an introduction to the discipline of Software Engineering, involving both a study of theory and practice. Significant ideas and developments are emphasized along with an examination of terminologies, classifications, paradigms, and methodologies. The course also provides an opportunity to review essential computer science material (data structures, programming languages and environments, systems, and architectures) as appropriate within this context. |
SE 504 - Formal Methods and Models | |
---|---|
Prerequisites: | SE 500 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | This course is concerned with the application of mathematical techniques and models to the problem of software development. Of particular concern are means by which to develop provably correct programs. |
SE 507 - Requirements Analysis and Software Specification | |
---|---|
Prerequisites: | SE 500 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | Exploration of two inter-related subjects of software life-cycle-process; requirements and their specifications. Topics: Requirements analysis techniques, interview process, prototypes, types of requirements (functional, nonfunctional, reliability, quality, security, etc.), traceability, languages of specification (axiomatic, algebraic, finite state machine, abstract, operational, concurrency). |
SE 510 - Principles and Applications of Software Design | |
---|---|
Prerequisites: | SE 507 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | This course covers the principles, methods, and techniques used in the design of software systems. It includes architectural and detailed design with an emphasis on the object-oriented paradigm. Topics include software design process; design principles; software architectures; frameworks; design patterns; and coding idioms; design notations and support tools. |
SE 515 - Software Generation and Maintenance | |
---|---|
Prerequisites: | SE 501 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | Maintenance accounts for about 70% of the software system life cycle. Designing new maintainable software systems is as important as dealing with existing non-maintainable ones. Topics include: writing reusable software components, automatic code and application generators and their limitations, regression analysis, reverse engineering, etc. |
SE 516 - Engineering of Software Systems | |
---|---|
Prerequisites: | None |
Corequisites: | None |
Credits: | 3cr |
Course Description: | There is a parallel between hardware system engineering and software systems engineering. Several issues are relevant to both and in many cases they interact with each other. Topics include: system requirements gathering and specification, system design, interfaces with hardware and software systems, human-computer interfaces, system testing and integration, documentation, quality assurance, and configuration management. |
SE 521 - Database Systems | |
---|---|
Prerequisites: | SE 507 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | A study of both theoretical and practical aspects of database systems with an emphasis on relational database systems. Topics include DBMS architectures, entity-relationship and UML data modeling, relational data modeling, database design using entity-relationship data models, relational algebra and Structured Query Language (SQL), functional dependencies and normal forms, system catalogs, transaction processing, concurrency control, and selected advanced topics. |
SE 524 - Software Project Management | |
---|---|
Prerequisites: | SE 510 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | Software system development; project development; budget and human factors. Relationship between quality assurance, communication management and project documentation. Ethical and security issues. |
SE 532 - Interactive and Time Critical Systems Design | |
---|---|
Prerequisites: | SE 507 and SE 510 |
Corequisites: | None |
Credits: | 3cr |
Course Description: | Real-time and embedded software systems development present a whole different set of variables to the software engineer. This course focuses on a number of design, development, and maintenance techniques for this type of system. Topics include data acquisition and generation, system design strategies, testing constraints, verification, etc. |
SE 598 - Project Analysis & Design | |
---|---|
Prerequisites: | Having passed all required courses |
Corequisites: | None |
Credits: | 3cr |
Course Description: | SE 598 and 599 is a two-semester sequence in which students are expected to undertake a software thesis project which requires the use of tools, techniques and theory learned from previous courses. It will be strongly recommended that thesis projects be developed in teams. |
SE 599 - Project Implementation and Evaluation | |
---|---|
Prerequisites: | Having passed all required courses |
Corequisites: | None |
Credits: | 3cr |
Course Description: | SE 598 and 599 is a two-semester sequence in which students are expected to undertake a software thesis project which requires the use of tools, techniques and theory learned from previous courses. It will be strongly recommended that thesis projects be developed in teams. |