13 courses with the subject SE, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
SE 570Agile Software Development Process3.0
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
Subject
SE
Credits (min)
3
Credits (max)
3
Credit unit
Credits
Type
course
Repeatable
Can be repeated 2 times for 9 credits Prerequisites: SE 570 [Min Grade: C]