Full-Time Curriculum
Fall 1
In consultation with faculty advisor, select six 2-unit courses for a total of 12 units:
SWE 240P Data Structures (2)
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.
SWE 241P Applied Data Structures and Algorithms (2)
Exploration of strategies to tackle computational problems whose solutions include well-known algorithms and data structures. Topics include: sorting, searching, indexing, algorithmic complexity and runtime performance analysis.
SWE 242P Network Programming (2)
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.
SWE 243P Database Programming (2)
Exploration of software development with substantial reliance on a database for storage and retrieval of data. Topics include: relational databases, structured query language, NoSQL storage systems, APIs and libraries for database programming.
SWE 244P Concurrent Programming (2)
Exploration of concepts and mechanisms for the development of concurrent software. Topics include: threads, processes, locks, race conditions, and deadlocks.
SWE 245P GUI Programming (2)
Exploration of interactive software with substantial graphical user interface elements. Topics include: libraries and frameworks for GUI programming, layout design and alternatives, and event-driven programming.
SWE 246P Mobile Programming (2)
Exploration of contemporary libraries and frameworks for construction of mobile applications. Topics include: emulators, mobile development standards and patterns, energy consumption issues, and screen layout.
SWE 247P Applied Information Retrieval (2)
Exploration of state-of-the-art techniques for storing and retrieving non-structured textual information. Topics include: tokenization, inverted indexes, tf-idf, ranked retrieval, precision and recall.
SWE 248P Neural Network Programming (2)
Exploration of state-of-the-art frameworks for programming artificial intelligent components. Topics include: neural networks and deep neural networks, gradient descent, backpropagation, training and test sets, and model validation
SWE 249P Applied Data Analytics (2)
Description to include in hover-over text: 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.
SWE 250P Web Programming (2)
Description to include in hover-over text: 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.
and
SWE 290P Advisement (0.3)
Mandatory weekly meetings with a faculty advisor.
Winter
Enroll in all three:
SWE 261P Software Testing and Debugging (4)
This course is 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 via get hands-on experience with modern software quality-assurance tools and approaches. Topics include: black-box and white-box testing, category-partitioning testing, unit testing, test-driven and behavior-driven development, combinatorial testing, code reviews, static code analysis tools, mocking, regression testing, capture-reply, mutation testing, and debugging.
SWE 262P Programming Styles (4)
This course is designed to teach students the various ways software can be decomposed and then how to put the parts back together. Students will be exposed to a variety of different programming styles and composition mechanisms. Topics include: procedural styles, functional styles, object-oriented styles, data-centered styles, error handling styles, and styles for concurrent and parallel programming.
SWE 264P Distributed Software Architecture (4)
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.
Spring
Select at least three courses from the below:
SWE 263P User Experience and Interaction (4)
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. Students will apply their knowledge in assignments and an ongoing class project.
SWE 267P Cloud and Security Foundations (4)
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.
SWE 265P Reverse Engineering and Modeling (4)
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.
SWE 266P Software Security and Dependability (4)
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 the security of software, and techniques for assessing the security properties of software.
Summer
Students will be enrolled in the following course for both Summer Sessions I and II:
SWE 275P Internship (1)
Exploration of strategies to tackle computational problems whose solutions include well-known algorithms and data structures. Topics include: sorting, searching, indexing, algorithmic complexity and runtime performance analysis.
Fall 2
Enroll in all three:
SWE 271P Career and Entrepreneurship (4)
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 will practice their skills in classroom presentations and written exercises.
SWE 272P Project Management (4)
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 will apply their knowledge in an ongoing class project.
SWE 276P Capstone Project in Software Engineering (4)
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
*
Number in parenthesis refers to the number of units –
Example: (2) = 2 units
Part-Time Curriculum
Fall 1
In consultation with the faculty director select four 2-unit courses for a total of 8 units:
SWE 240P Data Structures (2)
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.
SWE 241P Algorithms (2)
Exploration of strategies to tackle computational problems whose solutions include well-known algorithms and data structures. Topics include: sorting, searching, indexing, algorithmic complexity and runtime performance analysis.
SWE 242P Network Programming (2)
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.
SWE 243P Database Programming (2)
Exploration of software development with substantial reliance on a database for storage and retrieval of data. Topics include: relational databases, structured query language, NoSQL storage systems, APIs and libraries for database programming.
SWE 244P Concurrent Programming (2)
Exploration of concepts and mechanisms for the development of concurrent software. Topics include: threads, processes, locks, race conditions, and deadlocks.
SWE 245P GUI Programming (2)
Exploration of interactive software with substantial graphical user interface elements. Topics include: libraries and frameworks for GUI programming, layout design and alternatives, and event-driven programming.
SWE 246P Mobile Programming (2)
Exploration of contemporary libraries and frameworks for construction of mobile applications. Topics include: emulators, mobile development standards and patterns, energy consumption issues, and screen layout.
SWE 247P Applied Information Retrieval (2)
Exploration of state-of-the-art techniques for storing and retrieving non-structured textual information. Topics include: tokenization, inverted indexes, tf-idf, ranked retrieval, precision and recall.
SWE 248P Neural Network Programming (2)
Exploration of state-of-the-art frameworks for programming artificial intelligent components. Topics include: neural networks and deep neural networks, gradient descent, backpropagation, training and test sets, and model validation
SWE 249P Applied Data Analytics (2)
Description to include in hover-over text: 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.
SWE 250P Web Programming (2)
Description to include in hover-over text: 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.
and
SWE 290P Advisement (0.3)
Mandatory weekly meetings with a faculty advisor.
Winter 1
Select one OR two courses from the below: Students must take all three courses during Winter 1 and Winter 2, with maximum two courses each quarter:
SWE 261P Software Testing and Debugging (4)
This course is 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 via get hands-on experience with modern software quality-assurance tools and approaches. Topics include: black-box and white-box testing, category-partitioning testing, unit testing, test-driven and behavior-driven development, combinatorial testing, code reviews, static code analysis tools, mocking, regression testing, capture-reply, mutation testing, and debugging.
SWE 262P Programming Styles (4)
This course is designed to teach students the various ways software can be decomposed and then how to put the parts back together. Students will be exposed to a variety of different programming styles and composition mechanisms. Topics include: procedural styles, functional styles, object-oriented styles, data-centered styles, error handling styles, and styles for concurrent and parallel programming.
SWE 264P Distributed Software Architecture (4)
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.
Spring 1
Select at least two courses from the below. Students must take at least three courses during Spring 1 and Spring 2 with maximum two courses each quarter:
SWE 263P User Experience and Interaction (4)
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. Students will apply their knowledge in assignments and an ongoing class project.
SWE 267P Cloud and Security Foundations (4)
ECloud 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.
SWE 265P Reverse Engineering and Modeling (4)
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.
SWE 266P Software Security and Dependability (4)
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 the security of software, and techniques for assessing the security properties of software.
Summer 1
No coursework
Fall 2
In consultation with the faculty director select two 2-unit courses for a total of 4 units that were not previously taken in the previous Fall quarter:
SWE 240P Data Structures (2)
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.
SWE 241P Algorithms (2)
Exploration of strategies to tackle computational problems whose solutions include well-known algorithms and data structures. Topics include: sorting, searching, indexing, algorithmic complexity and runtime performance analysis.
SWE 242P Network Programming (2)
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.
SWE 243P Database Programming (2)
Exploration of software development with substantial reliance on a database for storage and retrieval of data. Topics include: relational databases, structured query language, NoSQL storage systems, APIs and libraries for database programming.
SWE 244P Concurrent Programming (2)
Exploration of concepts and mechanisms for the development of concurrent software. Topics include: threads, processes, locks, race conditions, and deadlocks.
SWE 245P GUI Programming (2)
Exploration of interactive software with substantial graphical user interface elements. Topics include: libraries and frameworks for GUI programming, layout design and alternatives, and event-driven programming.
SWE 246P Mobile Programming (2)
Exploration of contemporary libraries and frameworks for construction of mobile applications. Topics include: emulators, mobile development standards and patterns, energy consumption issues, and screen layout.
SWE 247P Applied Information Retrieval (2)
Exploration of state-of-the-art techniques for storing and retrieving non-structured textual information. Topics include: tokenization, inverted indexes, tf-idf, ranked retrieval, precision and recall.
SWE 248P Neural Network Programming (2)
Exploration of state-of-the-art frameworks for programming artificial intelligent components. Topics include: neural networks and deep neural networks, gradient descent, backpropagation, training and test sets, and model validation
SWE 249P Applied Data Analytics (2)
Description to include in hover-over text: 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.
SWE 250P Web Programming (2)
Description to include in hover-over text: 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.
and
SWE 271P Career and Entrepreneurship (4)
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 will practice their skills in classroom presentations and written exercises.
SWE 290P Advisement (0.3)
Mandatory weekly meetings with a faculty advisor.
Winter 2
Select one OR two courses not taken in Winter 1 from the below. Students must take at least three courses during Spring 1 and Spring 2 with maximum two courses each quarter:
SWE 261P Software Testing and Debugging (4)
This course is 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 via get hands-on experience with modern software quality-assurance tools and approaches. Topics include: black-box and white-box testing, category-partitioning testing, unit testing, test-driven and behavior-driven development, combinatorial testing, code reviews, static code analysis tools, mocking, regression testing, capture-reply, mutation testing, and debugging.
SWE 262P Programming Styles (4)
This course is designed to teach students the various ways software can be decomposed and then how to put the parts back together. Students will be exposed to a variety of different programming styles and composition mechanisms. Topics include: procedural styles, functional styles, object-oriented styles, data-centered styles, error handling styles, and styles for concurrent and parallel programming.
SWE 264P Distributed Software Architecture (4)
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.
Spring 2
Select one OR two courses from the below:
SWE 263P User Experience and Interaction (4)
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. Students will apply their knowledge in assignments and an ongoing class project.
SWE 267P Cloud and Security Foundations (4)
ECloud 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.
SWE 265P Reverse Engineering and Modeling (4)
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.
SWE 266P Software Security and Dependability (4)
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 the security of software, and techniques for assessing the security properties of software.
Summer 2
Students will be enrolled in the following course for both Summer Sessions I and II:
SWE 275P Internship (1)
Exploration of strategies to tackle computational problems whose solutions include well-known algorithms and data structures. Topics include: sorting, searching, indexing, algorithmic complexity and runtime performance analysis.
Fall 3
Enroll in both courses:
SWE 272P Project Management (4)
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 will apply their knowledge in an ongoing class project.
SWE 276P Capstone Project in Software Engineering (4)
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
*
Number in parenthesis refers to the number of units –
Example: (2) = 2 units
The full-time and part-time curriculums may be subject to change. Students are responsible for adhering to MSWE degree requirements as outlined in the Catalogue of the student’s year of matriculation. Course offerings are subject to change. Please contact the Program Director and/ or a Graduate Counselor for any questions.
Access Fall 2022 Catalogue for more information.