2026-27 Edition

Software Engineering (SWE)

Courses

SWE 43.  Introduction to Software Engineering.  4 Units.  
Concepts, methods, and current practice of software engineering. Large-scale software production, software life cycle models, principles, and techniques for each stage of development.
Prerequisite: I&C SCI 32 or I&C SCI H32 or I&C SCI 32A.   
Overlaps with I&C SCI 105.  
Restrictions: Computer Science and Engineering majors and School of Information and Computer Sciences students have the first consideration for enrollment.   
SWE 113.  Requirements Analysis and Engineering.  4 Units.  
Equips students to develop techniques of software-intensive systems through successful requirements analysis techniques and requirements engineering. Students learn systematic process of developing requirements through cooperative problem analysis, representation, and validation.
Prerequisite: I&C SCI 33 with a minimum grade of C and SWE 43 with a minimum grade of C.   
Restrictions: Informatics majors, Software Engineering majors, Business Information Management majors, and Game Design and Interactive Media majors have the first consideration for enrollment. School of Information and Computer Sciences students only. Computer Science Engineering Majors have second consideration for enrollment.  
SWE 115.  Software Testing, Analysis, and Quality Assurance.  4 Units.  
Preparation for developing high-quality software through successful verification and validation techniques. Fundamental principles of software testing, implementing software testing practices, ensuring the thoroughness of testing to gain confidence in the correctness of the software.
Prerequisite: (I&C SCI 45J with a minimum grade of C or I&C SCI 45C with a minimum grade of C or I&C SCI 46 with a minimum grade of C) and SWE 43 with a minimum grade of C.   
Restrictions: Computer Science and Engineering majors and School of Information and Computer Sciences students have the first consideration for enrollment.   
SWE 117.  Project in Software System Design.  4 Units.  
Specification, design, construction, testing, and documentation of a complete software system. Special emphasis on the need for and use of teamwork, careful planning, and other techniques for working with large systems.
Prerequisite: SWE 43 and I&C SCI 33.   
Restrictions: Computer Science and Engineering majors and School of Information and Computer Sciences students have the first consideration for enrollment.   
SWE 119.  Engineering Artificial Intelligence Software.  4 Units.  
Design, deploy, and manage software incorporating AI components in real-world production environments. Topics include types of models, in-house vs. third-party models, retrieval augmented generation, fine-tuning, prompt engineering, model testing, and reliability.
Prerequisite: (I&C SCI 45C with a minimum grade of C or I&C SCI 45J with a minimum grade of C) and (STATS 7 or STATS 67).   
Restrictions: Informatics majors and Software Engineering majors have the first consideration for enrollment. School of Information and Computer Sciences students only. Computer Science Engineering Majors have second consideration for enrollment.  
SWE 121.  Software Design: Applications.  4 Units.  
Introduction to application design: designing the overall functionality of a software application. Topics include general design theory, software design theory, and software architecture. Includes practice in designing and case studies of existing designs.
Prerequisite: I&C SCI 33 with a minimum grade of C or GDIM 33 with a minimum grade of C.   
Restrictions: Computer Science and Engineering majors and School of Information and Computer Sciences students have the first consideration for enrollment.   
SWE 122.  Software Design: Structure and Implementation.  4 Units.  
Introduction to implementation design: designing the internals of a software application. Topics include design aesthetics, design implementation, design recovery, design patterns, and component reuse. Includes practice in designing and case studies of existing designs.
Prerequisite: I&C SCI 45J or I&C SCI 46.   
Restrictions: Computer Science and Engineering majors and School of Information and Computer Sciences students have the first consideration for enrollment.   
SWE 124.  Internet Applications Engineering.  4 Units.  
Concepts in Internet applications engineering with emphasis on the Web. Peer-to-Peer and Interoperability. Topics include HTTP and REST, Remote Procedure/Method Calls, Web Services, data representations, content distribution networks, identity management, relevant W3C/IETF standards, and relevant new large-scale computing styles.
Prerequisite: (COMPSCI 132 or EECS 148) and I&C SCI 45J.   
Same as COMPSCI 137  
Overlaps with COMPSCI 122B.  
Restrictions: Computer Science and Engineering majors and School of Information and Computer Sciences students have the first consideration for enrollment.   
SWE 141.  Information Retrieval.  4 Units.  
An introduction to information retrieval including indexing, retrieval, classifying, and clustering text and multimedia documents.
Prerequisite: (I&C SCI 45C with a minimum grade of C or I&C SCI 45J with a minimum grade of C) and (STATS 7 or STATS 67 or MGMT 7 or AP Statistics with a minimum score of 3).   
Same as COMPSCI 121  
Restrictions: School of Information and Computer Sciences students have the first consideration for enrollment.   
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 214.  Program Analysis.  4 Units.  
Covers principles and concepts of automated program analysis. Topics include program representations; intra-procedural data-flow analysis; call-graph construction; pointer analysis; alias analysis; inter-procedural analysis; inter-procedural finite distributive subset problems; inter-procedural distributive environment problems; symbolic execution; and program-analysis applications.
Restrictions: School of Information and Computer Sciences students have the first consideration for enrollment.   
SWE 215.  Dynamic Analysis, Testing, and Debugging.  4 Units.  
Studies techniques for developing confidence in software from traditional testing techniques to state-of-the-art dynamic analysis and debugging techniques. Emphasis is on assisting developer comprehension of runtime behavior.
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.
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  
SWE 233.  Intelligent User Interfaces.  4 Units.  
Explores example software systems and their underlying concepts that leverage computing to empower and augment human individuals in their activities. Topics span the fields of user interface design, human-computer interaction, software engineering, and cognitive computing.
Prerequisite: COMPSCI 171.   
SWE 234.  Human Aspects of Software Engineering.  4 Units.  
Selected topics about the cooperative and human aspects of software engineering from the perspective that software engineering is inherently an endeavor involving human stakeholders. Topics may include but are not limited to collaboration, trust, creativity, well-being, productivity, and software tools.
Restrictions: School of Information and Computer Sciences students have the first consideration for enrollment. No Master of Software Engineering students.  
SWE 240P.  Data Structures.  2 Units.  
Exploration of well-known data structures to represent computational problems. Topics include linked lists, graphs, binary trees, stacks, queues, heaps, and hash tables, among others.
Repeatability: May be taken for credit 2 times  
Restrictions: Master of Software Engineering only.   
SWE 241P.  Algorithms.  2 Units.  
Exploration of strategies to tackle computational problems whose solutions include well-known algorithms. Topics include sorting, searching, and indexing, among others.
Repeatability: May be taken for credit 2 times  
Restrictions: Master of Software Engineering 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  
Restrictions: Master of Software Engineering 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  
Restrictions: Master of Software Engineering 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  
Restrictions: Master of Software Engineering 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  
Restrictions: Master of Software Engineering 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  
Restrictions: Master of Software Engineering 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  
Restrictions: Master of Software Engineering 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  
Restrictions: Master of Software Engineering only.   
SWE 249P.  Applied Data Analytics.  2 Units.  
Exploration of the concepts, terminology, and processes used in supervised and unsupervised learning for classification and clustering, from a software engineering perspective. Topics include K-Nearest Neighbors, Logistic Regression, Random Forests, Support Vector Machines, K-Means, and model assessment.
Repeatability: May be taken for credit 2 times  
Restrictions: Master of Software Engineering only.   
SWE 250P.  Web Programming.  2 Units.  
Exploration of the concepts, terminology, and popular frameworks for developing full-stack web applications. Students develop simple applications using multiple development stacks, and deploy them on the cloud.
Repeatability: May be taken for credit 2 times  
Restrictions: Master of Software Engineering only.   
SWE 251P.  Introduction to Large Language Models.  2 Units.  
Introduces LLMs for software engineering, covering transformers, prompt/context engineering, and retrieval-augmented generation (RAG). Students gain hands-on experience interacting with models using APIs and open-source models while laying the foundation for advanced study in SWE 270P.
Restrictions: Master of Software Engineering 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.
Restrictions: Master of Software Engineering only.   
SWE 262P.  Advanced Programming Techniques.  4 Units.  
Teaches students the various ways software can be decomposed and then how to put the parts back together. Students are exposed to a variety of different programming styles and composition mechanisms.
Restrictions: Master Of Software Engineering majors and Master of Software Engineering 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.
Restrictions: Master of Software Engineering 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.
Restrictions: Master of Software Engineering 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.
Restrictions: Master of Software Engineering 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.
Restrictions: Master of Software Engineering only.   
SWE 267P.  Cloud and Security Foundations.  4 Units.  
Cloud and security foundations provides students fundamental design and security principles about cloud computing and information security. Topics include cloud concepts and architectures; cloud security; data protection and privacy compliance and governance; and security by design, amongst other topics.
Restrictions: Master of Software Engineering only.   
SWE 270P.  Engineering Artificial Intelligence Software.  4 Units.  
Design, deploy, and manage software incorporating AI components in real-world production environments. Topics include learning about different types of models, in-house vs. third-party models, retrieval augmented generation, fine-tuning, prompt engineering, model testing, and reliability.
Restrictions: Master Of Software Engineering majors and Master of Software Engineering only.   
SWE 275P.  Curricular Practical Training.  0.5 Units.  
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  
Repeatability: May be taken for credit 2 times  
Restrictions: Master of Software Engineering 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.
Restrictions: Master of Software Engineering only.   
SWE 277P.  Capstone Project in Software Engineering II.  4 Units.  
Focuses on designing and implementing a novel software system. Students work on their project while emphasizing communication skills in business and technical settings. Students practice presenting project ideas, developing portfolios.
Corequisite: SWE 276P.  
Restrictions: Master Of Software Engineering majors and Master of Software Engineering only.   
SWE 290.  Research Seminar.  2 Units.  
Forum for presentation and criticism by students of research work in progress. Presentation of problem areas and related work. Specific goals and progress of research.
Grading Option: Satisfactory/Unsatisfactory only  
Repeatability: May be taken unlimited times  
SWE 290P.  Advisement.  0.3 Units.  
Mandatory weekly meetings with a faculty advisor.
Grading Option: Satisfactory/Unsatisfactory only  
Repeatability: May be taken for credit 3 times  
Restrictions: Master of Software Engineering only.   
SWE 295.  Special Topics in Software Engineering.  4 Units.  
Studies in selected areas of software engineering. Topics addressed vary each quarter.
Repeatability: May be taken unlimited times  
SWE 298.  Thesis Supervision.  2-12 Units.  
Individual research or investigation conducted in preparation for the M.S. thesis option or the dissertation requirements for the Ph.D. program.
Repeatability: May be taken unlimited times  
SWE 299.  Individual Study.  1-12 Units.  
Individual research or investigation under the direction of an individual faculty member.
Repeatability: May be taken unlimited times  
SWE 299P.  Independent Study.  1-4 Units.  
Supervised individual practical project in Software Engineering.
Repeatability: May be taken for credit 4 times