SWE Courses

SWE 206 Introduction to Software Engineering (2-3-3)
Introduction to software engineering discipline, software process, requirements analysis and design models. Understanding of ethical and professional issues of software engineering discipline
Prerequisites: ICS 108 

SWE 216 Requirements Engineering (3-0-3)
Requirements engineering process. Methods, tools, and techniques for eliciting, organizing and documenting software requirements. Analysis and validation techniques, including need, goal, and use case analysis. Requirements documentation standards. Traceability. Requirements management. Handling requirements changes. Capturing usability requirements and developing UI prototypes based on requirements. Students participate in a group project on software requirements.
Prerequisites: SWE 206

SWE 302 Game Programming (3-0-3)
Introduction to games; Game programming principles; Game development engines: PyGame and Unity3D; Game data structures; Game intelligence; Simulation; Graphics and animation; Collision detection; Strategy games; Action games; Games research; Application of games to other domains.
Prerequisites: SWE 206

SWE 316 Software Design and Construction (3-0-3)
Study of design concepts and notations. Architecture, construction, and design patterns. Designing for different qualities criteria. Design evolution processes and activities.
Prerequisites: SWE 206

SWE 321 Formal Methods and Models in Software Engineering (3-0-3)
Mathematical foundations for formal methods. Formal languages and techniques for specification and design, including specifying syntax using grammars and finite state machines. Analysis and verification of specifications and designs. Use of assertions and proofs. Automated program and design transformation.
Prerequisites: ICS 202 and ICS 253

SWE 326 Software Testing (3-0-3)
Practical ways to design high quality tests during all phases of software development. Test Planning. Test design. Test coverage criteria. Test automation. Concept of static analysis. Reviews. Walkthroughs. Inspections. Students participate in a group project on software.
Prerequisites: SWE 216

SWE 363 Web Engineering and Development (3-0-3)
Fundamentals of web and mobile applications and how they impact people’s lives; Building responsive front-end web and mobile apps; Back-end programming of dynamic and data-driven websites; Development frameworks for web and mobile apps; Security issues of web applications; Practical applications to real-world problems.
Prerequisites: Junior Standing

SWE 387 Software Project Management (3-0-3) 
Introduction to project management concepts, managing time, cost, change, risk, quality, communication and people; development and management standards and managing software development projects.
Prerequisites: Junior Standing

SWE 399 Summer Training (0-0-0)
A summer period of 8 weeks spent as a trainee in industry, business, or government agencies for the purpose of familiarizing the student with the real job world and enabling him to apply and relate his academic knowledge to a real work environment. The student is required to participate in software engineering related activities and use his time to get acquainted with the software engineering related functions and resources used by his employing organization. Besides progress reports, the student is required to submit a final report and do a presentation on his experience and the knowledge he gained during his summer training program.
Prerequisites: SWE 363, ENGL 214 and Department Approval

SWE 411 Software Engineering Project I (1-6-3)
This is the first part of a two-semester senior-year capstone project. Student teams employ knowledge gained from courses throughout the program such as development of requirements, design, implementation, and quality assurance to develop a software solution to a real-world problem from conception to completion. In this part, students develop project plan and software requirements specification. Next, students’ teams can either develop complete design document or follow agile like methodology to develop design document and implementation for 30% of system features.
Prerequisites: SWE 316 and SWE 387

SWE 412 Software Engineering Project II (0-6-2)
This is the second part of a two-semester senior-year capstone project. Student teams employ knowledge gained from courses throughout the program to develop a software solution to a realworld problem from conception to completion. In this part, students review and refine documents prepared in SWE 411; finalize design, complete implementation of the application, test their code, and evaluate their final product.
Prerequisites: SWE 326 and SWE 411

SWE 416 Software Architecture (3-0-3)
Study the concepts, principles, methods, and best practices in software architecture. Different architectural styles, patterns and product lines are presented and compared. Methods to analyze, evaluate and document software architectures are also discussed. Students participate in a group project on software architecture design.
Prerequisites: SWE 316 

SWE 422 Usability Engineering (3-0-3)
Design, implement and evaluate software system interfaces with focus on usability, interaction paradigms and human computer activities. The lifecycle of an interactive human computer interface is studied from both engineering and end-user perspectives. 
Prerequisites: SWE 206

SWE 436 Object-Oriented Design Patterns (3-0-3)
A depth study of object-oriented design patterns. How design patterns solve design problems? How to select a design pattern? How to use a design pattern? Detailed study of creational patterns, structural patterns, and behavioral patterns. Case studies.
Prerequisites: SWE 316

SWE 439 Software Quality Engineering (3-0-3)
Overview of engineering foundations of software, basics of measurement theory, empirical experimentation in software engineering, software metrics and measuring software quality.
Prerequisites: SWE 316 and STAT 319

SWE 440 Information Security Management (3-0-3)
Introduction to information security management principles, management of threats to and vulnerabilities of information security, risk management, and to apply the knowledge of people and technical security controls.
Prerequisites: Senior Standing

SWE 445 Secure Software Development (3-0-3)
Security in requirements engineering; Secure designs; Risk analysis; The SQUARE Process Model; Threat modeling; Defensive coding; Software protection; Fuzzing; Static analysis and security assessment; Memory leaks, buffer and heap overflow attacks, injection attacks. 
Prerequisites: Senior Standing

SWE 463 Mobile Application Development (3-0-3) 
Comprehensive introduction to building mobile applications for devices based on Android and iOS operating systems, including use of standard integrated development environment: Android Studio and Xcode, as well as testing and debugging on devices and emulators/simulators. Topics cover programming language for iOS programming, and mobile platform APIs for user interface, graphics, networking, data, and web services 
Prerequisites: ICS 108

SWE 487 Software Processes and Process Improvements. (3-0-3)
Software process models. Software process analysis. Life cycle process models and standards. Process implementation at various levels like organization, project, team, or individual. Measurement and analysis of software process. Process improvements.
Prerequisites: SWE 387

SWE 490 Special Topics I (3-0-3) 
In-depth study of a selected special topic relevant to software engineering
Prerequisites: Consent of the Instructor

SWE 491 Special Topics II (3-0-3)
In-depth study of a selected special topic relevant to software engineering
Prerequisites: Consent of the Instructor

SWE 497 Undergraduate Research (3-0-3)
The course introduces students to research. Explains the differences between different publications channels like conferences, journals, books, and book chapters. Introduces students to metrics like impact factor and H-index. Teaches how to search and locate relevant literature on a given research topic. Introduces students to research methodology, experimentation design, and ways to conduct experiments and report the results. It also teaches students on how to prepare a research article.
Prerequisites: Consent of the Instructor