Offered at: San Luis Obispo Campus
The BS in Software Engineering prepares students to become software professionals who develop software products on time, within budget, and that meet customer requirements. Building on the fundamentals of computer science, the program focuses on practical aspects of building and deploying software systems in a socially responsible way. The program’s educational mission supports the faculty in research and professional development that keeps them current in their field and in touch with current industry practices and trends.
The hallmark of the program is “hands on” experience where students follow a curriculum that builds on traditional computer science but differs from the BS in Computer Science in the following ways:
-  	
Classes emphasize the team approach to building software and provide leadership opportunities for every student.
 -  	
Classes place an emphasis on software processes and lifecycles.
 -  	
Classes include significant learning in engineering and management areas such as quality assurance, testing, metrics, maintenance, configuration management, and interpersonal management skills.
 -  	
The curriculum has a stronger emphasis on mathematics and the use of engineering methods in software design.
 
The software engineering curriculum culminates in a year-long capstone sequence where the students work in teams to build a large software system.
The software industry increasingly requires both a software and an engineering background for their cutting-edge projects. Graduates with a BS in Software Engineering can expect to find significant opportunities in software development and management, software engineering, and marketing.
The Software Engineering program has four broad program educational objectives (PEOs) that graduates are expected to attain within five years of graduation:
-  	
Technical Competence. Graduates have applied the software engineering body of knowledge and other technical skills to specify, design, and implement complex software systems, doing so with state-of-the art technologies.
 -  	
Interpersonal Skills. Graduates have communicated effectively and worked collaboratively in a multi- disciplinary team environment.
 -  	
Professional Awareness. Graduates have maintained a positive and ethical attitude concerning the computing profession and its impact on individuals, organizations, and society.
 
-  	
Intellectual Growth. Graduates have continued to grow intellectually and professionally in their chosen field, including successful pursuit of graduate study if such study was a desired goal.
 
The BS Software Engineering program is accredited by the Engineering Accreditation Commission of ABET.
Program Learning Objectives
- An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
 - An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
 - An ability to communicate effectively with a range of audiences.
 - An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
 - An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
 - An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
 - An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.
 
Degree Requirements and Curriculum
In addition to the program requirements listed on this page, students must also satisfy requirements outlined in more detail in the Minimum Requirements for Graduation section of this catalog, including:
- 40 units of upper-division courses
 - 2.0 GPA
 - Graduation Writing Requirements (GWR)
 - U.S. Cultural Pluralism (USCP)
 
Note: No Major or Support courses may be selected as credit/no credit. In addition, no more than 12 units of cooperative or internship courses can count towards your degree requirements.
| Code | Title | Units | 
|---|---|---|
| MAJOR COURSES | ||
| CSC/CPE 1000 | Computing Majors Orientation | 1 | 
| CSC 1001 & 1001L  | Fundamentals of Computer Science and Fundamentals of Computer Science Laboratory  | 4 | 
| CSC/CPE 1024 | Introduction to Computing | 2 | 
| CSC 2001 & 2001L  | Data Structures and Data Structures Laboratory  | 4 | 
| CSC/CPE 2050 | System Software Mechanics | 3 | 
| CSC 3001 | Modern Application Development | 4 | 
| CSC 3100 | Software Engineering | 4 | 
| CSC/CPE 3201 | Introduction to Computer Security | 3 | 
| CSC 3300 | Programming Languages | 3 | 
| CSC 3449 | Algorithms and Complexity | 4 | 
| CSC 3660 | Introduction to Databases 1 | 2-4 | 
| or CSC 3665 | Introduction to Database Management Systems | |
| CSC 4160 | Software Engineering Capstone I | 4 | 
| CSC 4161 | Senior Project - Software Engineering Capstone II | 4 | 
| Software Engineering Electives | ||
| Select from the following: 2 | 3-4 | |
| Software Evaluation | ||
| Special Advanced Topics in Software Engineering | ||
| User-Centered UI/UX Design | ||
| Human-Computer Interaction | ||
| Seminars in Software Engineering | ||
| Research Experience in Software Engineering | ||
| Projects in Software Engineering | ||
| Software Security | ||
| Special Advanced Laboratory | ||
| Special Advanced Activity | ||
| Modern Software Engineering | ||
| Special Advanced Topics in Software Engineering | ||
| Special Advanced Laboratory | ||
| Special Advanced Activity | ||
| Technical Electives | ||
| Select from the list in Technical Electives below: 2 | 3-7 | |
| SUPPORT COURSES | ||
| Select from the following: (5A & 5C) 3 | 4 | |
| Fundamentals of Chemical Structure and Properties | ||
| General Physics I | ||
| MATH 1151 | Linear Algebra | 3 | 
| Select from the following: (2) 3 | 8 | |
| Calculus I and Calculus II  | ||
| Calculus for Data Science I and Calculus for Data Science II  | ||
| MATH 2031 | Transition to Advanced Mathematics | 3 | 
| PHIL 3323 | Ethics, Science, and Technology (Upper-Division 3) 3 | 3 | 
| PSY 2201 | Introductory Psychology (4B) 3 | 3 | 
| Select from the following: 4 | 3-4 | |
| Small Group Collaboration and Creativity | ||
| Teamwork | ||
| STAT 3210 | Engineering Statistics (Upper-Division 2/5) 3 | 3 | 
| WGQS/ES 3350 | Gender, Race, Culture, Science, and Technology | 4 | 
| or WGQS 3351 | Gender, Race, Class, Nation: Critical Computing and Engineering Studies | |
| Life Science Support Electives | ||
| Select from the following: (5B) 3 | 4 | |
| General Biology and Biology Laboratory for Non-Majors  | ||
| Life: History and Diversity | ||
| Life: Molecules and Cells | ||
| General Botany | ||
| Introduction to Microbiology | ||
| Approved Mathematics/Statistics/Science Electives | ||
| Select from the list in Approved Mathematics/Statistics/Science Electives below: | 6 | |
| GENERAL EDUCATION (GE) | ||
| (See GE program requirements below) | 24 | |
| FREE ELECTIVES | ||
| Free Electives | 0 | |
| Total Units | 120 | |
- 1
 CSC 3665 will satisfy this requirement and 2 units of Technical Electives.
- 2
 A combined maximum of 6 units may be taken from CPE 4491, CPE 4492, CPE 4493, CSC 4091, CSC 4092, CSC 4093, CSC 4191, CSC 4192, CSC 4193, CSC 4291, CSC 4292, CSC 4293, CSC 4400, CSC 4495, CSC 4691, CSC 4692, CSC 4693, CSC 4791, CSC 4792, CSC 4793, CSC 4891, CSC 4892, CSC 4893, CSC 4991, CSC 4992, CSC 4993, DATA 4720, ENGR 2995, and ENGR 4995; of which up to a combined 4 units may be taken from CPE 4491, CSC 4091, CSC 4191, CSC 4291, CSC 4400, CSC 4495, CSC 4691, CSC 4791, CSC 4891, CSC 4991, and DATA 4720.
- 3
 Required in Major or Support; also satisfies General Education (GE) requirement.
- 4
 PSY 3350 will satisfy this requirement and 1 unit of Technical Electives.
Technical Electives
Guidelines: Courses used to satisfy any other Major, Support, or General Education requirement are not allowed to count toward the Technical Electives requirement. Credit/No Credit grading is not allowed.
| Code | Title | Units | 
|---|---|---|
| REQUIRED COURSES | ||
| Select from the following: 1 | 3-7 | |
| Teaching Computing | ||
| Cryptography Engineering and Applications | ||
| Introduction to Privacy: Policy and Technology | ||
| Theory of Computation | ||
| Introduction to Non-Relational Database Systems | ||
| Game Design and Development | ||
| Introduction to Mixed Reality | ||
| Game Engineering and Critical Analysis | ||
| Mobile Application Development | ||
| Web Development | ||
| Seminars in Computer Science | ||
| Research Experience in Computer Science | ||
| Projects in Computer Science | ||
| Software Evaluation | ||
| Special Advanced Topics in Software Engineering | ||
| User-Centered UI/UX Design | ||
| Human-Computer Interaction | ||
| Seminars in Software Engineering | ||
| Research Experience in Software Engineering | ||
| Projects in Software Engineering | ||
| Software Security | ||
| Malware Design and Analysis | ||
| Binary Exploitation: Tools and Techniques | ||
| Web and Cloud Security | ||
| Interdisciplinary Privacy and Security Capstone I | ||
| Senior Project - Privacy and Security Capstone II | ||
| Special Advanced Topics in Computer Security | ||
| Seminars in Privacy and Security | ||
| Research Experience in Privacy and Security | ||
| Projects in Privacy and Security | ||
| Compiler Construction | ||
| Special Problems | ||
| Bioinformatics Algorithms | ||
| Special Advanced Topics | ||
| Special Advanced Laboratory | ||
| Special Advanced Activity | ||
| Cooperative Education Experience | ||
| Introduction to Operating Systems | ||
| Implementation of Operating Systems | ||
| Special Advanced Topics in Computer Systems | ||
| Database Management Systems Organization | ||
| Seminars in Data Engineering | ||
| Research Experience in Data Engineering | ||
| Projects in Data Engineering | ||
| Introduction to Computer Graphics | ||
| Advanced Rendering Techniques | ||
| Computer Animation | ||
| Real-Time 3D Computer Graphics Software | ||
| Special Advanced Topics in Computer Graphics | ||
| Seminars in Graphics | ||
| Research Experience in Graphics | ||
| Projects in Graphics | ||
| Artificial Intelligence | ||
| Computer Vision | ||
| Seminars in Artificial Intelligence and Machine Learning | ||
| Research Experience in Artificial Intelligence and Machine Learning | ||
| Projects in Artificial Intelligence and Machine Learning | ||
| Seminars in Game Development | ||
| Research Experience in Game Development | ||
| Projects in Game Development | ||
| Modern Software Engineering | ||
| Computing Education Research and Practice | ||
| Special Advanced Topics in Software Engineering | ||
| Computer Security and Privacy | ||
| Software Security | ||
| Advanced Network Security and Privacy | ||
| Special Advanced Topics in Computer Security | ||
| System Security | ||
| Special Advanced Topics in Programming Languages | ||
| Advanced Theory of Decidability and Reducibility | ||
| Advanced Algorithmic Graph Theory | ||
| Advanced Algorithm Design and Analysis | ||
| Research in Operating Systems | ||
| Special Advanced Topics | ||
| Special Advanced Laboratory | ||
| Special Advanced Activity | ||
| Advanced Database Management Systems | ||
| Distributed Computing | ||
| Special Advanced Topics in Computer Systems | ||
| Computer Graphics | ||
| Advanced Compute Shaders in Computer Graphics | ||
| Special Advanced Topics in Computer Graphics | ||
| Special Advanced Topics in Artificial Intelligence | ||
| Introduction to Computer Systems | ||
| Introduction to HDL and Digital Design Laboratory | ||
| Microcontrollers and Embedded Applications | ||
| Applied Parallel Computing | ||
| Network Security | ||
| Wireless Security | ||
| Introduction to Computer Networks | ||
| Advanced Computer Networks | ||
| Special Advanced Topics | ||
| Special Advanced Laboratory | ||
| Special Advanced Activity | ||
| Seminar in Computer Engineering | ||
| Research Experience in Computer Engineering | ||
| Projects in Computer Engineering | ||
| Scalable Server Implementation and Testing | ||
| Distributed Systems | ||
| Research Topics in Computer Networks | ||
| Introduction to Data Science | ||
| Graph Mining | ||
| Data Science Seminar | ||
| Vertically Integrated Project Experience I | ||
| Vertically Integrated Project Experience II | ||
- 1
 A combined maximum of 6 units may be taken from CPE 4491, CPE 4492, CPE 4493, CSC 4091, CSC 4092, CSC 4093, CSC 4191, CSC 4192, CSC 4193, CSC 4291, CSC 4292, CSC 4293, CSC 4400, CSC 4495, CSC 4691, CSC 4692, CSC 4693, CSC 4791, CSC 4792, CSC 4793, CSC 4891, CSC 4892, CSC 4893, CSC 4991, CSC 4992, CSC 4993, DATA 4720, ENGR 2995, and ENGR 4995; of which up to a combined 4 units may be taken from CPE 4491, CSC 4091, CSC 4191, CSC 4291, CSC 4400, CSC 4495, CSC 4691, CSC 4791, CSC 4891, CSC 4991, and DATA 4720.
Approved Mathematics/Statistics/Science Electives
Guidelines: Courses used to satisfy any other Major or Support requirement are not allowed to count toward the Approved Mathematics/Statistics/Science Electives requirement. Credit/No Credit grading is not allowed.
| Code | Title | Units | 
|---|---|---|
| REQUIRED COURSES | ||
| Select from the following: | 6 | |
| Stars and Planetary Systems | ||
| Galaxies and Cosmology | ||
| Biology of Sex | ||
| Plant Diversity and Ecology | ||
| Life Science for Engineers | ||
| Wildlife Conservation Biology | ||
| Orientation to Biotechnology | ||
| Human Genetics | ||
| Biology of Cancer | ||
| Genetic Engineering Technology | ||
| Principles of Genetics | ||
| Fundamentals of Chemical Reactivity | ||
| Physical Geology | ||
| Physical Geology Laboratory | ||
| Calculus III | ||
| Linear Analysis | ||
| Differential Equations | ||
| Introduction to Mathematical Optimization | ||
| History of Mathematics | ||
| Combinatorics I | ||
| Graph Theory | ||
| Number Theory | ||
| Euclidean Geometry | ||
| Mathematics of Data Science | ||
| Introduction to Numerical Analysis | ||
| Mathematical Programming | ||
| Combinatorics II | ||
| Differential Geometry | ||
| Game Theory | ||
| General Microbiology II | ||
| Wine Microbiology | ||
| Public Health Microbiology | ||
| Food Microbiology | ||
| The Oceans | ||
| The Oceans Laboratory | ||
| General Physics I | ||
| Statistics I | ||
| Introduction to Statistical Computing with R | ||
| Introduction to Probability and Simulation | ||
| Applied Regression Analysis | ||
| Statistics II | ||
| Introduction to Statistical Computing with SAS and SQL | ||
| Intermediate Statistical Computing with R | ||
| Probability Theory | ||
| Bayesian Reasoning and Methods | ||
| Survival Analysis Methods | ||
| Applied Multivariate Statistics | ||
General Education (GE) Requirements
- 43 units required, 19 of which are specified in Major and/or Support.
 - If any of the remaining 24 Units is used to satisfy a Major or Support requirement, additional units of Free Electives may be needed to complete the total units required for the degree.
 - See the complete GE course listing.
 - A grade of C- or better is required in one course in each of the following GE Areas: 1A (English Composition), 1B (Critical Thinking), 1C (Oral Communication), and 2 (Mathematics and Quantitative Reasoning).
 
| Lower-Division General Education | ||
| Area 1 | English Communication and Critical Thinking | |
| 1A | Written Communication | 3 | 
| 1B | Critical Thinking | 3 | 
| 1C | Oral Communication | 3 | 
| Area 2 | Mathematics and Quantitative Reasoning | |
| 2 | Mathematics and Quantitative Reasoning (3 units in Support) 1 | 0 | 
| Area 3 | Arts and Humanities | |
| 3A | Arts | 3 | 
| 3B | Humanities: Literature, Philosophy, Languages other than English | 3 | 
| Area 4 | Social and Behavioral Sciences (Area 4 courses must come from at least two different course prefixes.) | |
| 4A | American Institutions (Title 5, Section 40404 Requirement) | 3 | 
| 4B | Social and Behavioral Sciences (3 units in Support) 1 | 0 | 
| Area 5 | Physical and Life Sciences | |
| 5A | Physical Sciences (3 units in Support) 1 | 0 | 
| 5B | Life Sciences (3 units in Support) 1 | 0 | 
| 5C | Laboratory (may be embedded in a 5A or 5B course) (1 units in Support) 1 | 0 | 
| Area 6 | Ethnic Studies | |
| 6 | Ethnic Studies | 3 | 
| Upper-Division General Education | ||
| Upper-Division 2/5 | Mathematics and Quantitative Reasoning or Physical and Life Sciences (3 units in Support) 1 | 0 | 
| Upper-Division 3 | Arts and Humanities (3 units in Support) 1 | 0 | 
| Upper-Division 4 | Social and Behavioral Sciences (Area 4 courses must come from at least two different course prefixes.) | 3 | 
| Total Units | 24 | |
- 1
 Required in Major or Support; also satisfies General Education (GE) requirement.