Software Engineering (SWE)

Courses

SWE 211. Software Engineering. 4 Units.

Study of the concepts, methods, and tools for the analysis, design, construction, and measurement of complex software-intensive systems. Underlying principles emphasized. State-of-the-art software engineering and promising research areas covered, including project management.

SWE 212. Analysis of Programming Languages. 4 Units.

Concepts in modern programming languages, their interaction, and the relationship between programming languages and methods for large-scale, extensible software development. Empirical analysis of programming language usage.

Same as COMPSCI 253.

SWE 213. Requirements Engineering and Specification. 4 Units.

Rigorous techniques in requirements engineering - the requirements definition phase of software development - with a focus on modeling and specification. Topics include notations and models for requirements specification; and methods, tools, and processes for software requirements elicitation, representation, analysis.

Restriction: Graduate students only.

SWE 215. Software Analysis and Testing. 4 Units.

Studies techniques for developing confidence in software from traditional testing schemes to integrated, multitechnique analytic approaches. Considers strengths and weaknesses and explores opportunities for synergistic technique application. Emphasis is on approaches integrated into the software process.

Restriction: Graduate students only.

SWE 219. Software Environments. 4 Units.

Study of the requirements, concepts, and architectures of comprehensive, integrated, software development and maintenance environments. Major topics include process support, object management, communication, interoperability, measurement, analysis, and user interfaces in the environment context.

Restriction: Graduate students only.

SWE 221. Software Architecture. 4 Units.

Study of the concepts, representation techniques, development methods, and tools for architecture-centric software engineering. Topics include domain-specific software architectures, architectural styles, architecture description languages, software connectors, and dynamism in architectures.

Restriction: Graduate students only.

SWE 223. Applied Software Design Techniques. 4 Units.

Study of concepts, representations, techniques, and case studies in structuring software systems, with an emphasis on design considerations. Topics include static and dynamic system structure, data models, abstractions, naming, protocols and application programmer interfaces.

Restriction: Graduate students only.

SWE 225. Information Retrieval, Filtering, and Classification. 4 Units.

Algorithms for the storage, retrieval, filtering, and classification of textual and multimedia data. The vector space model, Boolean and probabilistic queries, and relevance feedback. Latent semantic indexing; collaborative filtering; and relationship to machine learning methods.

Prerequisite: COMPSCI 161 and COMPSCI 171 and (I&C SCI 6N or MATH 3A or MATH 6G)

Same as COMPSCI 221.

Restriction: Graduate students only.

SWE 241P. Applied Data Structures and Algorithms. 2 Units.

Exploration of strategies to tackle computational problems whose solutions include well-known algorithms and data structures. Topics include sorting, searching, indexing, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only.

SWE 242P. Network Programming. 2 Units.

Exploration of networking principles and concepts for the development of distributed software. Topics include programming against well-known network protocols, ports and sockets, and network APIs.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only.

SWE 243P. Database Programming . 2 Units.

Exploration of software development with substantial reliance on a database for storage and retrieval of data. Topics include relational databases, structured query language, relational database management systems, APIs and libraries for database programming, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only.

SWE 244P. Concurrent Programming. 2 Units.

Exploration of concepts and mechanisms for the development of concurrent software. Topics include threads, locks, race conditions, and deadlocks, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 245P. GUI Programming . 2 Units.

Exploration of interactive software with substantial graphical user interface elements. Topics include libraries and frameworks for GUI programming, layout design and alternatives, event-driven programming, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 246P. Mobile Programming. 2 Units.

Exploration of contemporary libraries and frameworks for construction of mobile applications. Topics include emulators, mobile development standards and patterns, energy consumption issues, screen layout, among others.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 247P. Applied Information Retrieval. 2 Units.

Exploration of principles and concepts for textual information retrieval. Topics include tokenization, inverted indexes, scored retrieval, and precision and recall.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 248P. Neural Network Programming . 2 Units.

Exploration of the concepts, terminology, and processes for training and using deep neural networks for classification problems. Topics include tensors and tensor operations, gradient-based optimization, feature engineering and learning, and workflow of learning systems.

Repeatability: May be taken for credit 2 times.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 261P. Software Testing and Debugging. 4 Units.

Designed to teach students how to ensure high-quality software by means of testing, debugging, and other quality assurance activities. Students learn a combination of both theoretical and practical skills, including hands-on experience with modern tools and approaches.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 262P. Programming Styles. 4 Units.

Designed to teach students the various ways software can be decomposed and put back together. Students are exposed to a variety of different programming styles and composition mechanisms.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 263P. User Experience and Interaction. 4 Units.

Provides an introduction to the basic principles of human-computer interaction (HCI) and the pragmatic aspects of usability engineering. Topics include the fundamentals of interaction, user experience, design for usability, and evaluation of products for their usability.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 264P. Distributed Software Architecture. 4 Units.

Study of software system architectures and architectural styles for large-scale distributed applications, and contemporary technologies and standards for their construction. Topics include client-server, peer-to-peer, publish-subscribe, REST, cloud computing, content distribution networks, scalability, latency, caching, and security, among others.

Restriction: Master of Software Engineering Degree students only.

SWE 265P. Reverse Engineering and Modeling. 4 Units.

Introduces theories, concepts, representations, techniques, and case studies in understanding large-scale, complex software systems. Topics include static and dynamic modeling notations, manual and (semi-)automated reverse engineering techniques, APIs, patterns, and styles. A significant, hands-on project is included.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 266P. Software Security and Dependability . 4 Units.

Principles and concepts for the design and construction of secure software. Topics include common types of software security vulnerabilities, methods for detecting vulnerabilities, design and process methodologies to improve security of software, and techniques for assessing security properties of software.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 271P. Career and Entrepreneurship. 4 Units.

Teaches practical skills for spoken, written, and electronic communication in a range of business and technical contexts, including promoting project ideas and portfolio development. Students practice their skills in classroom presentations and written exercises.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 272P. Project Management. 4 Units.

Provides an introduction to project management in software engineering from several perspectives. Topics include team behavior; globally distributed work; resource estimation, scheduling, and budgeting. Students apply their knowledge in an ongoing class project.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 275P. Curricular Practical Training. 1 Unit.

Mandatory internship in which students individually work at an outside organization to gain experience with the challenges involved in the practice of software engineering.

Grading Option: Satisfactory/unsatisfactory only.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

SWE 276P. Capstone Project in Software Engineering. 4 Units.

Quarter-long software-intensive project focusing on the design and implementation of a novel software system. Students are expected to bring to bear the concepts acquired during the program.

Restriction: Master of Software Engineering Degree students only. Graduate students only.

Back to Top