Jul 21, 2024  
2024-2025 Catalog 
2024-2025 Catalog

Software Engineering, B.S.

Return to {$returnto_text} Return to: Colleges and Program Offerings

Program of Study

Software engineering is the application of engineering principles and techniques in the process of software design, development, construction and maintenance. IEEE defines software engineering as “The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software.” With computing as its foundation, software engineering seeks to develop and use systematic models and reliable techniques to produce high-quality software.

The educational objectives of the Bachelor of Science in Software Engineering at CSUSM are to produce graduates who, within three or five years after graduation, are able to:

  • Engage in professional practice as innovative problem-solvers with a strong work ethic;
  • Demonstrate the ability to work effectively as a team member and/or leader in an ever-changing professional environment; and
  • Continue their life-long learning such as progressing through advanced degree or certificate in programs in computing, science, engineering, business, and other professionally related fields.

Toward the above educational objectives, this undergraduate program is designed to blend engineering principles, computing skills, project leadership, and software construction to provide students with a comprehensive understanding of the field and prepare graduates for the workforce or future study. The Software Engineering major at CSUSM emphasizes both theoretical foundations and practical applications with substantial laboratory work in software construction. Students in this major may choose to pursue one of two sequences. Along the systems sequence students will learn essential concepts and design principles for building real-time or embedded systems. Along the applications sequence students will learn skills and principles for building net-centric software systems that offer and consume services over the web.

Program Student Learning Outcomes

Students who graduate with a Bachelor of Science in Software Engineering are expected to demonstrate:

  1. an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
  2. an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, security, and welfare, as well as global, cultural, social, environmental, and economic factors
  3. an ability to communicate effectively with a range of audiences
  4. 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
  5. 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
  6. an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
  7. an ability to acquire and apply new knowledge as needed, using appropriate learning strategies

Career Opportunities

Software engineers hold key positions in many industries — including medical, industrial, military, communications, aerospace, business, scientific and general computing. As a graduate of this program, you should be well prepared to apply your knowledge, techniques, and skills to implement high-quality software and provide innovative solutions in industry and government. Possible software engineering jobs may include:

  • computer systems analyst
  • software engineer
  • user interface designer
  • software testing engineer
  • video game designer
  • computer systems administrator
  • project/product manager
  • sales engineer


High school students are encouraged to take four (4) years of English, four (4) years of mathematics including trigonometry, one (1) year of biological science, and one (1) year of physical science. Courses in calculus, physics or chemistry, and computer programming are recommended. Experience in clear, concise, and careful writing is valuable for success in all courses.

Special Conditions for the Bachelor of Science in Software Engineering

All courses counted toward the major, including Preparation for the Major courses, must be completed with a grade of C (2.0) or better. A minimum of fifteen (15) upper-division units counted toward the major must be completed at Cal State San Marcos.

Requirements for the Bachelor of Science in Software Engineering

General Education Requirements (48 Units)

General Education Requirements  

Preparation for the Major (42 Units)

Lower-Division Computing Essential (12 Units)


*Nine (9) lower-division General Education units in Area B  (Math and Science) are automatically satisfied by courses in the Math and Science Supporting Classes for the major. PHYS 101 /PHYS 201  or CHEM 150  for B1/B3, BIOL 104  for B2/B3, and MATH 160  for B4.

Major Requirements (45 Units)

Upper-Division Computing Essential (15 Units)

Upper-Division Software Engineering Core (24 Units)

Software Engineering Electives (6 Units)

Chosen from CS 331 , SE/CS courses numbered 400 or higher, excluding CS 490.

Minimum Total (120 Units)

Students must take a sufficient number of elective units to bring the total number of units to a minimum of 120

Return to {$returnto_text} Return to: Colleges and Program Offerings