2023-24 Edition

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 CS 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.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Graduate students only.

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.

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 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: CS 161 and CS 171 and (ICS 6N or MATH 3A or MATH 6G)

Same as CS 221.

Restriction: Graduate students only.

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: CS 171

Restriction: Graduate students only.

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, emotion, language, gender, and software tools.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Graduate students only.

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.

Restriction: Master of Software Engineering Degree students only. Graduate students 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.

Restriction: Graduate students only. 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. Graduate 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. Graduate 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 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.

Restriction: Master of Software Engineering Degree students only. Graduate students 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.

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. Graduate 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 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.

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; and 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. 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.

Restriction: Graduate students only. Master of Software Engineering Degree 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.

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 repeated for credit unlimited times.

Restriction: Graduate students only.

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.

Restriction: Master of Software Engineering Degree students only. Graduate students 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 repeated for credit unlimited times.

Restriction: Graduate students only.

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 repeated for credit unlimited times.

Restriction: Graduate students only.

SWE 299. Individual Study. 1-12 Units.

Individual research or investigation under the direction of an individual faculty member.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

SWE 299P. Independent Study. 1-4 Units.

Supervised individual practical project in Software Engineering.

Repeatability: May be taken for credit 4 times.

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