Dec 11, 2024  
2021-2022 Catalog 
    
2021-2022 Catalog [ARCHIVED CATALOG]

Software Engineering, B.S.


Return to {$returnto_text} Return to: Degrees and Program Requirements

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:

  • Demonstrate professional advancement through significant technical achievements and expanded leadership responsibility in their jobs in industry, government, or entrepreneurial endeavors.

  • Demonstrate the ability to work effectively as a team member and/or leader in an ever-changing professional environment; and

  • Progress through advanced degree or certificate 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.

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 years after graduation, are able to:

  • Demonstrate professional advancement through significant technical achievements and expanded leadership responsibility in their jobs in industry, government, or entrepreneurial endeavors;
  • Demonstrate the ability to work effectively as a team member and/or leader in an ever-changing professional environment; and
  • Progress through advanced degree or certificate 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. In particular, students will develop their knowledge and skills in the following areas:

  • software engineering and professional standards necessary to begin practice as a software engineer.
  • theories, models, and techniques that provide a basis for problem identification and analysis, software design, development, implementation, verification, validation, security fundamentals, and documentation.
  • development and delivery of quality software artifacts via individual and collaborative efforts.
  • negotiation, effective work habits, leadership, and good communication with stakeholders in a typical software development environment.
  • application solutions in one or more domains using software engineering approaches that integrate ethical, social, legal, and economic concerns.
  • conflicting project objectives, finding acceptable compromises within the limitations of cost, time, knowledge, existing systems, and organizations.
  • continuing professional development and the necessity to stay informed of emerging models, techniques, and technologies.

 

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
  8. the ability to analyze requirements, design, verify, validate, implement, and maintain software systems.

  9. the ability to appropriately apply discrete mathematics, probability and statistics, and relevant topics in computer science and supporting disciplines to complex software systems.

  10. the ability to work in one or more significant application domains.

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.

 

Preparation


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)


Note:


*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 (42 Units)


Software Engineering Electives (6 Units)


Chosen from SE/CS/CIS courses numbered 400 or higher

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: Degrees and Program Requirements