Software Engineering
Courses
SE 570 Agile Software Development Process 3.0 Credits
This course focuses on agile software production, introducing agile methodologies with the emphasis on software quality, mainstream development technology, and state-of-the-art frameworks. This course was built with the help of Agile Manifesto founders, software industry authors, consultants, trainers,and pedagogy experts, using Java systems to demonstrate Test-Driven Development (TDD) and Extreme Programming (XP).
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]
SE 572 Web Services and Mobile Architectures 3.0 Credits
This course introduces students to web-based and mobile development technologies and practices, including tiered application development, Service-Oriented Architectures and associated exchange protocols, and web-database programming. This course explores development and integration of web services from well-known providers as well as services created by the student, using a cross platform approach as a vehicle for interactions with the services.
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]
SE 575 Software Design 3.0 Credits
This course provides fundamental knowledge of software design and management. Topics include software design principles, abstraction and modularization, hierarchical structures and software families, design modeling and analysis, pattern-oriented design, and technical debts. The course strikes a balance between teaching principles of software design and analysis, and providing a basis for understanding cutting-edge techniques and concepts, using open source projects as case studies.
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]
SE 576 Software Reliability and Testing 3.0 Credits
This course provides in-depth coverage of testing and other software validation techniques intended to produce reliable, correct software. Topics include formal and informal specification, core testing techniques, approaches to comparing quality of test suites, principles of reasoning about software correctness, guided automatic test generation, designing software to support validation, and using current and future tools to automatically validate or find bugs in software. The course strikes a balance between teaching principles of reasoning about programs, techniques in current use, and providing a basis for understanding cutting-edge techniques still in early stages of adoption.
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]
SE 577 Software Architecture 3.0 Credits
This course provides fundamental knowledge of software architecture needed by modern software architects. Topics include the basis skills and knowledge needed by a software architect, architecture modeling and analysis, architecture styles and patterns, architecture quality attributes, architecture in open source projects and industrial projects, etc. The course strikes a balance between teaching principles of software architecture and analysis, and providing a basis for understanding cutting-edge techniques and concepts, using open source projects as case studies.
Repeat Status: Not repeatable for credit
Prerequisites: SE 575 [Min Grade: C]
SE 578 Security Engineering 3.0 Credits
This course introduces students to foundational concepts pertaining to the broad area of security engineering. It starts with the central concept of a security protocol, and proceeds to human-computer interface issues, access control, crypto, and distributed system security. The course considers security from the viewpoint of different interest groups such as companies, consumers, criminals, police, and spies. Students also partake in a study of at least one of a number of important application areas, such as, for example, military communications, medical record systems, cash machines, and mobile phones.
Repeat Status: Not repeatable for credit
Prerequisites: CS 502 [Min Grade: C] and CS 503 [Min Grade: C]
SE 610 Open Source Software Engineering 3.0 Credits
Explores tools, techniques, process, and culture of free and open source software (FOSS) projects. Addresses open source project evaluation, business models, and FOSS as a source of software engineering innovation. Includes student participation in an existing humanitarian FOSS project. Introduces concepts of computing for social good.
Repeat Status: Not repeatable for credit
SE 611 Software Analytics 3.0 Credits
Software repositories archive valuable software engineering data, such as source code, execution traces, historical code changes, mailing lists, bug reports, and chats. This data contains a wealth of information about a project’s status and history. By doing data science on software repositories, researchers can gain an understanding of software development practices, and practitioners can better manage, maintain, and evolve complex software projects. Software analytics techniques may be applied to various tasks such as code summarization, code comment generation, question-answer extraction, sentiment analysis, etc. This class provides students with an understanding of and hands-on experience with ML and NLP techniques that represent knowledge and solve existing SE problems.
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]
SE 627 Requirements Engineering and Management 3.0 Credits
Provides students with an opportunity to explore and experience methodologies, tools, and techniques for eliciting, analyzing, specifying, and managing requirements in modern software development organizations. Focuses on the intersection of requirements engineering, strategic IS and business planning, and business process reengineering. Students will also learn about change management in in the context of requirements engineering. Upon completion of the course, each student should have new skills and insights that are immediately applicable to the performance of the requirements engineering project function.
Repeat Status: Not repeatable for credit
Prerequisites: INFO 620 [Min Grade: C] or CS 502 [Min Grade: C] or INFO 600 [Min Grade: C]
SE 630 Software Engineering Economics 3.0 Credits
Focuses on concepts of software engineering economics applied to software projects and IT services. Coverage includes product and service selection and evaluation, impact of emerging technologies, standards, and vendor strategies. Emphasizes financial considerations including return on investment, time cost of money, depreciation, and system life applied to analysis of alternative designs.
Repeat Status: Not repeatable for credit
SE 636 Software Engineering Process 3.0 Credits
Explores software engineering process models, techniques, and tools. Covers evolution of software process ideas including plan-based and agile methods. Emphasizes current practices including mainstream agile and lean software processes. Explores process selection and customization considering factors such as scale, control, and application domain.
Repeat Status: Not repeatable for credit
Prerequisites: INFO 620 [Min Grade: C] or CS 520 [Min Grade: C] or CS 502 [Min Grade: C]
SE 638 Software Project Management 3.0 Credits
Focuses on first-line management of software system development. Covers major themes including estimation (software cost factors, estimation models, and risk management), planning (work breakdown, scheduling, staffing, resource allocation, and creation of a project plan), and execution (team building, leadership, motivation, process tracking, control recovery, and communication within and outside the project).
Repeat Status: Not repeatable for credit
Prerequisites: INFO 620 [Min Grade: C] or CS 502 [Min Grade: C] or SE 630 [Min Grade: C] or INFO 532 [Min Grade: C]
SE 691 Software Studio 3.0 Credits
Provides a multi-term integrative experience involving application of software engineering tools and techniques. Students work in teams to develop or contribute to large-scale software products. Requires participation in a development process that includes planning, specification, design, implementation, evaluation, and documentation.
Repeat Status: Can be repeated 2 times for 9 credits
Prerequisites: SE 570 [Min Grade: C]
SE T680 Special Topics in Software Engineering 0.0-12.0 Credits
Special Topics Covers topics of special interest to students and faculty.
Repeat Status: Can be repeated multiple times for credit